centos 6
vi /etc/sysconfig/iptables # 防火牆配置檔案
-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
# 添加防火牆樣本:開放22 和80 端口
service iptables restart # 重新開機防火牆
netstat -ntlp # 檢視正在運作的端口
service httpd restart # 重新開機 httpd 服務
ubuntu
ufw allow 8081 # ubuntu 防火牆1
iptables -I INPUT -p tcp --dport 8081 -m state --state NEW -j ACCEPT
centos 7
yum list | grep firewall # 查找安裝包
yum install -y firewalld
firewall-cmd --state # 檢視防火牆是否運作
firewall-cmd --query-port=8080/tcp # 先檢視端口是否開放
# firewall [ˈfaɪəwɔːl] 防火牆
firewall-cmd --zone=public --list-ports # 列出公共端口 zone [zoʊn] 地區
firewall-cmd --permanent --add-port=8022/tcp
# 開放端口8022
# permanent [ˈpɜːmənənt] 永久的
# 不加此參數重新開機會失效
firewall-cmd --permanent --remove-port=8080/tcp
# 移除端口
firewall-cmd --zone=public --add-port=4400-4600/udp --permanent
firewall-cmd --zone=public --add-port=4400-4600/tcp --permanent
# 開放多個端口,指定範圍 :udp;tcp 類型
#--- 生效配置 ---#
systemctl restart firewalld # 添加端口後,重新開機防火牆生效
firewall-cmd --reload # 重載防火牆配置
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 檢視是否拒絕
firewall-cmd --zone=public --list-ports # 檢視開啟的端口,端口清單
netstat -ntlp # 檢視正在運作的端口
firewall-cmd --reload # 重新開機防火牆
systemctl stop firewalld # 禁用防火牆
systemctl enable firewalld # enable 開機自動啟動
# disable禁止開機啟動
firewall-cmd --list-all #檢視防火牆規則(隻顯示/etc/firewalld/zones/public.xml中防火牆政策)
firewall-cmd --list-all-zones #檢視所有的防火牆政策(即顯示/etc/firewalld/zones/下的所有政策)
####################### 限制來訪ip端口 ################################
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="127.0.0.3" port protocol="tcp" port="1521" accept"
# 對指定IP 開放端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.200" port protocol="tcp" port="80" reject"
# 限制IP通路80端口;firewall [ˈfaɪrwɑl] 防火牆;
# permannet [ˈpɜrmənənt] 永久, p man ent; rith [rɪʧ] 豐富; rule [rul] 規則;永久添加豐富規則
# family [ˈfæməli] 家族;家族規則;source [sɔrs] 來源; prot [pɔrt] 端口; protocol [ˈproᴜtəˌkɑl] 規則;reject [ˈriʤɛkt] 拒絕
# --add-rich-rule= 防火牆加入一段字元串:
# address="10.0.0.0/24" 其中 /24 是限制整段IP
firewall-cmd --reload # 重載配置,生效
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.0.200" port protocol="tcp" port="80" reject"
# 解除IP禁止通路端口 remove 删除規則
firewall-cmd --reload # 重載配置,生效
firewall-cmd --zone=public --list-ports
# 檢視記錄
# systemctl disable firewalld # disables 禁止開機啟動,enables 開啟開機啟動
vi /etc/firewalld/zones/public.xml # 規則記錄檔案管理
# --add-rich-rule= 防火牆加入一段字元串,産生如下資訊:
<rule family="ipv4">
<source address="180.76.164.15"/>
<port protocol="tcp" port="22"/> # 禁止22端口
<reject/> # reject [ˈriʤɛkt] 禁止
</rule> # 目前是5行為一個規則
firewalld 端口映射
firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toaddr=172.17.0.2:toport=80
# 将本機的80端口映射到内網 80
# add 增加; remove 删除
iptables 端口管理
yum install iptables-services -y # 安裝更新 iptables
sed -i "/3306/d" /etc/sysconfig/iptables
# 清除3306端口規則
iptables -L -n --line-number ; # 檢視開放的端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 添加進端口
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT # 添加出端口
iptables -L -n --line-numbers # 檢視已有規則并顯示編号
iptables -D INPUT 2 # 删除編号為2進規則
# OUTPUT 出規則
service iptables status # 檢視狀态
systemctl start iptables.service #啟動防火牆
systemctl enable iptables.service #設定開機自啟動
systemctl stop iptables.service #關閉防火牆
systemctl disable iptables.service #禁止開機啟動
iptables -F
iptables -X
iptables -Z # 清除防護牆
systemctl restart iptables; # 重新開機防火牆删除配置
iptables -A INPUT -p tcp --dport 9090 -j ACCEPT
# 添加進端口
yum install -y iptables-services # 安裝 iptables
service iptables save # 儲存防火牆最新配置,前提:安裝:iptables-services
iptables -I INPUT -s 180.76.164.15 -p TCP --dport 22 -j DROP
# 禁止此ip通路22端口
# 允許通路,将DROP 改為:ACCEPT
iptables -L -n -v # 檢視已添加的iptables規則
iptables 相關資料:
https://cloud.tencent.com/developer/article/1480230firewall 開放端口
yum install -y firewalld
firewall-cmd --query-port=8081/tcp # 先檢視端口是否開放
# 開放端口8022
systemctl restart firewalld # 重新開機防火牆