CentOS 7.0預設使用的是firewall作為防火牆,這裡改為iptables防火牆。
1、關閉firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
2、安裝iptables防火牆
yum install iptables-services #安裝
vi /etc/sysconfig/iptables #編輯防火牆設定檔
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
:wq! #儲存退出
systemctl restart iptables.service #最後重啟防火牆使配置生效
systemctl enable iptables.service #設定防火牆開機啟動
============ 多麼美妙的分界線 ============
iptables是linux下的防火牆,同時也是服務名稱。
service iptables status 查看防火牆狀態 service iptables start 開啟防火牆 service iptables stop 關閉防火牆 service iptables restart 重啟防火牆
防火牆開放特定連接埠: ①檔案/etc/sysconfig/iptables ②添加: -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT ★數字8080代表開放8080連接埠,也可以改成其他的連接埠★ ③重啟防火牆 ---------------
儲存對防火牆的設定 serivce iptables save
查看iptables規則及編號 iptables -nL --line-number
關閉所有的INPUT FORWARD(轉寄) OUTPUT的所有連接埠 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP
只開啟22連接埠 iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
參數講解: –A 參數就看成是添加一條規則 –p 指定是什麼協議,我們常用的tcp 協議,當然也有udp,例如53連接埠的DNS –dport 就是目標連接埠,當資料從外部進入伺服器為目標連接埠 –sport 資料從伺服器出去,則為資料來源連接埠使用 –j 就是指定是 ACCEPT -接收 或者 DROP 不接收
禁止某個IP訪問 iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP –s 參數是來源(即192.168.1.2) 後面拒絕就是DROP
刪除規則 iptables -D INPUT 2 刪除INPUT鏈編號為2的規則