在Linux上配置网络安全策略需要多层次、系统化的操作。以下是一份详细的配置指南,涵盖关键环节和最佳实践:
系统更新
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # RHEL/CentOS
用户与权限
bash
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
bash
sudo useradd -m <username> && sudo passwd <username>
sudo usermod -aG sudo <username> # Debian/Ubuntu
sudo usermod -aG wheel <username> # RHEL/CentOS
iptables/nftables(传统方案)
# 清空现有规则
sudo iptables -F
sudo iptables -X
# 默认策略:拒绝所有入站,允许出站
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
# 允许已建立的连接
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 开放SSH(示例)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 保存规则(根据发行版)
sudo iptables-save > /etc/iptables/rules.v4
firewalld(推荐RHEL/CentOS)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --remove-service=http # 禁用不需要的服务
sudo firewall-cmd --reload
UFW(Ubuntu简化工具)
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw enable
SSH加固
sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config # 修改默认端口
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config # 强制密钥登录
sudo systemctl restart sshd
禁用无用服务
sudo systemctl stop telnet.socket rpcbind # 示例服务
sudo systemctl disable telnet.socket rpcbind
Fail2Ban(防暴力破解)
sudo apt install fail2ban # Debian/Ubuntu
sudo yum install fail2ban # RHEL/CentOS
/etc/fail2ban/jail.local
):
ini
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 1h
SELinux/AppArmor
bash
sudo setenforce 1 # 强制模式
sudo semanage port -a -t ssh_port_t -p tcp 2222 # 适配SSH端口修改
bash
sudo aa-enforce /etc/apparmor.d/*
网络隔离
日志分析
# 监控SSH登录尝试
sudo grep 'Failed password' /var/log/auth.log
入侵检测工具
bash
sudo aideinit && sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
sudo aide --check
内核参数加固(/etc/sysctl.conf)
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.tcp_syncookies=1
sudo sysctl -p
VPN/WireGuard
# WireGuard示例
sudo apt install wireguard
wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey
bash
0 3 * * * /usr/bin/aide --check | mail -s "AIDE Report" admin@example.com
通过以上综合措施,可显著提升Linux系统的网络安全性。实际部署时需根据业务需求调整策略。