# 安裝firewalld:一般centos7會集成這個工具
yum install firewalld firewall-config
systemctl start? firewalld # 啟動
systemctl status firewalld # 或者 firewall-cmd --state 查看狀態
systemctl disable firewalld # 停止
systemctl stop firewalld? # 禁用
# 關閉服務的方法
# 你也可以關閉目前還不熟悉的FirewallD防火墻,而使用iptables,命令如下:
systemctl stop firewalld
systemctl disable firewalld
yum install iptables-services
systemctl start iptables
systemctl enable iptables
配置firewalld
firewall-cmd --version? # 查看版本
firewall-cmd --help? ? ?# 查看幫助
# 查看設置:
firewall-cmd --state? # 顯示狀態
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 --reload # 更新防火墻規則
firewall-cmd --complete-reload
# 兩者的區別就是第一個無需斷開連接,就是firewalld特性之一動態添加規則,第二個需要斷開連接,類似重啟服務
# 將接口添加到區域,默認接口都在public
firewall-cmd --zone=public --add-interface=eth0
# 永久生效再加上 --permanent 然后reload防火墻
# 設置默認接口區域,立即生效無需重啟
firewall-cmd --set-default-zone=public
# 查看所有打開的端口:
firewall-cmd --zone=dmz --list-ports
# 加入一個端口到區域:
firewall-cmd --zone=dmz --add-port=8080/tcp
# 若要永久生效方法同上
# 打開一個服務,類似于將端口可視化,服務需要在配置文件中添加,/etc/firewalld 目錄下有services文件夾,這個不詳細說了,詳情參考文檔
firewall-cmd --zone=work --add-service=smtp
# 移除服務
firewall-cmd --zone=work --remove-service=smtp
# 顯示支持的區域列表
firewall-cmd --get-zones
# 設置為家庭區域
firewall-cmd --set-default-zone=home
# 查看當前區域
firewall-cmd --get-active-zones
# 設置當前區域的接口
firewall-cmd --get-zone-of-interface=enp03s
# 顯示所有公共區域(public)
firewall-cmd --zone=public --list-all
# 臨時修改網絡接口(enp0s3)為內部區域(internal)
firewall-cmd --zone=internal --change-interface=enp03s
# 永久修改網絡接口enp03s為內部區域(internal)
firewall-cmd --permanent --zone=internal --change-interface=enp03s
服務管理
# 顯示服務列表
Amanda, FTP, Samba和TFTP等最重要的服務已經被FirewallD提供相應的服務,可以使用如下命令查看:
firewall-cmd --get-services
# 允許SSH服務通過
firewall-cmd --enable service=ssh
# 禁止SSH服務通過
firewall-cmd --disable service=ssh
# 打開TCP的8080端口
firewall-cmd --enable ports=8080/tcp
# 臨時允許Samba服務通過600秒
firewall-cmd --enable service=samba --timeout=600
# 顯示當前服務
firewall-cmd --list-services
# 添加HTTP服務到內部區域(internal)
firewall-cmd --permanent --zone=internal --add-service=http
firewall-cmd --reload? ? ?# 在不改變狀態的條件下重新加載防火墻
端口管理
# 打開443/TCP端口
firewall-cmd --add-port=443/tcp
# 永久打開3690/TCP端口
firewall-cmd --permanent --add-port=3690/tcp
# 永久打開端口好像需要reload一下,臨時打開好像不用,如果用了reload臨時打開的端口就失效了
# 其它服務也可能是這樣的,這個沒有測試
firewall-cmd --reload
# 查看防火墻,添加的端口也可以看到
firewall-cmd --list-all
控制端口 / 服務
firewall-cmd --add-service=mysql? ? ? ? # 開放mysql端口
firewall-cmd --remove-service=http? ? ? # 阻止http端口
firewall-cmd --list-services? ? ? ? ? ? # 查看開放的服務
firewall-cmd --add-port=3306/tcp? ? ? ? # 開放通過tcp訪問3306
firewall-cmd --remove-port=80tcp? ? ? ? # 阻止通過tcp訪問3306
firewall-cmd --add-port=233/udp? ? ? ? ?# 開放通過udp訪問233
firewall-cmd --list-ports? ? ? ? ? ? ? ?# 查看開放的端口
偽裝 IP
firewall-cmd --query-masquerade # 檢查是否允許偽裝IP
firewall-cmd --add-masquerade? ?# 允許防火墻偽裝IP
firewall-cmd --remove-masquerade# 禁止防火墻偽裝IP
端口轉發
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080? ?# 將80端口的流量轉發至8080
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1 # 將80端口的流量轉發至192.168.0.1
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080 # 將80端口的流量轉發至192.168.0.1的8080端口
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态