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規則