我想用 ufw 和 fail2ban 来封杀端口扫描,设置好之后,fail2ban 显示有部分 IP 被封了,其实并没有。我把问题定位到 ufw,因为 fail2ban 确实封杀了想要破解 ssh 的 IP。
我的测试
ifconfig 结果:(可能有用?我隐藏了真实的 IP 地址)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:15111490 errors:0 dropped:0 overruns:0 frame:0
TX packets:15111490 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1089923226 (1.0 GB) TX bytes:1089923226 (1.0 GB)
venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:127.0.0.2 P-t-P:127.0.0.2 Bcast:0.0.0.0 Mask:255.255.255.255
inet6 addr: xxxxxxxxxxxxx/128 Scope:Global
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:325172 errors:0 dropped:0 overruns:0 frame:0
TX packets:720857 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:114732548 (114.7 MB) TX bytes:196756412 (196.7 MB)
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:xxxxxxxxxx P-t-P:xxxxxxxxxx Bcast:xxxxxxxxxx Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
阻止端口 8923
ufw deny 8923
ufw deny out 8923
跑步ufw status verbose
:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip
To Action From
-- ------ ----
8923 DENY IN Anywhere
8923 (v6) DENY IN Anywhere (v6)
8923 DENY OUT Anywhere
8923 (v6) DENY OUT Anywhere (v6)
跑步iptables -L
:
Chain INPUT (policy DROP)
target prot opt source destination
f2b-sshd tcp -- anywhere anywhere multiport dports 29240
ACCEPT tcp -- anywhere anywhere tcp dpt:29240
ufw-before-logging-input all -- anywhere anywhere
ufw-before-input all -- anywhere anywhere
ufw-after-input all -- anywhere anywhere
ufw-after-logging-input all -- anywhere anywhere
ufw-reject-input all -- anywhere anywhere
ufw-track-input all -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
ufw-before-logging-forward all -- anywhere anywhere
ufw-before-forward all -- anywhere anywhere
ufw-after-forward all -- anywhere anywhere
ufw-after-logging-forward all -- anywhere anywhere
ufw-reject-forward all -- anywhere anywhere
ufw-track-forward all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp spt:29240
ACCEPT tcp -- anywhere anywhere tcp spt:29240
ufw-before-logging-output all -- anywhere anywhere
ufw-before-output all -- anywhere anywhere
ufw-after-output all -- anywhere anywhere
ufw-after-logging-output all -- anywhere anywhere
ufw-reject-output all -- anywhere anywhere
ufw-track-output all -- anywhere anywhere
....
Chain ufw-user-input (1 references)
target prot opt source destination
DROP tcp -- anywhere anywhere tcp dpt:8923
DROP udp -- anywhere anywhere udp dpt:8923
Chain ufw-user-output (1 references)
target prot opt source destination
DROP tcp -- anywhere anywhere tcp dpt:8923
DROP udp -- anywhere anywhere udp dpt:8923
我在 8923 上运行一个网站,但curl myhost:8923
仍然可以获取index.html
。
我的 vps 是 openvz ubuntu 14.04,主机是 redhat kernel 2.6,我得到了这篇文章https://blog.kylemanna.com/linux/ufw-vps/
它说 2.6 openvz 可能存在一些问题(但我的机器没有收到警告消息 /lib/ufw/ufw-init force-reload
)。虽然我尝试了该配置,但都没有用。
答案1
首先,您应该知道 openvz 在 Ubuntu 中支持不佳。Ubuntu 使用 LXC(无论好坏)。如果您想使用 openvz,我强烈建议您使用 .rpm 系统,因为内核补丁是为 RHEL/Fedora 内核编写的,在 debian/ubuntu 内核上可能会出现问题,也可能不会出现问题。
在某种程度上,openvz 在 Debian/Ubuntu 主机上已被贬低。
其次你怎么知道 iptables 正在运行?
第三,如果 iptables 有效,我会使用 iptables 而不是 UFW。
如果您需要 UFW / iptables 方面的帮助,您需要发布您的所有规则以及阅读我的博客页面后可以提供给我的任何其他信息。
看http://blog.bodhizazen.com/linux/how-to-use-ufw-in-openvz-templates/
http://blog.bodhizazen.com/linux/proxmox-using-iptables-in-openvz-guests/
主机操作系统是什么?您在主机上具有 root 访问权限吗?
你运行的是哪个内核?哪个 openvz 补丁 -https://wiki.openvz.org/Download/kernel