iptables 其他命令
1. 禁用/停止自帶的firewalld服務
systemctl stop firewalld
systemctl mask firewalld
2. 設置現有規則
iptables -L -n
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
iptables -A INPUT -p tcp -s 45.96.174.68 -j ACCEPT
iptables -P INPUT DROP
iptables -I INPUT -s ***.***.***.*** -j DROP
iptables -D INPUT -s ***.***.***.*** -j DROP
service iptables save
systemctl enable iptables.service
systemctl start iptables.service
systemctl status iptables.service
3. 映射端口(如將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
firewalld
啓動: systemctl start firewalld
查看狀態: systemctl status firewalld / firewall-cmd --state
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
添加:firewall-cmd --zone=public --add-port=1234/tcp --permanent(--permanent永久生效,沒有此參數重啓後失效)
添加端口外部訪問權限(這樣外部才能訪問)
firewall-cmd --add-port=5005/tcp
重新載入,添加端口後重新載入才能起作用
firewall-cmd --reload
這些之後,端口是開啓成功的,如果沒有成功,重啓系統試試。
查看端口:firewall-cmd --zone=public --query-port=80/tcp
刪除端口:firewall-cmd --zone=public --remove-port=80/tcp --permanent
查看firewall是否運行,下面兩個命令都可以
systemctl status firewalld
或
firewall-cmd --state
其實一個服務對應一個端口,每個服務對應/usr/lib/firewalld/services下面一個xml文件。
查看開啓了哪些服務:firewall-cmd --list-services
查看開啓了哪些端口:firewall-cmd --list-ports
查看還有哪些服務可以打開:firewall-cmd --get-services
查看所有打開的端口:firewall-cmd --zone=public --list-ports
更新防火牆規則:firewall-cmd --reload
查看端口訪問權限情況:firewall-cmd --query-port=1234/tcp
添加端口外部訪問權限:firewall-cmd --add-port=1234/tcp
systemctl
啓動: systemctl start firewalld
查看狀態: systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
啓動服務:systemctl start firewalld.service
關閉服務:systemctl stop firewalld.service
重啓服務:systemctl restart firewalld.service
服務的狀態:systemctl status firewalld.service
在開機時啓用一個服務:systemctl enable firewalld.service
在開機時禁用一個服務:systemctl disable firewalld.service
查看服務是否開機啓動:systemctl is-enabled firewalld.service
查看已啓動的服務列表:systemctl list-unit-files|grep enabled
查看啓動失敗的服務列表:systemctl --failed
查看版本: firewall-cmd --version
查看幫助: firewall-cmd --help
顯示狀態: firewall-cmd --state
查看所有打開的端口: firewall-cmd --zone=public --list-ports
更新防火牆規則: firewall-cmd --reload
查看區域信息: firewall-cmd --get-active-zones
查看指定接口所屬區域: firewall-cmd --get-zone-of-interface=eth0
拒絕所有包:firewall-cmd --panic-on
取消拒絕狀態: firewall-cmd --panic-off
查看是否拒絕: firewall-cmd --query-panic