1、配置文件:
[[email protected] ~]# ls/etc/sysconfig/iptables
2、启动:
[[email protected]~]# /etc/init.d/iptables start
iptables:应用防火墙规则:
[[email protected] ~]# chkconfig iptables on 开机自动启动。
[[email protected] ~]# iptables –nL 查看防火墙规则。
3、使用规则:
iptables -t 要操作的表
操作命令:
-A <链名> 追加一条规则(放到最后)
例:[[email protected] ~]# iptables-t filter -A INPUT -j DROP 禁止所有进入
-D <链名> <规则号码|具体内容规则> 删除一条规则。
例:
[[email protected]~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.1.72 0.0.0.0/0
DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[[email protected]~]# iptables -D INPUT 2 按号码删除
[[email protected]~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.1.72 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
-P<链名> <动作>policy 设置某个链的默认规则
[[email protected] ~]#iptables -P INPUT DROP
-F 删除规则
例:
[[email protected] ~]#iptables -F INPUT
[[email protected] ~]#iptables -t nat -F
[[email protected] ~]#iptables -t nat -F PREROUTING
4、匹配条件:
流入、流出接口(-i、-o)
来源、目的地址(-s、-d)
协议类型 (-p)
来源、目的端口(--sport、--dport)
-i eth0
匹配是否从网络接口 eth0进来
-s 192.168.0.1 匹配来自 192.168.0.1 的数据包
-s192.168.1.0/24 匹配来自 192.168.1.0/24网络的数据包
-d 202.106.0.20 匹配去往 202.106.0.20 的数据包
-d202.106.0.0/16 匹配去往 202.106.0.0/16网络的数据包
-p<匹配协议类型>
可以是 TCP、UDP、ICMP等,也可为空
例如:
-p tcp
-p udp
例如:禁用DNS
[[email protected] ~]#iptables -A INPUT -p udp --dport 53 -j DROP
限制该网段访问服务器:
[[email protected] ~]#iptables -A INPUT -s 10.1.0.0/24 -d 172.17.0.0/16 -j DROP
限制该地址访问百度80端口
[[email protected] ~]#iptables -A INPUT -s 192.168.0.1 -d www.baidu.com -p tcp --dport 80 -j ACCEPT
动作(处理方式)
ACCEPT 接收
DROP 丢弃 不给对端任何回应
REJECT 拒绝 拒绝后,给对端一个回应
SNAT 源地址转换
DNAT 目的地址转换
MASQUERADE (假面舞会) 伪装一个公网IP地址
例:
将内网192.168.0.0/24 的原地址修改为 公网IP地址:1.1.1.1
[[email protected]~]# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1
从eth0接口进入访问80端口的数据包,转到192.168.0.1
[[email protected] ~]#iptables -t nat -A PREROUTING -i eth0 -p tcp --dpor 80 -j DNAT --to 192.168.0.1
按包状态匹配 (state)
-mstate --state 状态
状态:NEW、RELATED、ESTABLISHED、INVALID
NEW:有别于 tcp 的 syn
ESTABLISHED:连接态
RELATED:衍生态,与 conntrack关联(FTP)
INVALID:不能被识别属于哪个连接或没有任何状态
实战1:使用iptables防火墙保护公司web服务器。
具体配置如下:
web服务器:xuegod63
客户端:xuegod64
配置xuegod63防火墙
[[email protected] ~]#iptables -A INPUT -i lo -j ACCEPT
[[email protected] ~]#iptables -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT
或者
[[email protected] ~]#iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[[email protected] ~]#iptables -A INPUT -p tcp --dport 80 -j ACCEPT
[[email protected] ~]#iptables -P INPUT DROP
[[email protected] ~]#service httpd start
[[email protected] ~]#yum -y install vsftpd
[[email protected] ~]#service vsftpd start
测试机ftp://192.168.1.63/无法访问