我正在尝试配置psad
以阻止端口扫描和其他攻击。
目前,我为防火墙设置了以下规则,该规则会丢弃除端口 22、80、443 和 3306 之外的所有传入连接。
-A INPUT -j DROP
-A FORWARD -j DROP
我想使用“psad”。“psad”提到的主要要求是“与 psad 兼容的 iptables 策略只是 iptables 记录数据包”
iptables -A INPUT -j LOG
iptables -A FORWARD -j LOG
那么我该如何配置我的防火墙规则?
我应该先记录它们然后删除它们吗?
-A INPUT -j LOG -A FORWARD -j LOG -A INPUT -j DROP -A FORWARD -j DROP
我是不是根本不应该使用 drop?我对不使用 drop 有点怀疑。
答案1
来自iptables
手册页:
LOG
Turn on kernel logging of matching packets. When this option is set
for a rule, the Linux kernel will print some information on all match-
ing packets (like most IP header fields) via the kernel log (where it
can be read with dmesg or syslogd(8)). This is a "non-terminating tar-
get", i.e. rule traversal continues at the next rule. So if you want
to LOG the packets you refuse, use two separate rules with the same
matching criteria, first using target LOG then DROP (or REJECT).
“非终止”是这里的关键术语。您可以将LOG
目标放置在任何您喜欢的位置,但要明白,任何在LOG
条目之前“终止”的目标都不会被记录。
答案2
您需要智能地构建防火墙规则。PSAD 的工作原理是监控系统的连接日志,然后根据各种启发式方法判断是否有人在扫描您的系统。
LOG 目标是非终止的,因此一旦数据包被记录,它就会被传回原始链进行进一步处理
大致来说,你需要:
- 允许连接到 22、80、443 和 3306没有记录。
- 将其余所有内容发送至 LOG 目标。
- 最后应该有一个默认删除规则和/或策略应该是删除。