一、Nmap介绍
Nmap(NetworkMapper)是一款开放源代码的网络探测和安全审核工具。它用于快速扫描一个网络和一台主机开放的端口,还能使用TCP/IP协议栈特征探测远程主机的操作系统类型。nmap支持很多扫描技术,例如:UDP、TCPconnect()、TCPSYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(XmasTree)、SYN扫描和null扫描。Nmap最初是用于Unix系统的命令行应用程序。
二、描述
既然nmap这个工具能探测到网络中的某一台主机开放的端口、用了什么协议等等,从而成为黑客攻击前踩点的工具,一旦得逞,后果将不堪设想。那么我们如何利用iptables来防止nmap这个工具的嗅探呢?有攻就必有防,Linux系统的iptables可以对封包起到一个过滤、限制的作用。
三、演练与实战
1、下面我在虚拟机使用nmap工具扫描测试Linux主机,在测试的Linux主机iptables不做任何防范的情况下先扫描看看,如下
从上图可看出,这台机器开启了22、80、443端口
2、现在开启iptables规则,进行防御看看效果
a、首先关闭Centos7自带的firewalld,安装iptables服务
[root@VM_0_15_centos ~]# systemctl disable firewalld.service && systemctl stop firewalld.service
[root@VM_0_15_centos ~]# yum install iptables-services iptables-devel -y
[root@VM_0_15_centos ~]# systemctl enable iptables
b、 配置iptables
[root@VM_0_15_centos ~]# vim /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Tue Jul 9 21:09:09 2019
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
-A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j REJECT
-A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j REJECT
-A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j REJECT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Tue Jul 9 21:09:09 2019
c、启动iptables
[root@VM_0_15_centos ~]# systemctl start iptables
d、同样用nmap -A 进行扫描一下,结果如下: