阻止托管服务器上的出站流量,尝试出站时收到警报

阻止托管服务器上的出站流量,尝试出站时收到警报

因此,我想阻止所有不需要的出站流量,特别是来自不必要的允许端口(TCP 和 UDP)的流量,并且如果有任何脚本或应用程序尝试联系出站端口,也会收到电子邮件警报。

例如,如果有人安装了 IRC 聊天脚本,则当守护进程尝试运行并连接配置的出站端口等时,应该阻止该脚本。

我想要一个脚本来获取所有出站流量的尝试并通过电子邮件发送,以便我可以看到完成的尝试。

允许的端口是通常的 80,993,25,3006 和其他正常托管相关的端口。

我该如何进行这样的设置?首先,我可以考虑使用 csf/apf 和/或 tcp_wrapper 和一些 iptables,然后使用 bash 脚本来完成收集/通过电子邮件发送尝试。有人可以在这方面指导我吗?

谢谢。

答案1

设置 iptables 以允许流量到您想要的端口,并记录和拒绝所有其他端口。

iptables --policy OUTPUT DROP
iptables --append INPUT --match state --state ESTABLISHED,RELATED --jump ACCEPT
iptables --append OUTPUT --match state --state ESTABLISHED,RELATED --jump ACCEPT
iptables --append OUTPUT --protocol udp --match multiport --dports domain,bootps --jump ACCEPT
iptables --append OUTPUT --protocol tcp --match multiport --dports domain,http,https,ssh,pop3s,imaps,submission --jump ACCEPT
iptables --append OUTPUT --jump LOG --log-prefix 'OUT-REJECT '
iptables --append OUTPUT --jump REJECT

然后在 cronjob 中编写一个脚本来解析拒绝数据包的日志并编写报告。这将列出被拒绝的目标端口以及尝试次数。

#!/bin/sh
grep OUT-REJECT /var/log/syslog | egrep -o 'DPT=[0-9]+' | sort | uniq -c

相关内容