小白给云服务器CVM提供的Linux系统镜像默认已安装防火墙,当我们需要对外开放端口时,该如何操作?

 

小白提供Linux系统包括CentOS、Ubuntu、Windows,本教程是针对CentOS系统的防火墙开放端口的操作方法。

 

CentOS系统是Linux家族中非常流行的一个发行版本,CentOS7出来后,有部分命令跟之前CentOS6系有所不同,这里列举下开放端口的命令

 

在CentOS7中,Firewall防火墙取代了早前的iptables防火墙,防火墙命令也不同,因此在检查前,需要先查询下到底使用的是哪种防火墙

 

检查使用哪种防火墙,先尝试执行

 

[root@localhost ~]# firewall-cmd --state
-bash: firewall-cmd: command not found

 

如上结果(command not found),表示firewall防火墙命令无法找到,说明该系统并没有安装firewall版防火墙。

 

同样的,如果执行命令

 

[root@localhost~]# service iptables status
Redirecting to /bin/systemctl status iptables.service
Unit iptables.service could not be found.

 

如上结果(Unit iptables.service could not be found.),表示并没有安装iptables防火墙。

 

为了更好的演示,我们分别在已经安装了firewall防火墙、iptables防火墙的环境中进行如下操作演示。

Firewall防火墙命令

 

查看防火墙状态命令:

firewall-cmd --state

 

结果显示为running,即表示防火墙处于运行状态;如果显示not running,则表示防火墙不在运行(但已安装)。(如果显示其他错误,则表示未安装firewall防火墙)

 

以上结果为防火墙已启用,我们就可以查看放行的端口了。

 

查看已开放端口命令:(示例中的zone表示信任级别,使用public即可)

firewall-cmd --zone=public --list-ports

 

如上图,开放了 TCP 20、TCP 21、TCP 22、TCP 80、TCP 8888、TCP 39000到40000 端口。

 

添加端口:

 

如果你需要新增放行一个端口,只需要执行如下命令,

firewall-cmd --zone=public --add-port=443/tcp --permanent

(以上示例为放行TCP 443端口,也就是用于https协议的端口,其中参数 permanent 表示永久生效,重启系统后会继续生效)

 

移除端口:

 

如果你需要取消某个已放行的端口,输入命令:

firewall-cmd --zone=public --remove-port=443/tcp --permanent

iptables防火墙命令

在CentOS6系中,默认使用的为iptables防火墙。

 

查看服务是否开启:

[root@localhost ~]# service iptables status
iptables: Firewall is not running.

如上结果,显示Firewall is not running 表示iptables防火墙已经安装但是没有启用。

 

开启iptables防火墙:

[root@localhost ~]# service iptables start
iptables: Applying firewall rules:                         [  OK  ]

如上结果,iptables防火墙开启成功。

 

查看有哪些端口开放的命令:

iptables -L -n

 

开放端口命令:(以下示例为开放80端口,常用于http协议)

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

开放某个端口即添加了一条开放该端口的规则。

 

删除端口(删除规则,即禁用端口):

 

首先我们要知道要删除的这条规则的编号,每条规则都有一个编号,查看已有规则编号命令:

iptables -L -n --line-number

 

如下结果显示:

 

num target  prot opt source        destination

1  DROP    tcp -- 0.0.0.0/0      0.0.0.0/0      tcp dpt:3306

2  DROP    tcp -- 0.0.0.0/0      0.0.0.0/0      tcp dpt:21

3  DROP    tcp -- 0.0.0.0/0      0.0.0.0/0      tcp dpt:80

 

可以看到多了 num 这一列, 这样我们就可以看到刚才添加的规则是对应的是编号3(放行80端口入站规则)

 

如果想要这条删除80端口入站规则,那么我们就可以进行操作了

 

iptables -D INPUT 3

 

操作之后,务必执行保存命令

 

service iptables save

Centos如何开启ping ? 

 

检查系统是否开启ping(ICMP_ipv4协议)的命令:

 

cat /proc/sys/net/ipv4/icmp_echo_ignore_all

 

以上命令如结果为0,表示已开启ping;如为1,则未开启ping。

 

手动开启ping的命令:

 

echo "0" >/proc/sys/net/ipv4/icmp_echo_ignore_all

 

除了系统中开启ping外,安全组也需放行ICMP/ipv4协议,这样公网IP才能ping通。

发布时间 2020-11-16 18:04:29

<<返回文章列表