iptables -A INPUT -p tcp --dport 22 -j DROP  新增规则
iptables -D INPUT -P tcp --dport 22 -j DROP  删除规则
iptables -A INPUT -i eth0 -s 10.0.0/24 -j DROP   源地址10.0.0.0/24网段,且从etho0进入,直接过滤(如果没有写接口,就是所有接口)
iptables -A INPUT -i eth1 -s ! 10.0.0.102 -j DROP(源地址非10.0.0.102经过eth1的直接drop)
iptables -L -n                     查看iptables的列表
iptables -F
iptables -X

iptables 默认用filter表

ACCEPT DROP   REJECT(安全隐患,不用这样,只用前面2个)

生产环境常用服务的iptables的规则实例

以下服务是以默认规则为拒绝设计的:

1\仅允许内部合法的IP地址访问服务器

iptables -A INPUT -s 203.81.19.0/24 -p all -j ACCEPT
iptables -A INPUT -s 124.42.60.96/24 -p all -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p all -j ACCEPT
iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT

2\仅允许内部合法的IP段访问监控服务器nagios

iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 5666 -j ACCEPT

3\仅允许内部合法的IP段访问mysql数据库和oracle数据库

iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3307 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 1521 -j ACCEPT

4\仅允许内部合法的IP段访问ssh远程连接服务

iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 50718 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.2.0/24 --dport 50718 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.3.0/24 --dport 50718 -j ACCEPT

5\对内提供http服务的业务,一般用特殊端口,并且限制合法IP连接或***连接

iptables -A INPUT -s 192.168.1.10/24 -p tcp -m multiport --dport 8080,8081,8082 -j ACCEPT

6\snmp限制

iptables -A INPUT -s 192.168.2.0/24 -p UDP --dport 161 -j ACCEPT
iptables -A INPUT -s 203.82.11.0/24 -p UDP --dport 161 -j ACCEPT
iptables -A INPUT -s 203.81.18.0/24 -p UDP --dport 161 -j ACCEPT

7、rsync服务的限制策略

iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 873 -j ACCEPT

8\nfs服务的限制

iptables -A INPUT -s 192.168.1.0/24 -p TCP -m multiport --dport 111,892,2049 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p udp -m multiport --dport 111,892,2049 -j ACCEPT

9\ftp服务的限制

#iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

提示:上面内容表示对已经建立连接的数据包,或者发出去的数据包允许通过

10、ICMP的限制

iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
iptables -A INPUT -p icmp -s 10.10.10.0/24 -m icmp --icmp-type any -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

11\允许SSH

iptables -A INPUT -p tcp --dport 22 -s 10.0.0.0/24 -j ACCEPT

12\配置允许lo接口的进入 流出,本地环回接口

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

13\电影院模式,一旦敲入下面的命令,服务器会连接不上,所以敲入下列命令前要加入访问的网段:iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT   #一定要先加这条,否则执行下面语句后不能正常的连接服务器
iptables --policy OUTPUT ACCEPT
iptables --policy FORWARD DROP
iptables --policy INPUT DROP

14、开启信任的IP段

允许IDC机房和办公网IP的访问

iptables -A INPUT -s 124.43.62.96/27 -p all -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p all -j ACCEPT
iptables -A INPUT -s 10.0.0.-0/24 -p all -j ACCEPT

允许http服务运行

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

允许ICMP

iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

允许关联的状态包通过

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

永久保存成配置文件

/etc/init.d/iptables save

备份Iptables的配置文件

cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

nat:

1、PC1配置2个网桥网卡,一个和局域网同网段(192.168.1.0、24),另外一个自定义个网段(172.16.1.3)

准备一台PC2,网卡设置为网桥模式,确保手动配置网络段172.16.1.17 网关:172.16.1.3

新网卡的只设置IP:172.16.1.3,不设置网关。如果设置网关,则有2个网关,造成不能上网

在PC1上“开启内核转发”:net.ipv4.ip_forward = 1  修改后使用sysctl -p生效,并将PC2网关设置成172.16.1.3

开启转发后,真机能ping通172.16.1.17,如果没有开启转发功能,测不能ping通172。16.1.17

2、在PC1的iptables开启转发:Chain FORWARD (policy ACCEPT)

3、加载模块

做源地址转换:

iptables -t nat -A POSTROUTING -s 172.16.1.0/255.255.255.0 -o eth0 -j SNAT --to-source 192.168.1.106  #静态IP
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE  ###拨号上网

做完上面的操作后,内网的机器PC2就可以上网了