不幸的是,我从未见过这样的脚本可以在学习模式或被动模式下运行,以记录您的所有网络使用情况,获取其结果并使用iptables
其日志生成实际的防火墙。
最好的选择是从简单开始,并在您完全了解系统提供的服务时不断添加各种内容。您将需要使用一些工具,例如netstat
查看所托管的各种服务正在使用哪些端口以及正在访问哪些IP地址。
$ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 26292/sendmail
tcp 0 0 0.0.0.0:890 0.0.0.0:* LISTEN 26149/ypbind
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 26321/smbd
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN 26226/python
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN 26221/./hpiod
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 26237/snmpd
tcp 0 0 0.0.0.0:809 0.0.0.0:* LISTEN 26067/rpc.statd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 26321/smbd
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 26292/sendmail
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 26038/portmap
tcp 0 0 0.0.0.0:35604 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 26249/sshd
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 26257/cupsd
tcp 0 0 :::22 :::* LISTEN 26249/sshd
tcp 0 0 :::631 :::* LISTEN 26257/cupsd
注意:在上面,您可以看到我在服务器上运行的哪些服务正在接受TCP连接,即它们正在“侦听”各个端口上的连接。
如果像SSH(端口22)和HTTP(端口80)之类的东西对于您的系统来说是典型的,那将是很轻松的事情,因此,我将一次大量地进行这些类型的服务。对于LDAP或NIS之类的其他服务,您可能希望以更可控的方式进行操作,并确保在引入它们时不会中断。
工具如FireHOL,防火墙生成器(Fwbuilder的),并且eztables你攻击这个项目,因为它们提供了一个抽象层很好不必构建自定义可能是有帮助iptable
的手规则,这可能会非常棘手。
火热
FireHOL是一种语言(以及用于运行它的程序),它可以构建安全,有状态的防火墙,从易于理解的,易于理解的配置中解决任何复杂问题。
例
transparent_squid 8080 "squid root" inface eth0
interface eth0 mylan
policy accept
interface ppp+ internet
server smtp accept
server http accept
server ftp accept
server ssh accept src example.firehol.org
client all accept
router mylan2internet inface eth0 outface ppp+
masquerade
route all accept
fwbuilder
Fwbuilder是一个独特的图形防火墙工具,允许用户创建对象,然后将这些对象拖放到防火墙中,从而为单个PC或PC网络构建功能强大的安全系统。Fwbuilder支持多种防火墙(Cisco ASA / PIX,Linux iptables,FreeBSD的ipfilter,OpenBSD的pf等),因此其规则可以部署在多个平台上。让我们看一下在Linux上使用Fwbuilder的情况,它可能会成为功能强大的安全系统的一生。
例
易位
Eztables允许您快速配置防火墙,而无需接触iptables。防火墙规则语法的设计易于阅读和应用。
这是您允许整个Internet在TCP端口80上访问您的Web服务器的方式:
allow_in any $eth0 any 80/tcp
Eztables的设计既简单又强大。是否要保护笔记本电脑,设置家庭路由器或建立公司防火墙都没有关系。
使用Fail2Ban
有了基本iptables
防火墙,您可能会希望使用Fail2Ban之类的工具来补充它。
摘抄
Fail2ban扫描日志文件(例如/ var / log / apache / error_log),并禁止显示恶意迹象的IP-过多的密码错误,寻找漏洞利用等。通常,Fail2Ban然后用于更新防火墙规则以拒绝IP地址在指定的时间内,尽管也可以配置任何其他任意操作(例如,发送电子邮件)。开箱即用Fail2Ban带有针对各种服务(apache,courier,ssh等)的过滤器。
使用诸如此类的工具将有助于限制系统在继续加强时必须承受的风险。即使您完全确信系统已得到加强,您仍可能希望继续使用Fail2Ban作为安全措施的一部分。
参考文献