linux下iptables讲解
iptables(netfilter網絡過濾器)
iptables是linux上特有的防火墻機制,功能非常強大。CentOS默認是沒有iptables規則。
iptables命令可用于配置Linux的包過濾規則,常用于實現防火墻、NAT。
?
常用選項:
iptables -nvL?查看規則(-n為數字顯示輸出的ip地址和端口 -v 為可視化顯示 -L為列出所有的規則)
iptables -F ??清除規則(flush清除);清除只是臨時的,重啟系統或者重啟iptables服務后還會加載已經保存的規則。清除之后要保存規則。
/etc/init.d/iptables save ?或 service iptables save??保存規則
防火墻規則保存在配置文件 ? ?/etc/sysconfig/iptables
iptables -Z?? ?計數器清零(zero)
service iptables stop?? ?暫停防火墻服務,并清除防火墻規則,但是重啟后會讀取/etc/sysconfig/iptables 從而啟動防火墻。即使我們停止防火墻,但是一旦添加任何一條規則,它也會開啟。
iptables -t?? ?指定表名(table),默認不加-t 則是filter表;
?
直觀圖便于理解,4個表,5個鏈;
?
?
filter 這個表主要用于過濾包的,是系統預設的表,內建三個鏈INPUT、OUTPUT以及FORWARD。INPUT作用于進入本機的包;OUTPUT作用于本機送出的包;FORWARD作用于那些跟本機無關的包。??
nat 主要用處是網絡地址轉換、端口映射,也有三個鏈。PREROUTING?鏈的作用是在包剛剛到達防火墻時改變它的目的地址,如果需要的話。OUTPUT鏈改變本地產生的包的目的地址。POSTROUTING鏈在包就要離開防火墻之前改變其源地址。?
mangle?主要用于修改數據包的TOS(Type Of Service,服務類型)、TTL(Time ToLive,生存周期)值以及為數據包設置Mark標記,以實現Qos (Quality of Service,服務質量)調整以及策略路由等應用,由于需要相應的路由設備支持,因此應用并不廣泛。?五個鏈:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
raw? ?對報文設置一個標志,決定數據包是否被狀態跟蹤機制處理???只有兩個鏈:OUTPUT、PREROUTING?
?
iptables規則相關:
查看規則????iptables -t nat -nvL
清除規則????iptables -t nat -F
增加/刪除規則????iptables -A/-D INPUT -s 10.72.11.12 -p tcp --sport 1234 -d 10.72.137.159 --dport 80 -j DROP?
插入規則????iptables -I INPUT -s 1.1.1.1 -j DROP/ACCEPT/REJECT?
iptables -nvL --line-numbers????查看規則帶有id號
iptables -D INPUT 1 ????根據規則的id號刪除對應規則
iptables -P INPUT DROP????用來設定默認規則,默認是ACCEPT ,一旦設定為DROP后,只能使用 iptables -P ACCEPT 才能恢復成原始狀態,而不能使用-F參數;
?
把ip為192.168.20.0網段所有數據包都丟掉
| 1 | [root@yong?~]#?iptables?-I?INPUT?-s?192.168.20.0?-j?DROP |
刪除規則的話,要與添加規則的后綴一樣才可以;
| 1 | [root@yong?~]#?iptables?-D?INPUT?-s?192.168.20.0?-j?DROP |
把1.1.1.1 訪問本地tcp協議80端口的所有數據包都丟掉;
| 1 | [root@yong?~]#?iptables?-I?INPUT?-s?1.1.1.1?-p?tcp?--dport?80?-j?DROP |
把發送到10.0.1.14的22端口的所有數據包丟掉;
| 1 | [root@yong?~]#?iptables?-I?OUTPUT?-p?tcp?--dport?22?-d?10.0.1.14?-j?DROP |
使用這個命令查看規則帶有id號顯示;
| 1 2 3 4 5 | [root@yong?~]#?iptables?-nvL?--line-number Chain?INPUT?(policy?ACCEPT?84?packets,?5944?bytes) num???pkts?bytes?target?????prot?opt?in?????out?????source???????????????destination????????? 1????????0?????0?DROP???????tcp??--??*??????*???????1.1.1.1??????????????0.0.0.0/0???????????tcp?dpt:80? 2????????0?????0?DROP???????all??--??*??????*???????192.168.20.0?????????0.0.0.0/0 |
然后刪除的時候使用iptables -D INPUT 1 ? ?刪除上面的1規則,不用寫很長的后綴。
?
?
禁止別人ping你的主機,你可以ping別人;只需要添加一條規則;icmp-type 8 可以實現;
[root@yong?~]#?iptables?-I?INPUT?-p?icmp?--icmp-type?8?-j?DROP
?
?
示例,編一個腳本,針對filter表,所有的INPUT鏈DROP,其他兩個鏈ACCEPT,然后針對192.168.20.0/24網段開通22端口可以連接主機;對所有網段開放80端口;對所有網段開通21端口;
| 1 2 3 4 5 6 7 8 9 10 | [root@yong?~]#?vim?iptables.sh? #!?/bin/bash???? ipt="/sbin/iptables" $ipt?-F $ipt?-P?INPUT?DROP $ipt?-P?OUTPUT?ACCEPT $ipt?-P?FORWARD?ACCEPT $ipt?-A?INPUT?-s?192.168.20.0/24?-p?tcp?--dport?22?-j?ACCEPT $ipt?-A?INPUT?-p?tcp?--dport?80?-j?ACCEPT $ipt?-A?INPUT?-p?tcp?--dport?21?-j?ACCEPT |
| 1 | [root@yong?~]#?sh?iptables.sh |
運行腳本即可,如果想開機運行防火墻規則的話,在/etc/rc.d/rc.local 添加一行“/bin/sh /root/iptables.sh”
nat表應用:
路由器就是使用iptables的nat原理實現.
假設您的機器上有兩塊網卡eth0和eth1,其中eth0的IP為192.168.4.11,eth1的IP為192.168.20.1 。eth0連接了internet 但eth1沒有連接,現在有另一臺機器(192.168.20.10)和eth1是互通的,那么如何設置也能夠讓連接eth1的這臺機器能夠連接internet??
| 1 2 3 4 | [root@yong?~]#?cat?/proc/sys/net/ipv4/ip_forward 0 [root@yong?~]#?echo?"1"?>?/proc/sys/net/ipv4/ip_forward? [root@yong?~]#?iptables?-t?nat?-A?POSTROUTING?-s?192.168.20.0/24?-o?eth0?-j?MASQUERADE |
?/proc/sys/net/ipv4/ip_forward 為內核參數相關的文件,默認為0,1為打開路由轉發功能。
第2條命令為iptables對nat表做了一個IP轉發的操作,-o 后面跟設備名,表示出口的網卡。MASQUERADE表示偽裝的意思;讓192.168.20.0網段通過eth0偽裝出去連接上網。
?
iptables規則備份與恢復:
service iptables save????這樣會保存到/etc/sysconfig/iptables?,如果以后遇到備份防火墻規則的任務,就是拷貝一份這個文件的副本。
iptables-save > myipt.rule????可以把防火墻規則保存到指定文件中;
iptables-restore < myipt.rule????這樣可以恢復指定的規則;
| 1 2 3 4 5 6 | [root@yong?~]#?iptables-save?>?myipt.rule [root@yong?~]#?service?iptables?stop iptables:?Setting?chains?to?policy?ACCEPT:?nat?filter??????[??OK??] iptables:?Flushing?firewall?rules:?????????????????????????[??OK??] iptables:?Unloading?modules:???????????????????????????????[??OK??] [root@yong?~]#?iptables-restore?<?myipt.rule |
轉載于:https://www.cnblogs.com/yuzhaokai0523/p/4453098.html
總結
以上是生活随笔為你收集整理的linux下iptables讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dedecms 制作模板中使用的全局标记
- 下一篇: Linux 安装Redis全过程日志