珠海商城网站建设,网站标题优化工具,公司云网站建设,wordpress 建两个网站Linux系统-centos7.6 防火墙firewalld详解
1 firewalld了解
CentOS 7.6默认的防火墙管理工具是firewalld#xff0c;它取代了之前的iptables防火墙。firewalld属于典型的包过滤防火墙或称之为网络层防火墙#xff0c;与iptables一样#xff0c;都是用来管理防火墙的工具它取代了之前的iptables防火墙。firewalld属于典型的包过滤防火墙或称之为网络层防火墙与iptables一样都是用来管理防火墙的工具属于用户态来定义防火墙的各种规则功能内部结构都指向netfilter这一强大的网络过滤子系统属于内核态以实现包过滤防火墙功能。 firewalld支持动态更新同时支持IPv4和IPv6可以通过字符管理工具Firewall-cmd和图形化管理工具Firewall-config进行管理。它还加入了“区域”zone的概念将所有网络流量分为多个区域zone然后根据数据包的源IP地址或传入的网络接口条件等将流量传入相应区域每个区域都定义了自己打开或者关闭的端口和服务列表。其中默认区域为public。 firewalld基于区域根据不同的区域来设置不同的规则从而保证网络的安全。与硬件防火墙的设置相类似。 此外firewalld提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具这使得其成为动态的允许创建、更改和删除规则而无需在每次更改规则时重新启动防火墙守护程序。
2 firewalld相关命令
2.1 firewalld 启动状态开启
[rootzbx-server ~]# systemctl stop firewalld #关闭防火墙
[rootzbx-server ~]# systemctl status firewalld #查看防火墙状态
[rootzbx-server ~]# systemctl start firewalld #开启防火墙2.2 查看防火墙的配置
[rootzbx-server ~]# firewall-cmd --state
running
[rootzbx-server ~]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: ssh dhcpv6-clientports: protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules:2.3开放和关闭防火墙端口
[rootzbx-server ~]# firewall-cmd --list-port #查看防火墙端口
[rootzbx-server ~]# firewall-cmd --permanent --add-port8080/tcp #开放8080端口--permanent 表示这个规则是永久的即使重启系统也不会消失如果你想要临时添加规则而不是永久的可以去掉 --permanent 参数这样规则只在当前会话中有效
重启系统后会失效。--add-port80/tcp 表示添加一个允许TCP协议通过端口80的规则
success
[rootzbx-server ~]# firewall-cmd --list-ports #查看防火墙端口没有生效需要重新加载--reload才能生效
[rootzbx-server ~]# firewall-cmd --reload #--reload需要重新加载才能生效
success
[rootzbx-server ~]# firewall-cmd --list-ports #查看防火墙端口
8080/tcp
[rootzbx-server ~]# firewall-cmd --permanent --remove-port8080/tcp #移除防火墙端口
success
[rootzbx-server ~]# firewall-cmd --reload #重新加载防火墙使配置生效
success
[rootzbx-server ~]# firewall-cmd --list-ports #查看防火墙端口2.4 放开某个端口段
[rootzbx-server ~]# firewall-cmd --permanent --zonepublic --add-port1000-2000/tcp
success
[rootzbx-server ~]# firewall-cmd --reload
success
[rootzbx-server ~]# firewall-cmd --list-ports
1000-2000/tcp2.5 开放和禁止某个IP访问
开放IP192.168.142.90 禁止IP10.10.10.8
[rootzbx-server ~]# firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.142.90 accept
success
[rootzbx-server ~]# firewall-cmd --permanent --add-rich-rulerule familyipv4 source address10.10.10.8 drop
success
[rootzbx-server ~]# firewall-cmd --reload
success
[rootzbx-server ~]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: ssh dhcpv6-clientports: 1000-2000/tcpprotocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules: rule familyipv4 source address192.168.142.90 acceptrule familyipv4 source address10.10.10.8 drop移除以上规则
[rootzbx-server ~]# firewall-cmd --permanent --remove-rich-rulerule familyipv4 source address192.168.142.90 accept
success
[rootzbx-server ~]# firewall-cmd --permanent --remove-rich-rulerule familyipv4 source address10.10.10.8 drop
success
[rootzbx-server ~]# firewall-cmd --reload
success
[rootzbx-server ~]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: ssh dhcpv6-clientports: 1000-2000/tcpprotocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules: [rootzbx-server ~]#2.6 放开某个IP段的访问
[rootzbx-server ~]# firewall-cmd --permanent --add-rich-rulerule familyipv4 source address10.0.0.0/24 accept
success
[rootzbx-server ~]# firewall-cmd --reload
success
[rootzbx-server ~]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: ssh dhcpv6-clientports: 1000-2000/tcpprotocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules: rule familyipv4 source address10.0.0.0/24 accept
[rootzbx-server ~]#2.7 放开某个IP的可访问某个端口
firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.142.90 port protocoltcp port22 accept2.8 如设置未生效可尝试直接编辑规则文件删掉原来的设置规则重新载入一下防火墙即可
vi /etc/firewalld/zones/public.xml3 ssh登录限制IP
在/etc/hosts.allow中添加允许ssh登陆的ip或者网段 sshd:183.242.4.225:allow或 sshd:192.168.0.0/24:allow (其中 192.168.0.16 是你要允许登陆 ssh 的 ip, 或者是一个网段 192.168.0.0/24) 在/etc/hosts.deny添加不允许ssh登陆的IP sshd:ALL