一、查看端口是否已開放
查看端口是否可訪問:telnet ip 端口號
開放的端口位於/etc/sysconfig/iptables中
查看時通過 cat /etc/sysconfig/iptables 命令查看
如果想開放端口(如:tcp 2222)
(1)通過vim /etc/sysconfig/iptables 進入編輯增添一條:
A INPUT -p tcp -m tcp --dport 8889 -j ACCEPT
(2)執行 /etc/init.d/iptables restart 命令將iptables服務重啟
(3)保存 /etc/rc.d/init.d/iptables save
如若不想修改iptables表,可以直接輸入下面命令:
#iptables -I INPUT -p tcp --dport 2222 -j ACCEPT
若/etc/sysconfig/iptables不存在;
原因:在新安裝的linux系統中,防火牆默認是被禁掉的,一般也沒有配置過任何防火牆的策略,所有不存在/etc/sysconfig/iptables文件。
解決: 在控制台使用iptables命令隨便寫一條防火牆規則,如:iptables -P OUTPUT ACCEPT
使用service iptables save進行保存,默認就保存到了/etc/sysconfig目錄下的iptables文件中
二、關閉所有的 INPUT FORWARD OUTPUT ,只對某些端口開放。
命令:
#iptables -P INPUT DROP
#iptables -P FORWARD DROP
#iptables -P OUTPUT DROP
查看是否已經設置好:
#iptables -L -n
這樣設置,只是臨時的, 重啟服務器還是會恢復原來沒有設置的狀態,需要進行保存:
#service iptables save
演示只打開22端口:
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
#service iptables save 進行保存
說明:
-A:參數就看成是添加一條 INPUT 的規則
-p:指定是什么協議 我們常用的tcp 協議,當然也有udp,例如53端口的DNS
–dport:就是目標端口,當數據從外部進入服務器為目標端口
–sport:數據從服務器出去,則為數據源端口
-j:就是指定是 ACCEPT接收或者DROP不接收
三、禁止某個IP訪問
1台Linux服務器,2台windows client操作系統進行訪問
Linux服務器ip:192.168.1.100
Windows1:192.168.1.2
Windows2:192.168.1.3
兩台windows client都能訪問Linux服務器,現在要禁止Windows1訪問Linux服務器,Windows2可以正常訪問;
通過命令:iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP
說明:-A 就是添加新的規則,由於我們訪問網站使用tcp,我們就用 -p tcp , 如果是 udp 就寫udp,-s就是來源的意思,ip來源於192.168.1.2,-j 怎么做,我們拒絕它,這里應該是 DROP;
四、iptables規則刪除
命令:iptables -L -n --line-number 可以顯示規則和相對應的編號
命令:iptables -D INPUT 2
五、iptables對ftp的設置
ftp連接端口有2個 21 和 20 端口,我現在添加對應的規則
#iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
#iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT
六、DNS端口53設置
#iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
#iptables -A INPUT -p udp --sport 53 -j ACCEPT
同時還要設置
#iptables -A INPUT -p udp --dport 53 -j ACCEPT
#iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
對內網某機器單獨開放mysql端口,應該如下配置:
#iptables -A INPUT -s 192.168.2.6 -p tcp -m tcp --dport 3306 -j ACCEPT
#iptables -A OUTPUT -s 192.168.2.6 -p tcp -m tcp --sport 3306 -j ACCEPT