关闭selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config setenforce 0
开放服务
暂时开放 ftp 服务 # firewall-cmd --add-service=ftp 永久开放 ftp 服务 # firewall-cmd --add-service=ftp --permanent 永久关闭 # firewall-cmd --remove-service=ftp --permanent success 让设定生效 # firewall-cmd --reload 检查设定是否生效 # iptables -L -n | grep 21 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 ctstate NEW 检查防火墙状态 # firewall-cmd --state running
# firewall-cmd --get-service amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https
# firewall-cmd --query-service ftp yes # firewall-cmd --query-service ssh yes # firewall-cmd --query-service samba no # firewall-cmd --query-service http no
firewall-cmd --add-port=3128/tcp --permanent firewall-cmd --list-all
开放地址段
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -s 192.168.100.1/24 -j ACCEPT
开启系统路由转发功能
vi /etc/sysctl.conf net.ipv4.ip_forward=1 net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.rp_filter=0
启用NAT
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 192.168.100.0/24 -j SNAT --to-source 106.3.226.201
重启防火墙
firewall-cmd --reload
查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
firewall-cmd --state
屏蔽指定IP访问:
#屏蔽 firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="120.132.126.133" drop'
#取消屏蔽 firewall-cmd --permanent --remove-rich-rule='rule family=ipv4 source address="120.132.126.133" drop'
设置默认区域:
firewall-cmd --set-default-zone=
firewall-cmd --set-default-zone=trusted
流入默认区域中配置的接口的新访问请求将被置入新的默认区域。当前活动的连接将不受影响。
防火墙预定义的服务配置文件是xml文件 目录在 /usr/lib/firewalld/services/
在 /etc/firewalld/services/ 这个目录中也有配置文件 但是/etc/firewalld/services/目录 优先于 /usr/lib/firewalld/services/ 目录
启用某个服务
# firewall-cmd --zone=public --add-service=https //临时 # firewall-cmd --permanent --zone=public --add-service=https //永久
开启某个端口
#firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp //永久 #firewall-cmd --zone=public --add-port=8080-8081/tcp //临时
使用命令加载设置
#firewall-cmd --reload
查看开启的端口和服务
#firewall-cmd --permanent --zone=public --list-services //服务空格隔开 例如 dhcpv6-client https ss #firewall-cmd --permanent --zone=public --list-ports //端口空格隔开 例如 8080-8081/tcp 8388/tcp 80/tcp
在每次修改 端口和服务后 /etc/firewalld/zones/public.xml 文件就会被修改 所以也可以在文件中之间修改 然后重新加载
设置某个ip 访问某个服务
#firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"
ip 192.168.0.4/24 访问 http
设置后 public.xml 就会出现变化
删除上面设置的规则
#firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"
#systemctl start firewalld.service //开启服务 #systemctl enable firewalld.service //开机制动启动 #systemctl stop firewalld.service //关闭服务 #systemctl disable firewalld.service //禁止开机启动