检测开放端口
检测本地服务
netstat 实用程序显示关于本地系统上开放端口的信息。
# netstat -tulnp
每一行输出显示正在 LISTEN 或属于 ESTABLISHED 连接一部分的进程( PID 和程序名) 0.0.0.0 或::本地地址表示进程正在侦听所有接口。
netstat 选项:
-t – tcp 协议或开放 TCP 端口
-u – udp 协议或开放 UDP 端口
-l – 仅侦听端口,而非活动、已建立的连接
-n – 按编号而非名称显示主机和端口
-p – 显示控制端口的本地进程
检测远程服务
nmap 实用程序是一个端口扫描器,可探测远程系统并显示关于哪些端口处于开放状态的信息。这可帮助您确定是否有意外服务正在运行或您管理的系统上是否有可用端口。
# nmap -A -sT server1 1
nmap 选项:
-sP – 执行 ping 扫描,以确定响应 ICMP ping 请求的主机
-sT – 执行 TCP 连接扫描
-sU – 执行 UDP 扫描(可能需要很长时间)
-p – 限制到特定端口,这对于 UDP 扫描尤其有用
-A – 启用 OS 检测和版本检测、脚本扫描和跟踪路由
-v – 详细(使用多个 -v 使其更加详细)
Avahi 服务
Avahi 服务被简单地介绍为许多组织希望禁用的“典型”网络服务
Avahi 可实施 Zeroconf (零配置网络)服务。 Zeroconf 允许位于同一广播域中的计算机进行通信和发现彼此的服务,而无需静态联网、 DHCP 或其他明确配置。
avahi-daemon 必须在使用 Avahi 的系统上运行,以声明或发现本地链接服务。否则, avahi-daemon 不 应处于运行状态。
检测本地 Avahi 服务正在侦听哪些端口:
# netstat -tulnp |grep avahi
使用 nmap 扫描 Avahi 服务侦听的端口:
# nmap -sU -p 5353,52547 192.168.0.11
永久禁用 Avahi 服务。
# /etc/init.d/avahi-daemon stop
Shutting down Avahi daemon: [OK]
# chkconfig avahi-daemon off
重新扫描 avahi-daemon 端口,确认不可用
捕获和分析网络通信
网络嗅探器是允许用户捕获网络通信的工具,可以简化诊断和调试网络问题。 Red Hat Enterprise Linux 包括两个网络嗅探器,一个是简单有强大的 tcpdump (只捕获封包),另一个是 Wireshark 实用程序(可捕获并解析网络通信,以进行更深入的分析)。
通过 tcpdump 捕获封包
列出所有可用捕获接口:
# tcpdump -D
捕获所有 SSH 网络通信:
# tcpdump -nn -l -s 2000 -w packets -i eth0 'port 22'
1. -nn = 显示为数值的所有内容(包括端口和协议)
2. -l = 对文件执行行缓冲
3. -s snap_len = 要输出的每个封包的最大字节数
4. -w filename = 要写入输出的文件
5. -i interface = 要捕获的接口
6. filter = 用于过滤封包的关键字和逻辑运算符(如‘ host desktopX.example.com and port 25’ )
通过 wireshark 分析网络封包
启动 httpd 服务
# service httpd start
确定端口 80 的状态:
# netstat -tulnp |grep ':80'
扫描特定端口 80 :
# nmap -sT 192.168.0.11
使用 tcpdump 捕获 HTTP 封包:
# tcpdump -nn -l -s 2048 -w /mnt/file -i eth0 'port 80' &
打开浏览器访问 http 服务:
# firefox http://serverX.example.com &
停止 tcpdump :
# killall tcpdump
安装 wireshark-gnome 软件包,并分析 tcpdump 捕获文件:
# yum install -y wireshark-gnome