记录一次ufw防火墙简单使用
摘要:渗透过程经常遇到靶机被限制访问外网,遂研究如何实现。
靶机限制外网
靶机需要进行ssh远程管理以及对外提供https服务,并且需要禁止靶机主动访问外网。
对应的ufw命令如下:
# 放行所有目的端口为443的入站连接
ufw allow 443/tcp
# 放行所有目的端口为22的入站连接
ufw allow 22/tcp
# 默认拒绝所有出站连接
ufw default deny outgoing
设置完成后,使用 ufw status verbose
查看ufw配置信息。正常情况情况下应该如下:
root@debian:~# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
443/tcp ALLOW IN Anywhere
22/tcp ALLOW IN Anywhere
443/tcp (v6) ALLOW IN Anywhere (v6)
22/tcp (v6) ALLOW IN Anywhere (v6)
ufw简单使用
ufw实际上就是为了简化配置,对iptables的封装,本质上还是iptables。在/etc/ufw/user.rules
文件中可以看到ufw实际上会将输入的ufw命令转换成对应的iptales命令。
# 启动ufw并设置为开机启动
ufw enable
# 停止ufw并禁止开机启动
ufw disable
# 重启ufw
ufw reload
# 查看ufw中规则列表
ufw status verbose
# 查看ufw中规则列表,并且显示规则的ID
ufw status numbered
# 根据规则ID删除对应的规则
ufw delete 121
# 删除ufw所有用户定义规则,恢复出厂设置
ufw reset
# 在入站规则列表末尾添加一条允许xxxx.xxxx.xxxx.0/24 ip段访问本机的22端口的入站规则
ufw allow from xxxx.xxxx.xxxx.0/24 to any port 22
# 在出站规则列表末尾添加一条允许本机访问192.168.1.9的443端口的出站规则
ufw allow out proto tcp to 192.168.1.9 port 443
# 在出站规则列表末尾添加一条禁止本机访问192.168.1.9的443端口的出站规则
ufw deny out proto tcp to 192.168.1.9 port 443
# 在出站规则列表中的第三项前插入一条禁止本机访问192.168.1.9的443端口的出站规则
ufw insert 3 deny out proto tcp to 192.168.1.9 port 443
# 放行所有目的端口为443的入站连接
ufw allow 443/tcp
# 放行所有目的端口为22的入站连接
ufw allow 22/tcp
# 默认拒绝所有出站连接
ufw default deny outgoing
# 默认允许所有出站连接
ufw default allow outgoing
下面是一些iptables规则:
# 在INPUT链的filter表里面追加一条规则:允许来自192.168.1.5的数据包入站
iptables -A INPUT -s 192.168.1.5 -j ACCEPT
# 在OUTPUT链的filter表里面追加一条规则:允许目的地址为192.168.1.5的数据包出站
iptables -A OUTPUT -d 192.168.1.5 -j ACCEPT
# 设置OUTPUT链上的filter表的默认规则设置为 DROP
# 等同于ufw中的 ufw default deny outgoing
iptables -t filter -P OUTPUT DROP
# 设置OUTPUT链上的filter表的默认规则设置为 ACCEPT
# 等同于ufw中的 ufw default allow outgoing
iptables -t filter -P OUTPUT ACCEPT
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。