利用iptables防止nmap工具的嗅探(防端口扫描)

       NmapNetworkMapper)是一款开放源代码的网络探测和安全审核工具。它用于快速扫描一个网络和一台主机开放的端口,还能使用TCP/IP协议栈特征探测远程主机的操作系统类型。nmap支持很多扫描技术,例如:UDPTCPconnect()TCPSYN(半开扫描)ftp代理(bounce攻击)、反向标志、ICMPFINACK扫描、圣诞树(XmasTree)SYN扫描和null扫描。Nmap最初是用于Unix系统的命令行应用程序。在2000年的时候,这个应用程序有了Windows版本,可以直接安装使用。

       关于nmap的详细使用方法请猛戳链接:http://linux.51yip.com/search/nmap

      既然nmap这个工具能探测到网络中的某一台主机开放的端口、用了什么协议等等,从而成为黑客攻击前踩点的工具,一旦得逞,后果将不堪设想。那么我们如何利用iptables来防止nmap这个工具的嗅探呢?有攻就必有防,由前面的学习我们得知Linux系统的iptables可以对封包起到一个过滤、限制的作用。

      下面我在Windows系统使用nmap工具扫描办公室的Linux主机,在办公室的Linux主机iptables不做任何防范的情况下先扫描看看,如下图1

     

1 Linux主机不设任何防范

   由上图1可以看到,我办公室的Linux主机开放了22808080端口,TCPICMP协议也是接受的,并且不设任何防范措施,在Windows使用nmap工具扫描,使用命令:nmap -A 10.3.198.198直接扫描Linux主机,如下图2所示:

     

2 指定ip地址扫描

    可以看到,nmap工具只是用了一个“-A”参数进行扫描,整个Linux主机就相当于裸露在它的面前了。

    下面对Linux主机的iptables进行配置,在iptables中加入以下内容,如图3所示:

     

3 iptables中加入防nmap工具扫描的规则

    让iptables生效之后,在使用刚才的命令扫描一下,效果如下图4所示:

      

4 加入防nmap扫描的规则后效果图

    可以跟上图2对比一下,在加入防止nmap工具扫描的相关规则之后,再使用nmap工具对Linux主机进行扫描,关于Linux主机的一些关键信息就扫描不到了,比如开放的端口号、接受的协议、主机的操作系统信息等。这里防止nmap工具的扫描并不影响web服务器、远程连接等服务的正常工作。


### nmap端口扫描的技术细节 #### 端口扫描的目的 为了理解为什么需要关注特定的端口,可以回顾一下网络安全实践中的基本概念。端口扫描的主要目的是识别目标机器上开放的服务和应用程序接口。这不仅有助于攻击者寻找潜在的安全漏洞,也是合法渗透测试的重要组成部分[^2]。 #### 主流的nmap端口扫描方法 ##### TCP连接扫描 (`-sT`) 这是最基础也最常见的扫描方式之一。它通过建立完整的TCP三次握手来确认指定端口的状态。这种方法虽然简单有效,但由于其明显的特征容易被防火墙或入侵检测系统发现并记录。 ```bash nmap -sT target_ip_address ``` ##### SYN半开扫描 (`-sS`) SYN扫描是一种更隐蔽的方式,因为它只发送SYN包而不完成整个TCP连接过程。这种方式减少了被监测的可能性,因为没有实际的数据传输发生。然而,现代IDS仍然能够识别这种模式下的活动。 ```bash nmap -sS target_ip_address ``` ##### ACK扫描 (`-sA`) ACK扫描主要用于探测防火墙规则集。当向关闭的端口发送带有ACK标志位的数据包时,如果收到RST回复,则说明该端口处于过滤状态;反之则表示未受保护。 ```bash nmap -sA target_ip_address ``` ##### UDP扫描 (`-sU`) 不同于TCP协议,默认情况下许多服务不会回应UDP请求,因此这类扫描往往耗时较长且结果不够精确。不过对于某些依赖于UDP的应用程序而言仍然是必要的检查手段。 ```bash nmap -sU target_ip_address ``` ##### 版本检测 (`-sV`) 除了简单的端口状态查询外,版本检测还可以获取运行在各个端口背后的具体应用软件及其版本号等信息。这对于评估系统的脆弱程度非常有帮助。 ```bash nmap -sV target_ip_address ``` --- ### 御措施 针对上述提到的各种类型的端口扫描行为,可以从以下几个方面着手加强护: #### 使用防火墙与访问控制列表(ACL) 配置合适的iptables规则可以帮助阻止恶意流量进入内部网络环境。例如拒绝那些具有不正常TCP标志组合的数据包可以有效地减少来自外部威胁的风险[^4]。 ```bash iptables -t filter -I INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j REJECT iptables -t filter -I INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j REJECT iptables -t filter -I INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j REJECT iptables -t filter -I INPUT -p tcp --tcp-flags ALL SYN -j REJECT ``` #### 实施入侵检测/预系统(NIDS/IPDS) 部署专业的NIDS/NIPS解决方案可以在第一时间察觉可疑活动并向管理员发出警报。此类工具通常具备强大的数据分析能力和实时响应机制,能够在不影响业务连续性的前提下提供有效的安全保障[^3]. #### 应用层加固 确保所有对外提供的服务都经过充分验证,并及时更新补丁以修复已知缺陷。同时考虑采用最小权限原则仅开启必需的功能模块和服务端口,从而缩小暴露面降低风险水平。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值