阅读量:143
1. 选择合适的防火墙工具
Debian系统常用的防火墙工具包括iptables(底层包过滤工具,功能强大但配置复杂)和ufw(Uncomplicated Firewall,基于iptables的简化前端,适合新手)。两者均可有效阻止恶意攻击,推荐优先使用ufw(默认未安装,需手动安装)。
2. 基础配置:设置默认策略与开放必要端口
- 设置默认策略:拒绝所有传入连接,允许所有传出连接(减少未授权访问风险)。
- ufw示例:
sudo ufw default deny incoming(拒绝传入)、sudo ufw default allow outgoing(允许传出)。 - iptables示例:
sudo iptables -P INPUT DROP(拒绝传入)、sudo iptables -P OUTPUT ACCEPT(允许传出)。
- ufw示例:
- 开放必要端口:仅开放系统需要的服务端口(如HTTP 80、HTTPS 443、SSH 22),避免暴露多余端口。
- ufw示例:
sudo ufw allow 80/tcp(HTTP)、sudo ufw allow 443/tcp(HTTPS)、sudo ufw allow ssh(SSH,默认22端口)。 - iptables示例:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT(HTTP)、sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT(SSH)。
- ufw示例:
- 启用防火墙:
- ufw:
sudo ufw enable(启用后规则立即生效)。 - iptables:需保存规则并设置开机自启(见下文“3. 保存规则与开机自启”)。
- ufw:
3. 阻止恶意IP与端口扫描
- 手动阻止特定IP/网段:若发现恶意IP(如频繁发起攻击的地址),可手动添加规则拦截。
- ufw示例:
sudo ufw deny from 192.168.1.100(阻止单个IP)、sudo ufw deny from 192.168.1.0/24(阻止整个网段)。 - iptables示例:
sudo iptables -A INPUT -s 192.168.1.100 -j DROP(阻止单个IP)、sudo iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.150 -j DROP(阻止IP段)。
- ufw示例:
- 自动阻止暴力破解:使用SSHGuard工具(支持iptables/ufw),自动解析SSH日志中的暴力破解尝试,并封禁攻击IP(默认封禁时间30分钟)。
- 安装:
sudo apt install sshguard(默认集成ufw,无需额外配置)。 - 集成ufw:修改
/etc/ufw/before.rules,在*filter部分前添加-A ufw-before-input -j SSHGUARD(将SSH流量交给SSHGuard处理)。
- 安装:
4. 高级防护:防范DDoS与端口扫描
- DDoS攻击缓解:使用DDoS Deflate工具,自动检测并封禁大量异常连接的IP(如每秒超过10次SYN请求)。
- 安装与配置:下载脚本
wget https://github.com/jgmdev/ddos-deflate/archive/master.zip,解压后运行./install.sh,修改/usr/local/ddos/ddos.conf中的阈值(如NO_OF_CONNECTIONS=50)和封禁时间(如BAN_PERIOD=600秒)。
- 安装与配置:下载脚本
- 端口扫描检测:通过iptables的
--tcp-flags选项,拦截SYN扫描(常见端口扫描方式)。- 示例规则:
sudo iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -j DROP(丢弃仅带SYN标志的包,阻止扫描)。
- 示例规则:
5. 规则持久化与系统加固
- 保存iptables规则:Debian默认不保存iptables规则,需手动保存并设置开机自启。
- 保存规则:
sudo sh -c "iptables-save > /etc/iptables/rules.v4"(需安装iptables-persistent包:sudo apt install iptables-persistent,安装时选择“保存当前规则”)。 - 开机自启:创建启动脚本
sudo nano /etc/network/if-pre-up.d/iptables,添加#!/bin/sh\n/sbin/iptables-restore < /etc/iptables/rules.v4,赋予执行权限sudo chmod +x /etc/network/if-pre-up.d/iptables。
- 保存规则:
- 系统安全加固:
- 定期更新系统与软件:
sudo apt update && sudo apt upgrade -y(修补已知漏洞,减少攻击面)。 - 禁用root远程登录:修改
/etc/ssh/sshd_config中的PermitRootLogin no,重启SSH服务sudo systemctl restart ssh(避免root账户被暴力破解)。 - 使用强密码与SSH密钥:通过
passwd命令设置复杂密码(包含大小写、数字、特殊字符),并配置SSH密钥认证(~/.ssh/authorized_keys),禁用密码登录(PasswordAuthentication no)。
- 定期更新系统与软件:
注意事项
- 配置防火墙前,确保已开放SSH端口(或其他远程管理端口),避免误操作导致无法远程连接。
- 测试规则时,建议先在本地终端操作,确认无误后再应用到生产环境。
- 定期检查防火墙日志(
/var/log/syslog或/var/log/ufw.log),分析异常流量并及时调整规则。