CentOS 7防火墙设置开放80端口

在CentOS 6.x版本中,默认使用的是iptables防火墙。到了CentOS 7.x版本,默认防火墙变成了firewalld。本篇通过使用firewalld开启、关闭 HTTP(80)端口,来讲述firewalld的基本使用方法。

firewalld 的一切设置均使用 firewall-cmd 命令完成。

配置前先确保防火墙是运行着的:

[root@centos ~]# firewall-cmd --state
running

输出running就说明运行着,否则需要开启:

[root@centos ~]# service firewalld start
Redirecting to /bin/systemctl start firewalld.service

服务器上可能会有多张网卡,每张网卡可能有多个网口。firewalld 最细可以控制每个网口的进出流量。所以配置前需要知道要控制的网口的名字,用ifconfig命令获取:

[root@centos ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.105.238.239  netmask 255.255.192.0  broadcast 10.105.255.255
        ether 52:54:00:fb:15:a0  txqueuelen 1000  (Ethernet)
        RX packets 12698807  bytes 1089693496 (1.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12987813  bytes 1410280931 (1.3 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1  (Local Loopback)
        RX packets 18353  bytes 14479244 (13.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 18353  bytes 14479244 (13.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

一般买来的云服务器,只有一张网卡一个网口,这种情况下ifconfig会列出两个网口,比如这里是eth0lolo是本地回路,是用于调试的,不是真正的网口。剩下的eth0就是真实网口的名字。

如果发现机器上除了lo网口,还是有多个网口,说明服务器上有多张网卡或多个网口。这时候要自己判断开操作哪个网口。

知道了要操作哪个网口。还需要了解下下firewalldzone的概念:

firewalld将服务器网络环境划分为几个zone。就如同美国划分了很多个州,各个州都有各自的法律,一个生活在美国的人必须处在某一个洲(比如Ohio洲),行为受到该洲的限制,如果把此人从Ohio洲移动到Texas洲,那么他收到的法律限制就会发生变化。

同样的道理,一个网口必须处在某一个zone之内,zone有一套流量进出的规则,网口的进出流量就得遵循这套规则。如果把网口从一个zone移动到另一个zone后,该网口的流量进出规则就会改变。

根据这样的解释可以知道,防火墙的流量规则都是配置在zone上的,而不是直接配置在网口上的。所以先给public这个zone添加规则:允许80端口的流量通过:

[root@centos ~]# firewall-cmd --zone=public --add-port=80/tcp
success

返回success即代表成功。然后把网口eth0添加到public这个zone里面:

[root@centos ~]# firewall-cmd --zone=public --add-interface=eth0
success

最后用浏览器访问服务器,可以发现就能正常访问HTML内容了。相反,如果不想让80端口的流量通过了,那就把80端口从public这个zone中移除:

[root@centos ~]# firewall-cmd --zone=public --remove-port=80/tcp
success

再通过浏览器访问,就会发现页面打不开了。

如果觉得这些内容对你有帮助,还请给个赞:-)

发布了43 篇原创文章 · 获赞 50 · 访问量 68万+

猜你喜欢

转载自blog.csdn.net/supergao222/article/details/78799004