插件窝 干货文章 如何设置CentOS系统以禁用不必要的网络协议和服务

如何设置CentOS系统以禁用不必要的网络协议和服务

sudo disable systemctl 服务 383    来源:    2025-04-15

CentOS 系统禁用不必要网络协议和服务的指南

1. 评估当前运行的服务

首先查看系统当前运行的所有服务:

systemctl list-unit-files --type=service --state=enabled
netstat -tulnp
ss -tulnp

2. 禁用不必要的服务

常见可禁用服务(根据实际需求选择):

# 打印服务
sudo systemctl disable cups

# 蓝牙服务
sudo systemctl disable bluetooth

# Avahi (zeroconf/mDNS服务)
sudo systemctl disable avahi-daemon

# NFS相关服务(如果不使用NFS)
sudo systemctl disable nfs-server
sudo systemctl disable rpcbind

# 邮件服务(如postfix)
sudo systemctl disable postfix

# 自动更新服务(如需要手动更新)
sudo systemctl disable dnf-automatic

3. 禁用不必要网络协议

禁用IPv6(如果不需要):

# 编辑/etc/sysctl.conf
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf

# 应用设置
sudo sysctl -p

禁用不必要的内核模块:

# 创建模块黑名单文件
echo "install dccp /bin/false" | sudo tee -a /etc/modprobe.d/disable-unused.conf
echo "install sctp /bin/false" | sudo tee -a /etc/modprobe.d/disable-unused.conf
echo "install rds /bin/false" | sudo tee -a /etc/modprobe.d/disable-unused.conf
echo "install tipc /bin/false" | sudo tee -a /etc/modprobe.d/disable-unused.conf

4. 配置防火墙

# 安装防火墙(如果未安装)
sudo yum install firewalld -y
sudo systemctl enable firewalld
sudo systemctl start firewalld

# 默认拒绝所有传入连接
sudo firewall-cmd --set-default-zone=drop
sudo firewall-cmd --runtime-to-permanent

5. 移除不必要的网络工具

sudo yum remove telnet rsh rlogin ypbind tftp

6. 加固SSH配置

编辑 /etc/ssh/sshd_config

Protocol 2
PermitRootLogin no
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 0
AllowUsers [你的用户名]

然后重启SSH服务:

sudo systemctl restart sshd

7. 应用所有更改后重启系统

sudo reboot

注意事项

  1. 在禁用任何服务前,请确认该服务不会被系统或其他应用程序使用
  2. 生产环境中建议先在测试环境验证配置变更
  3. 定期检查系统日志(/var/log/messages, journalctl -xe)确认没有异常
  4. 考虑使用SELinux提供额外的安全层

以上配置可根据实际业务需求进行调整,某些服务在特定环境下可能是必需的。