Debian iptables如何防止SYN攻击

673
2025/2/20 3:31:46
栏目: 网络安全
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Debian系统中,使用iptables来防止SYN攻击是一种常见的做法。SYN攻击是一种拒绝服务(DoS)攻击,攻击者通过发送大量的SYN请求来耗尽服务器的资源,导致合法用户无法建立连接。以下是一些使用iptables防止SYN攻击的方法:

1. 启用SYN Cookies

SYN Cookies是一种防御SYN攻击的技术,它通过在服务器端不立即分配资源,而是在收到客户端的ACK确认后再分配资源。

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

为了使这个设置在系统重启后仍然有效,可以将其添加到/etc/sysctl.conf文件中:

net.ipv4.tcp_syncookies = 1

然后运行以下命令使设置生效:

sysctl -p

2. 限制SYN请求速率

可以使用iptables的limit模块来限制SYN请求的速率。

# 限制每秒最多10个SYN请求
iptables -A INPUT -p tcp --syn -m limit --limit 10/s -j ACCEPT

# 超过限制的SYN请求将被丢弃
iptables -A INPUT -p tcp --syn -j DROP

3. 使用conntrack模块

conntrack模块可以帮助跟踪连接状态,并在检测到异常时采取措施。

# 限制每个IP地址的SYN请求数量
iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW -m limit --limit 5/s -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP

4. 配置防火墙规则

可以配置更详细的防火墙规则来防止SYN攻击。

# 允许已建立的连接
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# 允许本地回环接口的流量
iptables -A INPUT -i lo -j ACCEPT

# 允许SSH连接(假设SSH端口是22)
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

# 丢弃所有其他输入流量
iptables -A INPUT -j DROP

5. 使用fail2ban

fail2ban是一个入侵防御软件框架,可以监控日志文件并根据配置的规则封禁恶意IP地址。

首先,安装fail2ban

sudo apt-get install fail2ban

然后,配置fail2ban来监控SSH登录失败日志并封禁恶意IP地址:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

jail.local文件中添加以下内容:

[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 600

保存并退出编辑器,然后启动fail2ban服务:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

通过以上方法,可以有效地使用iptables和fail2ban来防止SYN攻击,保护Debian系统的安全。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: debian安装casaos需要啥条件