没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
iptables 详解(二)(和另一篇 iptables 命令详解 结合起来
看)
分类: 网络与安全
2016-12-26 16:02:22
ptables 简介
iptables 是基于内核的防火墙,功能非常强大,iptables 内置了 lter,nat 和 mangle
三张表。
lter 负责过滤数据包,包括的规则链有,input,output 和 forward;
nat 则涉及到网络地址转换,包括的规则链有,prerouting,postrouting 和 output;
mangle 表则主要应用在修改数据包内容上,用来做流量整形的,默认的规则链有:
INPUT,OUTPUT,NAT,POSTROUTING,PREROUTING;
input 匹配目的 IP 是本机的数据包,forward 匹配流经本机的数据包,prerouting 用来
修改目的地址用来做 DNAT,postrouting 用来修改源地址用来做 SNAT。
iptables 主要参数
-A 向规则链中添加一条规则,默认被添加到末尾
-T 指定要操作的表,默认是 lter
-D 从规则链中删除规则,可以指定序号或者匹配的规则来删除
-R 进行规则替换
-I 插入一条规则,默认被插入到首部
-F 清空所选的链,重启后恢复
-N 新建用户自定义的规则链
-X 删除用户自定义的规则链
-p 用来指定协议可以是 tcp,udp,icmp 等也可以是数字的协议号,
-s 指定源地址
-d 指定目的地址
-i 进入接口
-o 流出接口
-j 采取的动作,accept,drop,snat,dnat,masquerade
--sport 源端口
--dport 目的端口,端口必须和协议一起来配合使用
注意:所有链名必须大写,表明必须小写,动作必须大写,匹配必须小写
iptable 配置实例
iptable 基本操作
iptables -L 列出 iptables 规则
iptables -F 清除 iptables 内置规则
iptables -X 清除 iptables 自定义规则
设定默认规则
在 iptables 规则中没有匹配到规则则使用默认规则进行处理
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
配置 SSH 规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT 如果你把 OUTPUT
设置成 DROP,就需要加上这个规则,否则 SSH 还是不能登录,因为 SSH
服务职能进不能出。
只允许 192.168.0.3 的机器进行 SSH 连接
iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT
如果要允许,或限制一段 IP 地址可用 192.168.0.0/24 表示 192.168.0.1-255 端的所有
IP.
允许 loopback 回环通信
IPTABLES -A INPUT -i lo -p all -j ACCEPT
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT
目的地址转换,映射内部地址
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dprot 81 -j DNAT
--to 192.168.0.2:80
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dprot 81 -j DNAT
--to 192.168.0.1-192.168.0.10
源地址转换,隐藏内部地址
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to
1.1.1.1
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to
1.1.1.1-1.1.1.10
地址伪装,动态 ip 的 NAT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24-
jMASQUERADE
masquerade 和 snat 的主要区别在于,snat 是把源地址转换为固定的 IP 地址或者是地
址池,而 masquerade 在 adsl 等方式拨号上网时候非常有用,因为是拨号上网所以网卡
的外网 IP 经常变化,这样在进行地址转换的时候就要在每次都要修改转换策略里面的 ip,
使用 masquerade 就很好的解决了这个问题,他会自己去探测外网卡获得的 ip 地址然后
自动进行地址转换,这样就算外网获得的 ip 经常变化也不用人工干预了。
开启转发功能
iptables -A FORWARD -i eth0 -o eth1 -m state --state
RELATED,ESTABLISHED -j ACCEPT 只允许已建连接及相关链接对内转
发
ptables -A FORWARD -i eth1 -o eh0 -j ACCEPT 允许对外转发
过滤某个 MAC
iptables -A FORWARD -m mac --mac -source MAC 地址 -j DROP
报文经过路由后,数据包中原有的 MAC 信息会被替换,所以在路由后的 iptables 中使用
mac 匹配没有意义。
数据包整流
iptables -A FORWARD -d 192.168.0.1 -m limit --limit 50/s -j
ACCEPT
iptables -A FORWARD -d 192.168.0.1 -j DROP
多端口匹配
用以一次匹配多个端口
iptables -A INPUT -p tcp -m muliport --dport s 21,22,25,80,110 -j
ACCEPT
丢弃非法连接
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables-A FORWARD -m state --state INVALID -j DROP
存储于恢复 iptables 规则
iptables-save > somele
iptables-restore < somele
删除自定义规则:
方法一:
iptables -t nat --list --line-number 这个命令可以查看 nat 表中的所有
规则和规则编号
iptables -t nat -D chian-name rulenumber,例如:iptables -t nat
-D PREROUTING 1 可以删除 nat 表中 PREROUTING 链中的编号为 1 的规则
注意:如果不加 -t 指明表名,则默认是查找 'lter 表,可能会提示你找不到匹
配的规则。
方法二:
直接把你定义规则时的 -A 参数 换成 -D 即可 例如:iptables -A
FORWARD -i eth0 -j ACCEPT,若想删除这个自定义规则,只需把规则中的 -A 参
数变成 -D 即可
如果你的 IPTABLES 基础知识还不了解,建议先去看看.
开始配置
我们来配置一个 'lter 表的防火墙.
(1)查看本机关于 IPTABLES 的设置情况
[root@tp ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Firewall-1-INPUT (0 references)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state
RELATED,ESTABLISHED
剩余15页未读,继续阅读
资源评论
liudongliang125
- 粉丝: 6
- 资源: 140
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 学校课程软件工程常见10道题目以及答案demo
- javaweb新手开发中常见的目录结构讲解
- 新手小白的git使用的手册入门学习demo
- 基于Java观察者模式的info-express多对多广播通信框架设计源码
- 利用python爬取豆瓣电影评分简单案例demo
- 机器人开发中常见的几道问题以及答案demo
- 基于SpringBoot和layuimini的简洁美观后台权限管理系统设计源码
- 实验报告五六代码.zip
- hdw-dubbo-ui基于vue、element-ui构建开发,实现后台管理前端功能.zip
- (Grafana + Zabbix + ASP.NET Core 2.1 + ECharts + Dapper + Swagger + layuiAdmin)基于角色授权的权限体系.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功