iptables服务器
iptables的三个表tcp
1.filter(相似ACL):系统预设,主要用于过滤数据包,内建三个链
ide
INPUT:做用于进入本机的包url
OUTPUT:做用于本机发出的包spa
FORWARD:做用于那些跟本机无关的包(即指望靠本系统转发的包)rest
2.nat:主要用处是地址转换,也有三个链orm
PREROUTING:更改包的目的地址blog
OUTPUT:更改本地(本机)产生的包的目的地址接口
POSTROUTING:更改包的源地址ip
3.mangle:主要用于给数据包打tag,而后根据标记去操做哪些包(相似Qos)
-t:指定表名,默认为filter表
-nvL:使用ip形式查看详细的规则列表
--line-numbers:显示规则序号
-F:清除当前规则
-Z:重置数据包和流量的计数器
/etc/init.d/iptables save:保存规则
防火墙规则保存在/etc/sysconfig/iptables文件中
-A chain:增长一条规则
-D chain:删除一条规则
-I chain:插入一条规则
-p:指定协议,能够是 tcp, udp 或者 icmp
--dport:跟-p 一块儿使用,指定目标端口
--sport:跟-p 一块儿使用,指定源端口
-s :指定源 IP(能够是一个 ip 段)
-d:指定目的 IP(能够是一个 ip 段)
-j:后跟动做,其中 ACCEPT 表示容许包经过, DROP 表示丢弃包, REJECT 表示拒绝包
-i:指定进接口(不经常使用,但有时候能用到)
-o:指定出接口
-P chain:指定预设策略,DROP或ACCEPT(默认)
iptables -I INPUT -m iprange --src-range 61.4.176.0-61.4.191.255 -j DROP \\针对一个地址范围
iptables -I INPUT -p icmp --icmp-type 8 -j DROP \\丢弃echo-request报文
nat表的应用
------------案例:使用同一个公网IP上网-----------
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward //启用路由转发功能,默认是0
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE //设置SNAT策略
MASQUERADE参数的做用:使用该接口的地址做为包的源地址;主要使用在动态获取公网地址的环境
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.4 -o eth0 -j SNAT --to 10.11.11.11 //使用指定地址替换源地址
------------案例:隐藏实际服务器地址-----------
[root@localhost ~]# sysctl -w net.ipv4.ip_forward=1 //启用路由转发功能,默认是0
[root@localhost ~]# iptables -t nat -A PREROUTING -d 114.21.35.66 -p tcp --dport 80 -i eth0 -j DNAT --to 192.168.1.4:8080 //使用指定地址替换目的地址和端口
保存以及备份iptables规则
service iptables save //保存iptables规则
service iptables stop //中止iptables时会清除iptables规则,与iptables -F不一样的是它还会重置预设策略为ACCEPT
iptables-save[-t table]>filename //备份iptables规则
iptables-restore[-t table]<filename //还原iptables规则