iptables防火墙(RHEL6)
一、iptables防火墙
表--->链--->行--->规则
1)iptables的4个表(区分大小写)
nat表(地址转换表)、filter表(数据过滤表)、raw表(状态跟踪表)、mangle表(包标记表)
默认表
2)iptables的5个链(区分大小写)---------->数据包传输的方向
INPUT链(入站规则)
OUTPUT链(出站规则)
FORWARD链(转发规则)---------->匹配经过防火墙主机的包
PREROUTING链(路由前规则)--------->数据包选择传输路径之前修改路径
POSTROUTING链(路由后规则)-------->数据包选择传输路径之后修改路径
匹配规则的操作:----顺序比对
ACCEPT:允许通过
DROP:直接丢弃,没有回应
REJECT:拒绝通过,必要时会给出提示
LOG:记录日志,然后传给下一条规则
常用的管理选项:
-A 在链的末尾追加一条规则
-I 在链的开头(或指定序号)插入一条规则
-L 列出所有规则条目
-n 以数字形式显示地址端口等信息
--line-numbers 查看规则时显示规则的序号
-D 删除指定的某一条规则
-F 清空所有规则
-P(大写) 为指定的链设置默认规则
过滤条件:(需要取反时用 !)
-p 协议名
-s 源地址 -d 目标地址
-i 收数据的网卡 -o 发数据的网卡
--sport 源端口 --dport 目标端口
--icmp-type icmp类型
iptabels语法格式:
[root@proxy ~]# iptables [-t 表名] 选项 [链名] [条件] [-j 目标操作]
二、filter表控制 主机型防火墙 (使用防火墙服务保护本机)
根据防火墙保护的对象不同,防火墙可以分为主机型防火墙与网络型防火墙.
主机型防火墙,主要保护的是服务器本机(过滤威胁本机的数据包)。针对入站访问的原地址
网络防火墙,主要保护的是防火墙后面的其他服务器,如web服务器、FTP服务器等。针对转发访问的原地址
]# iptables-save > /etc/sysconfig/iptables //保存规则(让重启也能生效)
2.1扩展匹配条件
1)根据MAC地址封锁主机
2)在一条规则中开放多个TCP服务
3)根据IP范围设置封锁规则
iptables 选项 链名称 -m 扩展模块 --具体扩展条件 -j 动作
2.2常见的扩展条件类型:
MAC地址匹配: -m mac --mac-source mac地址
多端口匹配: -m multiport --sports 源端口列表
-m multiport --sports 目标端口列表
ip范围匹配: -m iprange --src-range 允许的ip范围
-m iprange --dst-range 禁止的ip范围
[root@proxy ~]# iptables -A INPUT -p tcp --dport 22 -m mac --mac-source 52:54:00:00:00:0b -j DROP
//拒绝52:54:00:00:00:0b这台主机远程本机
[root@proxy ~]# iptables -A INPUT -p tcp -m multiport --dports 20:22,25,80,110,143,16501:16800 -j ACCEPT
//一次性开启20,21,22,25,80,110,143,16501到16800所有的端口
1)允许从 192.168.4.10-192.168.4.20 登录
[root@proxy ~]# iptables -A INPUT -p tcp --dport 22 \
-m iprange --src-range 192.168.4.10-192.168.4.20 -j ACCEPT
注意,这里也可以限制多个目标IP的范围,参数是--dst-range,用法与--src-range一致。
2)禁止从 192.168.4.0/24 网段其他的主机登录
[root@proxy ~]# iptables -A INPUT -p tcp --dport 22 -s 192.168.4.0/24 -j DROP