CentOS 21端口关闭了怎么办?开启方法是什么?

在CentOS系统中,端口管理是服务器安全配置的重要环节,默认情况下,许多非必要的端口处于开放状态,这可能带来潜在的安全风险,以21端口为例,它常用于FTP服务,但由于FTP协议本身存在明文传输等安全隐患,若服务无需使用,建议关闭该端口以提升系统安全性,本文将详细介绍在CentOS系统中关闭21端口的方法、注意事项及相关安全实践。

CentOS 21端口关闭了怎么办?开启方法是什么?

为什么需要关闭21端口?

21端口是FTP服务的默认端口,FTP(文件传输协议)广泛应用于文件传输场景,但其设计存在明显缺陷:

  1. 明文传输:用户名、密码及传输数据均未加密,易被中间人窃取。
  2. 被动模式复杂性:FTP的被动模式需开放额外端口,可能增加防火墙配置难度。
  3. 安全漏洞:旧版FTP服务可能存在缓冲区溢出等漏洞,成为攻击入口。

若业务场景无需使用FTP(如改用SFTP、SCP等更安全的协议),关闭21端口是基础的安全措施。

检查21端口当前状态

在关闭端口前,需确认其是否已被占用及服务状态,可通过以下命令查看:

检查端口监听状态

netstat -tuln | grep 21
# 或使用ss命令(推荐,netstat逐渐被ss替代)
ss -tuln | grep 21
  • 若输出结果包含21端口,且StateLISTEN,表示服务正在监听该端口。
  • 示例输出:tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN

检查关联服务

lsof -i :21
# 或通过服务名检查(如vsftpd)
systemctl status vsftpd
  • lsof显示进程信息(如vsftpd),或systemctl status显示服务为active (running),则说明21端口由该服务占用。

关闭21端口的常用方法

方法1:通过防火墙规则临时关闭

若仅需临时禁止外部访问21端口,可通过防火墙(如firewalld或iptables)实现,不停止服务本身。

CentOS 21端口关闭了怎么办?开启方法是什么?

使用firewalld(CentOS 7及以上默认)

# 检查firewalld状态
systemctl status firewalld
# 永久移除21端口规则
firewall-cmd --permanent --remove-port=21/tcp
# 重新加载防火墙使规则生效
firewall-cmd --reload
# 验证规则是否移除
firewall-cmd --list-ports | grep 21

使用iptables(CentOS 6或自定义环境)

# 添加规则拒绝TCP 21端口访问
iptables -I INPUT -p tcp --dport 21 -j DROP
# 保存规则(CentOS 6下使用service iptables save;CentOS 7+需安装iptables-services)
service iptables save
# 重启iptables服务
systemctl restart iptables

方法2:停止并禁用FTP服务(彻底关闭)

若无需FTP服务,直接停止并禁用相关服务(如vsftpd)可彻底释放21端口。

停止vsftpd服务

systemctl stop vsftpd

禁用服务开机自启

systemctl disable vsftpd

验证服务状态

systemctl status vsftpd  # 应显示 "inactive (dead)"
ss -tuln | grep 21       # 无输出表示端口已释放

方法3:修改服务配置(可选)

若需保留FTP服务但限制访问,可修改服务配置文件(如/etc/vsftpd/vsftpd.conf),将listen=NOlisten_ipv6=YES(若需IPv6)结合listen_address绑定特定IP,避免监听所有接口。

关闭端口后的验证与安全加固

验证端口关闭状态

# 外部测试(使用另一台机器或curl)
telnet <服务器IP> 21  # 应连接失败
curl -v ftp://<服务器IP>:21/  # 应返回连接错误
# 本地检查
ss -tuln | grep 21  # 确认无LISTEN状态

安全加固建议

  • 替换FTP服务:若需文件传输,建议改用SFTP(基于SSH,端口22)或SCP,加密传输更安全。
  • 定期审计端口:使用nmap扫描服务器开放端口,确保仅必要端口暴露:
    nmap -sT -p- <服务器IP>  # 扫描所有TCP端口
  • 启用SELinux:检查SELinux状态,确保未因关闭端口导致策略违规:
    getenforce  # 应为Enforcing

常见问题FAQs

Q1: 关闭21端口后,本地是否仍能访问FTP服务?
A: 若通过防火墙规则关闭端口(如firewall-cmd --remove-port),默认情况下本地访问(0.0.1:21)也会被禁止,若需本地访问,可添加例外规则:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="127.0.0.1" port protocol="tcp" port="21" accept'
firewall-cmd --reload

若通过停止服务关闭端口,则本地及外部访问均不可用。

CentOS 21端口关闭了怎么办?开启方法是什么?

Q2: 如何确认21端口被哪个服务占用?
A: 可结合netstatsslsof命令定位:

# 1. 查看监听21端口的进程ID
ss -tuln | grep 21
# 输出示例:tcp    0      0 0.0.0.0:21        0.0.0.0:*    LISTEN    1234  
# 2. 通过PID查找进程名
ps -ef | grep 1234
# 输出示例:root     1234     1  0 10:00 ?        00:00:00 vsftpd: /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf  

若PID为systemd(如1),则可能是系统服务,需通过systemctl status进一步排查。

通过以上方法,可有效关闭CentOS系统中的21端口,并提升服务器安全性,实际操作中,建议先在测试环境验证,避免误关闭关键服务。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-11-03 08:36
下一篇 2025-11-03 08:39

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信