linux系统之端口限制
上篇文章介绍了linux系统端口号的相关内容,这次聊聊「端口限制」的事。
经常看到关于安全的书籍上会说「不要开放多余的端口」,那么,如何限制端口才好呢?
实际,端口限制的方法大体上分的话有2种。
其一,「通过应用程序来处理」。试着一下考虑「打开端口」本来是怎么一回事。比如,启动apache之类的Web服务程序的时候,(如果没有特别的设置)会打开Well known ports中的80号端口,然后通过80号端口开始等待通信。
所以,如果关闭了服务端应用程序的话,端口也会自动被关闭。「不要开放多余的端口」也就是「不要启动多余的应用程序」。
其二,「限制通信」。代表性的方法就是「过滤数据包」。通过「过滤数据包」,可以实现关闭特定端口的通信,特定IP的通信。
Linux中的「iptables」命令就可以过滤数据包。通过iptables命令,可以详细的指定拦截何种通信,所以可以实现「拦截某个主机的特定端口」。
调查「哪个端口是打开的」?可以使用「netstat」,「lsof」,「nmap」等命令。这里不再介绍这些命令的详细信息,简单来说:
通过「netstat」和「lsof」可以知道「本机上打开了哪些端口?」
通过「nmap」可以知道「其他主机上打开了哪些端口?」
过滤数据包时,需要注意通过netstat和lsof命令来看,有时端口是空闲的。