使用UFW(Uncomplicated Firewall)阻止恶意IP
UFW是Ubuntu默认的防火墙管理工具,基于iptables封装,提供更简单的命令行界面,适合大多数用户快速配置。以下是具体步骤:
若系统未预装UFW,可通过以下命令安装:
sudo apt update && sudo apt install ufw
安装完成后,启用UFW(默认禁用):
sudo ufw enable
系统会提示确认,输入y并按回车键即可。
为提升安全性,建议将默认策略设置为拒绝所有入站流量、允许所有出站流量(避免未明确允许的连接进入系统):
sudo ufw default deny incoming
sudo ufw default allow outgoing
使用deny from命令阻止特定IP地址访问所有端口,例如阻止192.168.1.100:
sudo ufw deny from 192.168.1.100
若需封禁整个网段的恶意IP(如192.168.1.0/24),可使用CIDR表示法:
sudo ufw deny from 192.168.1.0/24
verbose模式显示详细信息):sudo ufw status verbose
sudo ufw status numbered
3的规则,执行:sudo ufw delete 3
UFW规则默认永久生效(系统重启后不会丢失),无需额外保存操作。
使用iptables(底层防火墙工具)阻止恶意IP
若需更细粒度的控制(如限制连接速率),可直接使用iptables(UFW底层依赖的工具)。以下是关键步骤:
Ubuntu系统通常预装iptables,若未安装,可通过以下命令安装:
sudo apt update && sudo apt install iptables
INPUT链添加DROP规则,拒绝来自该IP的所有流量,例如阻止192.168.1.100:sudo iptables -A INPUT -s 192.168.1.100 -j DROP
iprange模块指定网段,例如阻止192.168.1.0/24:sudo iptables -A INPUT -m iprange --src-range 192.168.1.0-192.168.1.255 -j DROP
iptables规则默认重启后丢失,需手动保存:
sudo iptables-save > /etc/iptables/rules.v4 # IPv4规则
sudo ip6tables-save > /etc/iptables/rules.v6 # IPv6规则(可选)
为确保系统启动时自动加载规则,可创建启动脚本(如/etc/network/if-pre-up.d/iptables),内容如下:
#!/bin/sh
iptables-restore < /etc/iptables/rules.v4
ip6tables-restore < /etc/iptables/rules.v6
赋予脚本执行权限:
sudo chmod +x /etc/network/if-pre-up.d/iptables
补充建议:结合fail2ban自动封禁
若需应对频繁的恶意IP攻击(如暴力破解),可使用fail2ban工具自动检测日志并封禁IP。安装与配置步骤如下:
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
jail.local,启用SSH防护并设置封禁参数:[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3 # 允许的最大失败次数
bantime = 600 # 封禁时间(秒)
findtime = 600 # 检测时间窗口(秒)
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
通过以上方法,可有效阻止恶意IP访问Ubuntu系统,提升服务器安全性。