防火墙是保护服务器、网络安全的重要工具,其可以限制网络访问,控制协议和端口等等。一个好的防火墙设置可以有效的提高网络安全。在进行防火墙设置的时候,我们需要知道哪些端口是开放的,以便于对相应业务进行管理。接下来,我们将从几个方面进行详细介绍查看防火墙开放了哪些端口的方法。
一、防火墙如何开放端口
在进行查看防火墙开放端口之前,我们需要了解如何开放端口。下面是一些 CentOS 7 系统下防火墙命令的相关操作。
# 查看 iptables 状态 sudo systemctl status iptables.service # 关闭 iptables sudo systemctl stop iptables.service # 禁止 iptables 开机启动 sudo systemctl disable iptables.service # 开启 iptables sudo systemctl start iptables.service # 允许端口 80 通过防火墙 sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT # 保存 iptables 设置 sudo iptables-save # CentOS 7 Firewall-cmd 命令 sudo firewall-cmd --state # 查看firewall-cmd状态 sudo firewall-cmd --zone=public --add-port=80/tcp --permanent # 永久开放80端口 sudo firewall-cmd --reload #重新载入
二、查看Linux系统中防火墙开放的端口
Linux系统提供了一些命令和工具可以查看现有的防火墙规则,下面我们将一一介绍。
1. iptables 命令
iptables 命令可以列出所有防火墙规则,可以通过输入以下命令在命令行窗口查看:iptables -L
。
$ sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination DOCKER-ISOLATION all -- anywhere anywhere DOCKER all -- anywhere anywhere ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
2. netstat 命令
netstat 命令可以查看与本地系统建立连接的端口并列出详细信息,可以通过输入以下命令在命令行窗口查看: netstat -anp
。
$ sudo netstat -anp | grep LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN - tcp6 0 0 :::80 :::* LISTEN -
3. ss 命令
ss 命令是 netstat 命令的替代品,可以显示更多的详细信息,可以通过输入以下命令在命令行窗口查看:ss -lntup
。
$ sudo ss -lntup Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp LISTEN 0 128 127.0.0.11%lo:53 0.0.0.0:* users:(("docker-proxy",pid=13943,fd=4)) tcp LISTEN 0 128 *:22 *:* users:(("sshd",pid=2735,fd=3)) tcp LISTEN 0 128 :::80 :::* users:(("httpd",pid=1070,fd=4),("httpd",pid=1069,fd=4),("httpd",pid=1068,fd=4),("httpd",pid=1067,fd=4),("httpd",pid=1066,fd=4),("httpd",pid=1065,fd=4))
三、查看防火墙开放端口
除了查看系统的防火墙设置端口,还有其他的一些方法可以查看防火墙开放端口。
1. nmap 命令
nmap 是一个网络扫描工具,通过扫描目标 IP 地址和端口,可以获取防火墙上开放的端口,可以通过下列命令来查看:
$ sudo nmap -p- localhost Starting Nmap 7.60 ( https://nmap.org ) at 2018-04-22 12:15 CST Nmap scan report for localhost (127.0.0.1) Host is up (0.000024s latency). Not shown: 65533 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http 8000/tcp open http-alt
2. telnet 命令
telnet 是一个远程访问工具,通过连接目标地址,可以获取防火墙上开放TCP端口的情况。可以使用以下命令: telnet [rayjump.com](http://rayjump.com/)
,其中 [rayjump.com](http://rayjump.com/) 为域名,
$ telnet rayjump.com 22 Trying 192.168.1.1... Connected to rayjump.com. Escape character is '^]'. SSH-2.0-OpenSSH_7.4
3. 使用浏览器访问端口服务
在访问有开放端口的服务器上,我们可以直接使用浏览器通过访问相应的端口进行查看。
通过上述方法,我们就可以查看防火墙开放了哪些端口,并且对相应端口进行管理和配置。维护好企业的网络环境,提高相应的安全性,这就需要我们要有一个好的防火墙设置,提高网络安全性。