CentOS7安裝iptables防火牆
阿新 • • 發佈:2018-12-17
CentOS7預設的防火牆不是iptables,而是firewalle.
1、安裝iptable iptable-service
#先檢查是否安裝了iptables service iptables status #安裝iptables yum install -y iptables #升級iptables(安裝的最新版本則不需要) yum update iptables #安裝iptables-services yum install iptables-services
2、禁用/停止自帶的firewalld服務
#停止firewalld服務 systemctl stop firewalld #禁用firewalld服務 systemctl mask firewalld
3、設定現有規則
#檢視iptables現有規則 iptables -L -n #先允許所有,不然有可能會杯具 iptables -P INPUT ACCEPT #清空所有預設規則 iptables -F #清空所有自定義規則 iptables -X #所有計數器歸0 iptables -Z #允許來自於lo介面的資料包(本地訪問) iptables -A INPUT -i lo -j ACCEPT #開放22埠 iptables -A INPUT -p tcp --dport 22 -j ACCEPT #開放21埠(FTP) iptables -A INPUT -p tcp --dport 21 -j ACCEPT #開放80埠(HTTP) iptables -A INPUT -p tcp --dport 80 -j ACCEPT #開放443埠(HTTPS) iptables -A INPUT -p tcp --dport 443 -j ACCEPT #允許ping iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #允許接受本機請求之後的返回資料 RELATED,是為FTP設定的 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #其他入站一律丟棄(謹慎使用) iptables -P INPUT DROP #所有出站一律綠燈 iptables -P OUTPUT ACCEPT #所有轉發一律丟棄 iptables -P FORWARD DROP 4、其他規則設定
#如果要新增內網ip信任(接受其所有TCP請求) iptables -A INPUT -p tcp -s 45.96.174.68 -j ACCEPT #過濾所有非以上規則的請求 iptables -P INPUT DROP #要封停一個IP,使用下面這條命令: iptables -I INPUT -s ***.***.***.*** -j DROP #要解封一個IP,使用下面這條命令: iptables -D INPUT -s ***.***.***.*** -j DROP 5、儲存規則設定
#儲存上述規則
service iptables save
6、開啟iptables服務
#註冊iptables服務 #相當於以前的chkconfig iptables on systemctl enable iptables.service #開啟服務 systemctl start iptables.service #檢視狀態 systemctl status iptables.service
7、對映埠(如將mysql預設的3306埠對映成1306對外提供服務)
iptables -t mangle -I PREROUTING -p tcp --dport 1306 -j MARK --set-mark 883306 iptables -t nat -I PREROUTING -p tcp --dport 1306 -j REDIRECT --to-ports 3306 iptables -I INPUT -p tcp --dport 3306 -m mark --mark 883306 -j ACCEPT