Centos之防火墙(firewall/iptables)命令
Centos之防火墙(firewall/iptables)命令
Centos之防火墙(firewall/iptables)命令
Centos7 用firewall 代替 ipables
iptables 可继续安装使用
firewall的操作命令
启动防火墙
systemctl start firewalld
查看防火墙的状态
systemctl status firewalld
关闭防火墙
systemctl stop firewalld
设置防火墙开机自启
systemctl enable firewalld.service
关闭防火墙开机启动(需先关闭防火墙)
systemctl disable firewalld.service
查看firewall的状态
firewall-cmd --state
查看防火墙规则
firewall-cmd --list-all
重新加载防火墙配置
firewall-cmd --reload
查看当前开放端口(允许任意IP访问)
firewall-cmd --zone=public --list-ports
开放指定端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
// --permanent为永久生效,没有此参数 服务器重启后配置失效
查看规则
移除端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --reload
可以看到80端口已经被移除了
查看允许指定IP访问端口的规则
firewall-cmd --zone=public --list-rich-rules
开放指定端口(只允许指定IP访问)
以“只允许192.168.1.1的主机连接3306端口”为例
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="3306" accept" --permanent
firewall-cmd --reload
--permanent为永久生效,没有此参数centos重启后该配置将失效
移除规则(只允许指定IP访问的端口)
以“移除只允许192.168.1.1的主机连接3306端口”为例
firewall-cmd --remove-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="3306" accept" --permanent
firewall-cmd --reload
--permanent为永久生效,没有此参数centos重启后该配置将失效
移除默认的ssh服务
移除默认的ssh服务前,先确认是否已经额外开放了22端口,否则会导致无法使用ssh远程连接。
firewall-cmd --remove-service=ssh --permanent
firewall-cmd --reload
--permanent为永久生效,没有此参数centos重启后该配置将失效
查看某个端口是否开放
以检查80端口为例(yes:开放;no:未开放)
firewall-cmd --zone=public --query-port=80/tcp
TCP端口转发
允许防火墙伪装IP
firewall-cmd --add-masquerade
将本地80端口的流量转发到192.168.1.1的80端口
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.1:toport=80 --permanent
--permanent为永久生效,没有此参数centos重启后该配置将失效
查看版本
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