當啓用防火牆後,iptables -vnL顯示出全部規則,但咱們不使用默認規則,清空規則,本身定義網絡
一、iptable -t filter -A INPUT -s 192.168.239.70 -j DROP(末尾添加),設置源地址是192.168.239.70發出的請求,全丟棄,即不迴應併發
以前是通的,但設置完防火牆規則後的DROP(丟棄)就卡在這裏,光標不停閃爍ssh
二、iptables -I INPUT -s 192.168.239.70 -j REJECT,插入規則,源地址爲192.168.239.70的主機發出的請求所有拒絕,這裏直接返回目標端口不可到達tcp
iptables -I INPUT 2 -s 192.168.239.70 -j REJECT,插入第二條ide
三、iptables -D INPUT 2,刪除INPUT中的第二條規則函數
四、iptables -R INPUT 2 -s 192.168.1.1 -j REJECT,替換規則中第2條源地址ip由192.168.239.70更改成192.168.1.1測試
五、iptables -A INPUT -s 192.168.239.70,192.168.239.71 -j REJECT,一次加入兩條ipspa
六、iptables -A INPUT -s ! 192.168.239.70 -j REJECT,除了192.168.239.70的ip,所有拒絕
生產中爲了不本身設置規則時候不當心把本身踢出,應作防火牆備份,再用at執行計劃,設置5分鐘後執行,等規則設置完成後再取消計劃,避免產生沒必要要的麻煩
七、iptables -P INPUT DROP,更改策略中只要不匹配就DROP,默認爲ACCEPT(只支持ACCEPT和DROP,不支持REJECT),最好不要進行更改
八、iptables -A OUTPUT -d 192.168.239.70 -j DROP,拒絕本機流出報文訪問目標地址192.168.239.70
此時192.168.239.70也不會ping通本機,由於報文的傳導是有去有回的
iptables -A INPUT ! -s 192.168.239.1 -j REJECT
iptables -A INPUT -s 192.168.239.0/24 -j ACCEPT
這裏記錄了防火牆的規則,若是另外一臺設備也須要一樣的防火牆規則,能夠將其生存文件,並
while read line; do done iptables $line < iptables.log
iptables -A INPUT -s 192.168.239.70 -p icmp -j REJECT
因爲禁止的是icmp協議,ssh基於的是tcp協議,但ssh仍是能夠
iptables -A INPUT -i eth0 -j ACCEPT,從eth0網卡流入的數據報文所有容許,適用於多種網卡狀況
打開個人云服務器,lastb發現有幾個ip嘗試登錄個人雲服務器,將這些ip所有加入黑名單
iptables -A INPUT -s 103.207.37.253,118.123.244.228,119.6.103.44,5.188.10.156,103.207.37.253,103.207.38.226,14.226.255.211,78.198.69.64 -j REJECT
--tcp-flags SYN表示第一次握手,等於--syn
輸入指令iptables -A INPUT -p tcp --syn -j REJECT,查看
以前已經鏈接到192.168.239.60的主機能夠繼續使用,而其餘主機鏈接被拒絕
iptables -A INPUT -p icmp --icmp-type 8 -j REJECT,拒絕進來請求報文,測試結果爲
以SAMBA服務舉例,鏈接SAMBA服務須要開放13九、445端口,未開放前
輸入指令iptables -A INPUT -p tcp --dport 139 -j ACCEPT和iptables -A INPUT -p tcp --dport 445 -j ACCEPT以後,已經能夠鏈接
iptables -N WEBSRV FILESRV,自定義鏈更名由WEBSRV變爲FILESRV
iptables -A FILESRV -p tcp --dport 139 -j ACCEPT,向FILESRV添加容許139端口經過的規則
iptables -A INPUT -s 192.168.239.71 -j FILESRV
自定義鏈相似於shell中的函數調用理念,提早預設好,等使用時候直接用便可
iptables -I INPUT -p tcp -m multiport --dports 80,443,3306 -j ACCEPT
若是命令是iptables -I INPUT -p tcp -m multiport --dports 80:88,443,3306 -j ACCEPT,添加的端口是80,81,82,83,84,85,86,87,88,443,3306
iptables -A INPUT -m iprange --src-range 192.168.239.60-192.168.239.69 -j ACCEPT
本機192.168.239.60沒法ping通192.168.239.70,此時添加規則
iptables -A INPUT -s 192.168.1.1 [!] -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptable -A OUTPUT -m string --string "baidu" --algo bm -j REJECT
查看iptables規則,此時能夠ping通www.baidu.com
設置string擴展規則,以後再次ping www.baidu.com失敗
iptables -A OUTPUT -m time --timestart 1:00 --timestop 9:00 --weekdays 2,4,6 -j REJECT
設置UTC時間1:00-9:00(北京時間9:00-18:00),週二四六不能流出報文
控制單個ip最多能夠發起多少個鏈接數,防止******(cc***,挑戰黑洞)
iptables -A INPUT -m connlimit --connlimit-above 100 -j REJECT
iptables -I INPUT 2 -m limit --limit 6/minute --limit-burst 10 -j ACCEPT
一分鐘前十次ping 本機不理會,超過十個後拒絕,後面ping中均勻分佈每分鐘ping通6次
NEW:新發出請求;鏈接追蹤信息庫中不存在此鏈接的相關信息條目,所以,將其識別爲第一次發出的請求,即新鏈接,但不影響正在鏈接的
ESTABLISHED:NEW狀態以後,鏈接追蹤信息庫中爲其創建的條目失效以前期間內所進行的通訊狀態,即正在鏈接的
RELATED:新發起的但與已有鏈接相關聯的鏈接,如:ftp協議中的數據鏈接與命令鏈接之間的關係
iptables -A INPUT -s 192.168.239.60 -j LOG --log-prefix "iptables:" ,--log-prefix,前綴的意思
和state相結合,能夠iptables -I INPUT 3 -s 192.168.239.0/16 -m state --state NEW -j LOG --lgo-prefix "自定義字符",只要192.168.239.0網段的新主機訪問本主機,日誌都會記錄下來
CentOS6的保存service ipatables save,系統會自動保存到 /etc/sysconfig/iptables
CentOS7的保存,iptables-save > /DIR/FILE,讀取時候iptables-restore < /DIR/FILE,
所以須要在/etc/rc.d/rc.local中寫入iptables-restore < /DIR/FILE(記得對rc.local加執行權限)
iptables -t nat -A POSTROUTING -s 192.168.31.0/24 -j SNAT --to-source 172.18.0.123