debian

debian防火墙自动化脚本

小樊
49
2025-04-14 07:34:08
栏目: 智能运维

在Debian系统上,你可以使用iptablesnftables来配置防火墙规则。以下是一个简单的示例脚本,用于设置基本的防火墙规则,允许SSH访问,并拒绝所有其他入站连接。

使用 iptables 的示例脚本

#!/bin/bash

# 清除现有规则
iptables -F
iptables -X

# 设置默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

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

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

# 允许SSH访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 允许HTTP和HTTPS访问
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 记录所有被拒绝的连接
iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4

# 保存规则
iptables-save > /etc/iptables/rules.v4

echo "防火墙规则已设置完成。"

使用 nftables 的示例脚本

#!/bin/bash

# 清除现有规则
nft flush ruleset

# 设置默认策略
nft add rule ip filter input drop
nft add rule ip filter forward drop
nft add rule ip filter output accept

# 允许本地回环接口的流量
nft add rule ip filter input iif lo accept

# 允许已建立的连接
nft add rule ip filter input ct state established,related accept

# 允许SSH访问
nft add rule ip filter input tcp dport 22 accept

# 允许HTTP和HTTPS访问
nft add rule ip filter input tcp dport 80 accept
nft add rule ip filter input tcp dport 443 accept

# 记录所有被拒绝的连接
nft add rule ip filter input log prefix "nftables-Dropped: " level info

# 保存规则
nft list ruleset > /etc/nftables.conf

echo "防火墙规则已设置完成。"

使用说明

  1. 将上述脚本保存为一个文件,例如 setup_firewall.sh
  2. 赋予脚本执行权限:
    chmod +x setup_firewall.sh
    
  3. 运行脚本:
    sudo ./setup_firewall.sh
    

注意事项

通过这些脚本,你可以自动化地设置Debian系统的防火墙规则,确保系统的安全性。

0
看了该问题的人还看了