Debian虚拟机防火墙配置技巧
导读:Debian虚拟机防火墙配置技巧 一、工具选择:优先使用UFW(简化配置) 对于大多数Debian用户,UFW(Uncomplicated Firewall) 是管理防火墙的首选工具,它基于iptables但提供了更简洁的命令行接口,适合新...
Debian虚拟机防火墙配置技巧
一、工具选择:优先使用UFW(简化配置)
对于大多数Debian用户,UFW(Uncomplicated Firewall) 是管理防火墙的首选工具,它基于iptables但提供了更简洁的命令行接口,适合新手快速上手。若需更底层的高级配置(如复杂规则、自定义链),再选择iptables。
二、UFW基础配置步骤
-
安装与启用
首先更新软件包列表并安装UFW:sudo apt update & & sudo apt install ufw
启用UFW(启用后会默认拒绝所有传入连接,允许所有传出连接):
sudo ufw enable
启用时系统会提示是否允许SSH连接(若通过SSH管理虚拟机,必须选择“是”,否则会导致断连)。
-
常用规则操作
- 允许端口:开放HTTP(80/tcp)、HTTPS(443/tcp)、SSH(22/tcp)等常用端口:
sudo ufw allow 80/tcp # 允许HTTP sudo ufw allow 443/tcp # 允许HTTPS sudo ufw allow 22/tcp # 允许SSH
- 允许特定IP访问:限制某IP(如公司IP 192.168.1.100)访问所有端口:
sudo ufw allow from 192.168.1.100
- 允许服务:通过服务名快速开放端口(如MySQL的3306端口):
sudo ufw allow mysql # 等同于允许3306/tcp
- 删除规则:通过规则编号(
sudo ufw status numbered
查看)或直接指定规则删除:sudo ufw delete 3 # 删除第3条规则 sudo ufw delete allow 80/tcp # 删除允许80/tcp的规则
- 查看状态:查看当前规则及状态(
verbose
模式显示详细信息):sudo ufw status # 简略状态 sudo ufw status verbose # 详细状态
- 允许端口:开放HTTP(80/tcp)、HTTPS(443/tcp)、SSH(22/tcp)等常用端口:
-
高级UFW配置
- 限制SSH登录速率:防止暴力破解,限制每分钟最多3次尝试:
sudo ufw limit 22/tcp
- 允许特定网络接口:仅允许eth2接口访问3306端口(如虚拟机绑定特定网卡):
sudo ufw allow in on eth2 to any port 3306
- 开启日志记录:记录被拒绝的连接,便于排查问题:
sudo ufw logging on
- 重置UFW:若配置错误,可通过重置恢复默认状态(会删除所有规则):
sudo ufw reset
- 限制SSH登录速率:防止暴力破解,限制每分钟最多3次尝试:
三、iptables高级配置(可选)
若需更灵活的规则(如端口转发、自定义链),可使用iptables,但需手动保存规则并设置开机加载:
-
安装与基本配置
安装iptables:sudo apt update & & sudo apt install iptables
配置默认策略(拒绝所有传入,允许所有传出):
sudo iptables -P INPUT DROP sudo iptables -P OUTPUT ACCEPT
允许已建立的连接(避免中断现有会话):
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
允许SSH(22/tcp)、HTTP(80/tcp)、HTTPS(443/tcp):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
拒绝其他所有入站连接(作为最后一条规则):
sudo iptables -A INPUT -j DROP
-
保存与自动加载规则
Debian默认不保存iptables规则,需手动保存:sudo sh -c "iptables-save > /etc/iptables/rules.v4"
创建开机加载脚本(
/etc/network/if-pre-up.d/iptables
):sudo tee /etc/network/if-pre-up.d/iptables < < EOF #!/bin/sh /sbin/iptables-restore < /etc/iptables/rules.v4 EOF sudo chmod +x /etc/network/if-pre-up.d/iptables
此时重启虚拟机后,iptables规则会自动加载。
四、关键安全技巧
-
默认策略设置
无论使用UFW还是iptables,都应遵循“默认拒绝,显式允许”原则:- UFW:
sudo ufw default deny incoming
(拒绝所有传入)、sudo ufw default allow outgoing
(允许所有传出); - iptables:
sudo iptables -P INPUT DROP
(拒绝所有传入)、sudo iptables -P OUTPUT ACCEPT
(允许所有传出)。
- UFW:
-
SSH安全配置
- 启用前先放行SSH端口(避免断连);
- 更改默认SSH端口(如2222):编辑
/etc/ssh/sshd_config
,修改Port 2222
,然后重启SSH; - 禁用root直接登录:
PermitRootLogin no
(需用普通用户+sudo); - 使用SSH密钥对替代密码登录(更安全)。
-
测试与验证
- 配置规则后,用
telnet
或nmap
测试端口是否开放(如nmap -p 80 your_vm_ip
); - 检查UFW状态(
sudo ufw status
)或iptables规则(sudo iptables -L -n -v
),确保无冲突规则; - 查看UFW日志(
/var/log/ufw.log
)或系统日志(journalctl -u ufw
),排查异常连接。
- 配置规则后,用
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian虚拟机防火墙配置技巧
本文地址: https://pptw.com/jishu/733729.html