CentOS7之后 , 系统已经推荐了firewall防火墙 , 而不是iptables
1、安装
yum install -y firewalld
yum install -y firewall-config
2、配置
开启firewall服务
#重启firewalld服务(注意有个d)
systemctl restart firewalld
#设置开机自启动(注意有个d)
systemctl enable firewalld
特别提醒: firewall 和 iptables冲突 , 需要禁用其中一个
#停止iptables服务
systemctl stop iptables
#禁用iptables服务
systemctl mask iptables
3、使用
启动
systemctl start firewalld # 启动
systemctl status firewalld #查看firewalld当前状态
systemctl enable firewalld # 开机启动
systemctl stop firewalld # 关闭
systemctl disable firewalld # 取消开机启动
使用
查看开放端口命令
firewall-cmd --list-ports
#设置脚本
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --permanent --zone=public --add-port=21/tcp
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload
命令说明 :
–permanent 永久生效 / 否则重启失效
–zone 作用域 一般都是public , 可以使用firewall-cmd --list-all-zones命令查看当前使用的域
–add-service 添加服务
–add-port 添加端口, 格式为 端口号/端口协议
查看端口开放情况
#查看某个端口
firewall-cmd --zone=public --query-port=80/tcp
#查看所有端口开放情况
firewall-cmd --zone=public --list-ports
4、端口转发路由 :
将80端口的流量转发至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
将80端口的流量转发至192.168.0.1
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1
将80端口的流量转发至192.168.0.1的8080端口
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080
5、扩展命令 :
检查是否允许伪装IP
firewall-cmd --query-masquerade
允许防火墙伪装IP
firewall-cmd --add-masquerade
禁止防火墙伪装IP
firewall-cmd --remove-masquerade
设置特定ip访问特定服务
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept'
删除命令为 : --remove-rich-rule
firewalld开放samba端口
firewall-cmd --zone=public --add-port=139/tcp --permanent
firewall-cmd --zone=public --add-port=445/tcp --permanent
firewall-cmd --zone=public --add-port=137/udp --permanent
firewall-cmd --zone=public --add-port=138/udp --permanent
重载firewalld
firewall-cmd --reload
在CentOS系统中关闭firewalld服务以及设置SELinux为不强制模式,以允许SMB服务正常运行。通过执行’systemctl stop firewalld’停止防火墙,并使用’setenforce 0’禁用SELinux的强制执行状态,实现对SMB服务的开放
1、关闭centos 防火墙或开smb服务端口
systemctl stop firewalld
2、setenforce 0