Redhat/CentOS/Fedora Linux开放的TCP/UDP端口

时间:2020-01-09 10:40:38  来源:igfitidea点击:

我有启用了Iptabeles防火墙的Red Hat Enterprise Linux 5服务器。
我已经启动了所有服务,但不知道如何使用iptables打开端口。
默认情况下,它仅允许端口ssh tcp端口#22。
如何在Linux上打开端口80/143/110?
默认情况下,iptables防火墙将其配置存储在RHEL/CentOS 5.x/6.x上的/etc/sysconfig/iptables文件中。
您需要编辑此文件并添加规则以打开端口号。
该文件仅在以下位置可用:

  • 红帽企业版Linux 3/4/5和6
  • 老红帽Linux版本
  • CentOS的4/5/6
  • 旧版本的Fedora Linux

让我们看看如何在CentOS或RHEL版本5.x/6.x和7.x(包括最新版本的Fedora Linux 27或更高版本)上的防火墙中打开端口。

如何在RHEL/CentOS Linux上打开TCP端口80

打开文件/etc/sysconfig/iptables:

# vi /etc/sysconfig/iptables

追加规则如下:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

保存并关闭文件。
重启iptables:

# /etc/init.d/iptables restart

在RHEL上打开端口TCP端口#110

追加规则如下:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT

在CentOS上打开端口143

追加规则如下:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT

重新启动iptables服务

执行以下命令:

# service iptables restart

关于在CentOS/RHEL 6上打开端口的注释

您还可以如下使用iptable命令打开端口443:

# iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT
# service iptables save

关于Red Hat Enterprise Linux 7.x和CentOS 7.x的注释

以上命令或文件在RHEL/CentOS 7.x或Fedora Linux的最新版本上不起作用。
要查看当前打开的端口,请执行:

# firewall-cmd --list-ports

查找区域列表:

# firewall-cmd --get-zones

输出示例:

block dmz drop external home internal public trusted work

要查找有关接口名称的信息,请使用ip命令:

$ ip a

输出示例:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP qlen 1000
    link/ether 42:01:0a:80:00:04 brd ff:ff:ff:ff:ff:ff
    inet 10.128.0.4/32 brd 10.128.0.4 scope global dynamic eth0
       valid_lft 79076sec preferred_lft 79076sec
    inet6 fe80::4001:aff:fe80:4/64 scope link 
       valid_lft forever preferred_lft forever

获取有关eth0接口的信息:

# firewall-cmd --get-zone-of-interface=eth0

输出示例:

trusted

执行以下命令为Apache/httpd服务器打开TCP端口80:

# firewall-cmd --permanent --add-port 80/tcp

要再次列出打开的端口,请执行:

# firewall-cmd --list-ports

输出示例:

1191/tcp 80/tcp 22/tcp

要打开2000-3000/tcp之间的端口范围,请执行:

# firewall-cmd --permanent --add-port 2000-3000/tcp

启动/停止/重新启动防火墙的命令:

# systemctl start firewalld
# systemctl stop firewalld
# systemctl restart firewalld
# systemctl status firewalld

输出示例:

验证端口是否打开

运行以下命令ss命令/netstat命令:

# netstat -tulpn | less

或者

# ss -tulpn | less

通过列出规则,确保iptables允许端口80/110/143连接:

# iptables -L -n -v