Linux查看机器开放的端口

来源:互联网 发布:百度只收录顶级域名 编辑:程序博客网 时间:2024/06/05 03:54
 
一、使用nmap扫描机器开放的端口
 
我用这个工具的目的是查看自己服务器RHEL5所开放的端口,发现没有必要的端口就关闭,并不是用来扫描别的机器的端口……善哉善哉……
nmap是个跨平台的工具,在Linux、Linux,FreeBSD,UNIX,Windows下都有可用的版本。
官方网站:[url]http://insecure.org/nmap/[/url]
主要功能:
1、测一组主机是否在线
2、扫描主机端口,嗅探所提供的网络服务
3、推断主机所用的操作系统
 
我用到的几个命令如下:
检查我所在网段有多少台“活着”的机器
[root@pps ~]# nmap -sP 192.168.32.0/24
Starting Nmap 4.11 ( [url]http://www.insecure.org/nmap/[/url] ) at 2009-03-10 13:31 CST
Host 192.168.32.1 appears to be up.
MAC Address: 00:50:56:C0:00:08 (VMWare)
Host hoho.com (192.168.32.50) appears to be up.
Host 192.168.32.254 appears to be up.
MAC Address: 00:50:56:E1:E2:F8 (VMWare)
Nmap finished: 256 IP addresses (3 hosts up) scanned in 5.476 seconds
我感觉这个结果不真实,因为我的虚拟机不止一个IP,有些IP并没有检测到。但是自己没有把握说明白原因,于是就不多说了。
 
检查我本身的机器开放了哪些端口
[root@pps ~]# nmap -sTU localhost
Starting Nmap 4.11 ( [url]http://www.insecure.org/nmap/[/url] ) at 2009-03-10 13:33 CST
Interesting ports . localhost.localdomain (127.0.0.1):
Not shown: 3156 closed ports
PORT     STATE         SERVICE
25/tcp   open          smtp
53/tcp   open          domain
80/tcp   open          http
111/tcp  open          rpcbind
631/tcp  open          ipp
953/tcp  open          rndc
3306/tcp open          mysql
53/udp   open|filtered domain
111/udp  open|filtered rpcbind
631/udp  open|filtered unknown
Nmap finished: 1 IP address (1 host up) scanned in 2.875 seconds
根据实际的需要,用防火墙来“屏蔽”对一些端口的访问,确保安全。

参数说明:
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
比较实用的还有以下三个:
SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:
nmap -sS 192.168.32.0/24
当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:
nmap -sT 192.168.32.0/24
UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:
nmap -sU 192.168.32.0/24
 
Windows下的NmapWin等使用可以参考:
[url]http://hi.baidu.com/xzqmr/blog/item/67226a8dfde32a13b31bbad3.html[/url]
 
二、使用netstat来看看系统的监听端口
 
# netstat -antp       //所有连接、数字显示主机、端口、TCP连接、监听的程序
# netstat -anup       //所有连接、数字显示主机、端口、UDP连接、监听的程序
# netstat -s          //统计所有(开机至今的)连接数据,包括tcp、udp等
# netstat -st         //统计所有tcp连接数据
# netstat -su         //统计所有udp连接数据
# netstat -su         //粗略统计连接数据
 
从netstat里可以看到自己机器正在监听的端口、相关程序以及当前的连接数、连接来自何方等数据,然后有针对性的进行关闭相关服务或者用防火墙来屏蔽、过滤对本机服务的访问。
 
-p参数是Linux特有的,如果没有使用-p参数,想知道哪个程序监听25端口,可以用:
lsof -i :port

来确定是哪个程序监听着port端口,比如我的RHEL5:
[root@pps ~]# lsof -i :25
COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME
sendmail 3316 root    4u  IPv4  11299       TCP *:smtp (LISTEN)

转载自:http://snailwarrior.blog.51cto.com/680306/137291