Centos防火墙 firewall使用

2021-09-25

zone

zone的概念

zone预定义一些规则,这些规则指定哪些流量可以通过信任级别允许。你可以将网卡或者访问源与zone绑定。

Firewall里面的一些Zone

  • drop:所有注入流量被禁止,只有出的流量被允许
  • block:所有流量被禁止,只有出的流量被允许,与drop不同的是他是通过icmp-host-prohibited消息驳回的。
  • public:用于用户不信任的区间。你可以指定你信任的流量,其它的流量则不被允许
  • external:用于一些Nat masquerading的网络应用,只有选择的入流量被允许
  • dmz:基于一些特殊应用
  • work:用于工作组机器,本网络的其它机器被信任。只有选择的入浏览量允许
  • home:用于家庭机器 ,本网络的其它机器被信任,只有选择的入流量被允许
  • trusted:所有网络流量允许。信任所有网络上的机器

一般配置防火墙用firewall-cmd命令。要保存下次重启依然生效的话加上--permanent选项就行了。

一些命令

sudo yum install firewalld
sudo firewall-cmd --state
sudo systemctl start firewalld
sudo systemctl enable firewalld

sudo firewall-cmd --get-default-zone
sudo firewall-cmd --get-zones
sudo firewall-cmd --get-active-zones


sudo firewall-cmd --zone=public --list-all
sudo firewall-cmd --list-all-zones


sudo firewall-cmd --zone=work --change-interface=eth1
sudo firewall-cmd --get-active-zones


sudo firewall-cmd --set-default-zone=home
sudo firewall-cmd --get-default-zone

sudo firewall-cmd --get-services
sudo firewall-cmd --zone=public --add-service=http
sudo firewall-cmd --zone=public --remove-service=http
sudo firewall-cmd --zone=public --list-services

sudo firewall-cmd --zone=public --add-port=32400/tcp
sudo firewall-cmd --zone=public --list-ports
sudo firewall-cmd --zone=public --remove-port=32400/tcp

关于Service

Service实际上给特定的规则流量定义了一个名称。例如:

/usr/lib/firewalld/services/http.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>WWW (HTTP)</short>
<description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description>
<port protocol="tcp" port="80"/>
</service>

这样你就可以这样使用了

sudo firewall-cmd --zone=public --add-service=http

发表评论