3.2 终端登录安全控制
3.2.1 限制root只在安全终端登录
安全终端配置:/etc/securetty
示例:
将终端tty5、tty6注释掉,禁止root用户从这两个终端登录。
[root@localhost ~]# vi /etc/securetty //编辑配置文件,将终端tty5、tty6注释掉 ---------------------- #tty5 #tty6 复制代码
网络异常,图片无法展示
|
3.2.2 禁止普通用户登录
- 建立/etc/nologin文件
- 删除nologin文件或者重启后即恢复正常
[root@localhost ~]# touch /etc/nologin //禁止普通用户登录 [root@localhost ~]# rm -rf /etc/nologin //取消普通用户登录限制 复制代码
网络异常,图片无法展示
|
网络异常,图片无法展示
|
4 网络端口扫描——nmap工具
4.1 nmap工具
- 一款强大的网络端口扫描、安全、检测工具
- 官方网站:Nmap: the Network Mapper - Free Security Scanner
- CentOS 7.3光盘中安装包 nmap-6.40-7.el7.x86_64.rpm
网络异常,图片无法展示
|
网络端口扫描:
控制位 | 描述 |
SYN | 建立链接 |
ACK | 确认 |
FIN | 结束断开 |
PSH | 传送 0 数据缓存,上层应用协议 |
RST | 重置 |
URG | 紧急 |
服务和端口号:
服务 | 端口号 |
HTTP | 80 |
HTTPS | 443 |
Telnet | 23 |
FTP | 21 |
SSH(安全登录)、SCP(文件传输)、端口重定向 | 22 |
SMTP | 25 |
POP3 | 110 |
WebLogic | 7001 |
TOMCAT | 8080 |
WIN2003远程登录 | 3389 |
Oracle数据库 | 1521 |
MS SQL* SEVER数据库sever | 1433 |
MySQL 数据库sever | 3306 |
安装nmap:
[root@localhost ~]# rpm -qa|grep nmap //查看nmap [root@localhost ~]# yum install -y nmap //安装nmap 复制代码
nmap命令常用格式
nmap [扫描类型] [选项] <扫描目标> 复制代码
常用选项和扫描类型
扫描类型和选项 | 作用 |
-p | 指定扫描的端口。 |
-n | 禁用反向DNS解析(以加快扫描速度) |
-sS | TCP的SYN扫描 (半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。 |
-sT | TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。 |
-sF | TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对sYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性。 |
-sU | UDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。 |
-sP | ICMP 扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。 |
-P0 | 跳过ping检测, 这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描。 |
用于主机发现的一些用法
- -sL:List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。
- -sn:Ping Scan 只进行主机发现,不进行端口扫描。
- -Pn:将所有指定的主机视作开启的,跳过主机发现的过程。
- -PS/PA/PU/PY[portlist]:使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。
- -PE/PP/PM: 使用ICMP echo, timestamp, and netmask 请求包发现主机。
- -PO[protocollist]:使用IP协议包探测对方主机是否开启。
- -n/-R:-n表示不进行DNS解析;-R表示总是进行DNS解析。
- --dns-servers <serv1[,serv2],...>:指定DNS服务器。
- --system-dns:指定使用系统的DNS服务器。
- --traceroute::追踪每个路由节点。
Nmap用于端口扫描的一些用法
- -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。
- -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。
- -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。
- --scanflags < flags>: 定制TCP包的flags。
- -sI < zombiehost[:probeport]>:指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)
- -sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。
- -sO: 使用IP protocol 扫描确定目标机支持的协议类型。
- -b < FTP relay host>: 使用FTP bounce scan扫描方式。
示例:
# 分别查看本机开放的TCP端口、UDP端口 [root@localhost ~]# nmap -sT 127.0.0.1 [root@localhost ~]# nmap -sU 127.0.0.1 # 检测192.168.80.0/24网段有哪些主机提供HTTP服务 [root@localhost ~]# nmap -p 80 192.168.80.0/24 [root@localhost ~]# nmap -p 80 192.168.91.100/24 # 检测192.168.80.0/24网段有哪些存活主机 [root@localhost ~]# nmap -n -sP 192.168.80.0/24 复制代码
4.2 netstat命令
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。
命令格式:
netstat [选项] 复制代码
常用选项
选项 | 作用 |
-a | 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。 |
-n | 拒绝显示别名,以数字的形式显示相关的主机地址、端口等信息。 |
-t | 查看TCP协议相关的信息。 |
-u | 显示UDP协议相关的信息。 |
-p | 显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限) |
-r | 显示路由表信息。 |
-l | 显示处于监听状态(Listen)的网络连接及端口信息。 |
常用搭配:
netstat -a //列出所有端口 netstat -at //列出所有TCP端口 netstat -au //列出所有UDP端口 netstat -ax //列出所有unix端口 netstat -lt //列出处于监听状态的TCP端口 netstat -tnlp //直接使用ip地址列出所有处于监听状态的TCP端口,且加上程序名 复制代码
示例:
1)netstat -lt,列出处于监听状态的TCP端口。
[root@localhost ~]# netstat -lt //列出处于监听状态的TCP端口 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN tcp 0 0 localhost.locald:domain 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:shell 0.0.0.0:* LISTEN tcp6 0 0 [::]:sunrpc [::]:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN tcp6 0 0 localhost:smtp [::]:* LISTEN tcp6 0 0 [::]:shell [::]:* LISTEN 复制代码
网络异常,图片无法展示
|
2)netstat -tnlp,直接使用ip地址列出所有处于监听状态的TCP端口,且加上程序名。
[root@localhost ~]# netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1462/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1113/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1111/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1394/master tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 798/rsyslogd tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::22 :::* LISTEN 1113/sshd tcp6 0 0 ::1:631 :::* LISTEN 1111/cupsd tcp6 0 0 ::1:25 :::* LISTEN 1394/master tcp6 0 0 :::514 :::* LISTEN 798/rsyslogd