如何检查并保护Linux系统中的开放端口
如何检查并保护Linux系统中的开放端口
ZhangCurry如何检查并保护Linux系统中的开放端口
理解开放端口对管理应用程序和保障系统安全至关重要,开放端口既支持服务间通信,也可能使系统面临安全威胁。本文将介绍如何通过防火墙规则和最佳实践来检查并保护Linux系统中的开放端口。
端口号范围从 0 到 65535,分为三类:
- 知名端口(Well-Known Ports,0-1023):预留给系统级通用服务。
- 注册端口(Registered Ports,1024-49151):分配给用户级应用程序或服务。
- 动态/私有端口(Dynamic/Private Ports,49152-65535):由操作系统临时分配给客户端程序(如浏览器访问网站时),通信结束后立即释放。
最常用的端口号列表如下:
| 端口号 | 服务 | 功能 |
|---|---|---|
| 20, 21 | FTP | 文件传输 |
| 22 | SSH | 安全远程登录 |
| 25 | SMTP | 发送电子邮件 |
| 53 | DNS | 域名解析 |
| 80 | HTTP | 提供网页 |
| 110 | POP3 | 检索电子邮件 |
| 123 | NTP | 时间同步 |
| 143 | IMAP | 管理电子邮件 |
| 161, 162 | SNMP | 网络监控 |
| 443 | HTTPS | 保护网页 |
| 631 | CPUS | 打印机管理和联网 |
| 3306 | MySQL | 数据库管理 |
| 3389 | RDP | 远程桌面访问 |
| 5432 | PostgreSQL | 数据库管理 |
| 5900 | VNC | 远程桌面访问 |
| 8080 | HTTP Alternate | Web 服务器或代理 |
前面作为端口号的补充知识,下面开始进入正文:
1.检查Linux系统中的开放端口
可通过多种方式查看系统中的开放端口及监听状态:
1.1使用netstat命令
netstat可显示活动端口及其关联服务:
1 | sudo netstat -tulnp |
参数说明:
-t:显示TCP端口-u:显示UDP端口-l:仅显示监听端口-n:以数字形式显示地址(不解析主机名)-p:显示进程ID和名称
示例输出:
1 | [root@localhost ~]# netstat -tulnp |
定期检查异常开放端口以发现未授权访问:
1 | sudo netstat -tulnp | grep LISTEN |
1.2使用ss命令(推荐)
ss是比netstat更高效的现代替代工具:
1 | sudo ss -tulnp |
输出格式相似,但性能更优。
1.3.使用lsof命令
lsof可列出包括网络套接字在内的已打开文件:
1 | lsof -i -P -n |
参数说明:
-i:显示网络连接-P:禁止将端口号解析为服务名(大写)-n:禁止将IP地址解析为主机名
1.4.使用nmap(远程扫描)
检查远程系统的开放端口:
1 | nmap -p- <IP-ADDRESS> |
-p-:扫描全部65535个端口
*2.保护Linux系统中的开放端口*
2.1关闭非必要端口
若服务无需运行,立即停用:
1 | sudo systemctl stop <服务名> |
2.2配置防火墙
防火墙通过允许/阻断端口控制流量。
# 使用ufw(适用于Ubuntu/Debian)
允许特定端口:
1 | sudo ufw allow 22/tcp |
拒绝特定端口:
1 | sudo ufw deny 23/tcp |
启用防火墙:
1 | sudo ufw enable |
# 使用firewalld(适用于RHEL系列系统)
允许端口:
1 | sudo firewall-cmd --add-port=22/tcp --permanent |
阻断端口:
1 | sudo firewall-cmd --remove-port=23/tcp --permanent |
# 使用iptables
仅允许特定IP访问SSH:
1 | sudo iptables -A INPUT -p tcp --dport 22 -s <允许的IP> -j ACCEPT |
阻断所有非SSH入站流量:
1 | sudo iptables -P INPUT DROP |
保存规则:
1 | sudo iptables-save > /etc/iptables.rules |
3.实施端口敲门(Port Knocking)
端口敲门(Port Knocking) 是一种隐蔽的防火墙控制技术,通过预先设定的端口连接尝试序列,动态开放默认关闭的防火墙端口。
关于端口敲门的相关技术,下一节具体描述。
4.小结
检查并保护开放端检查并保护开放端口是 Linux 系统管理 和 DevOps 中的基础安全实践。通过 定期监控端口状态 和 合理配置防火墙规则,可以有效降低系统遭受网络攻击的风险。



