Debian防火墙服务限制方法
在Debian系统中,服务限制主要通过ufw(Uncomplicated Firewall)或iptables工具实现,核心思路是默认拒绝所有入站流量,仅允许必要的服务端口通过,从而降低攻击面。以下是具体操作步骤:
Debian默认未安装ufw或iptables,需先通过以下命令安装:
# 安装ufw(推荐,简单易用)
sudo apt update && sudo apt install ufw -y
# 或安装iptables(底层工具,功能更灵活)
sudo apt update && sudo apt install iptables -y
ufw是Debian推荐的防火墙管理工具,通过“服务名称”或“端口”快速配置规则,适合新手使用。
# 启用ufw
sudo ufw enable
# 设置默认策略:拒绝所有入站连接,允许所有出站连接(安全基线)
sudo ufw default deny incoming
sudo ufw default allow outgoing
ufw内置了常见服务(如SSH、HTTP、HTTPS)的规则,可直接通过服务名允许:
# 允许SSH服务(默认端口22/tcp)
sudo ufw allow ssh
# 允许HTTP服务(端口80/tcp)
sudo ufw allow http
# 允许HTTPS服务(端口443/tcp)
sudo ufw allow https
若需禁用某项服务(如FTP,默认端口21/tcp),直接拒绝对应端口:
# 拒绝FTP服务(端口21/tcp)
sudo ufw deny ftp
# 或通过端口直接拒绝(如禁用8080/tcp端口)
sudo ufw deny 8080/tcp
可通过“源IP”限制仅特定设备访问服务,提升安全性:
# 仅允许192.168.1.100访问SSH服务(端口22/tcp)
sudo ufw allow from 192.168.1.100 to any port 22
# 查看当前ufw状态及规则(详细模式)
sudo ufw status verbose
# 删除某条规则(如删除允许SSH的规则)
sudo ufw delete allow ssh
# 重新加载规则(修改后生效)
sudo ufw reload
iptables是Linux内核防火墙工具,适合需要精细控制的场景,但配置较复杂。
# 清空现有规则
sudo iptables -F
# 设置默认策略:拒绝所有入站、转发流量,允许所有出站流量
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
# 允许本地回环接口(系统内部通信)
sudo iptables -A INPUT -i lo -j ACCEPT
# 允许已建立的连接(避免中断现有会话)
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允许SSH服务(端口22/tcp)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许HTTP服务(端口80/tcp)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 允许HTTPS服务(端口443/tcp)
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 拒绝FTP服务(端口21/tcp)
sudo iptables -A INPUT -p tcp --dport 21 -j DROP
Debian默认不自动保存iptables规则,需手动保存:
# 保存规则到文件
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
# 系统启动时自动加载规则(需创建启动脚本)
sudo nano /etc/network/if-pre-up.d/iptables
# 添加以下内容:
#!/bin/sh
iptables-restore < /etc/iptables/rules.v4
# 保存后赋予执行权限
sudo chmod +x /etc/network/if-pre-up.d/iptables
logging on命令)。通过以上方法,可有效限制Debian系统中服务的访问范围,提升系统安全性。需根据实际业务需求调整规则,避免过度限制导致服务不可用。