防火牆配置
CentOS 7默認使用的是firewall作為防火牆,這里改為iptables防火牆。
firewall操作:
# service firewalld status; #查看防火牆狀態
(disabled 表明 已經禁止開啟啟動 enable 表示開機自啟,inactive 表示防火牆關閉狀態 activated(running)表示為開啟狀態)
# service firewalld start; 或者 #systemctl start firewalld.service;#開啟防火牆
# service firewalld stop; 或者 #systemctl stop firewalld.service;#關閉防火牆
# service firewalld restart; 或者 #systemctl restart firewalld.service; #重啟防火牆
# systemctl disable firewalld.service#禁止防火牆開啟自啟
# systemctl enable firewalld#設置防火牆開機啟動
#yum remove firewalld#卸載firewall
禁用/停止自帶的firewalld服務
systemctl stop firewalld #停止firewalld服務
systemctl mask firewalld #禁用firewalld服務
安裝iptables防火牆及操作:
service iptables status #先檢查是否安裝了iptables
yum install -y iptables #安裝iptables
yum update iptables #升級iptables
yum install iptables-services #安裝iptables-services
設置現有規則
iptables -L -n #查看iptables現有規則
iptables -P INPUT ACCEPT #先允許所有,不然有可能會杯具
iptables -F #清空所有默認規則
iptables -X #清空所有自定義規則
iptables -Z #所有計數器歸0
iptables -A INPUT -i lo -j ACCEPT #允許來自於lo接口的數據包(本地訪問)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #開放22端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT #開放21端口(FTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #開放80端口(HTTP)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT #開放443端口(HTTPS)
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #允許ping
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #允許接受本機請求之后的返回數據 RELATED,是為FTP設置的
iptables -P INPUT DROP #其他入站一律丟棄
iptables -P OUTPUT ACCEPT #所有出站一律綠燈
iptables -P FORWARD DROP #所有轉發一律丟棄
其他規則設定
iptables -A INPUT -p tcp -s 45.96.174.68 -j ACCEPT #如果要添加內網ip信任(接受其所有TCP請求)
iptables -P INPUT DROP #過濾所有非以上規則的請求
iptables -I INPUT -s ***.***.***.*** -j DROP #要封停一個IP,使用下面這條命令:
iptables -D INPUT -s ***.***.***.*** -j DROP #要解封一個IP,使用下面這條命令:
保存規則設定
service iptables save #保存上述規則
開啟iptables服務
systemctl enable iptables.service #注冊iptables服務 相當於以前的chkconfig iptables on
systemctl start iptables.service #開啟服務
systemctl status iptables.service #查看狀態
解決vsftpd在iptables開啟后,無法使用被動模式的問題
1.首先在/etc/sysconfig/iptables-config中修改或者添加以下內容
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#!/bin/sh iptables -P INPUT ACCEPT iptables -F iptables -X iptables -Z iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP service iptables save systemctl restart iptables.service