系统安全及应用 --系统引导、登录控制、弱口令检测、端口扫描

前言

在互联网环境中,大部分服务器是通过远程登录的方式来进行管理的,而本地引导和终端控制登录过程往往容易被忽视,从而留下安全隐患,特别是当服务器所在的机房环境缺乏严格、安全的管控制度时,如果防止其他用户的非授权介入,就成为必须重视的问题。

一、系统引导和登录控制

1.限制更改GRUB引导参数

  • 通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。
  • 为了加强对引导过程的安全控制,可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。
grub2-mkpasswd-pbkdf2                          #根据提示设置GRUB 菜单的密码 PBKDF2 hash of your password is grub.pbkdf2……  #省略部分内容为经过加密生成的密码字符串  vim /etc/grub.d/00_header #按G"跳转至最后一行,添加以下内容: cat << EOF set superusers="root" #设置用户名为root password pbkdf2 root grub.pbkdf2……		      #设置密码,省略部分内容为经过加密生成的密码字符串 EOF  grub2-mkconfig -o /boot/grub2/grub.cfg	      #生成新的 grub.cfg 文件 reboot                                        #重启,测试 
系统安全及应用 --系统引导、登录控制、弱口令检测、端口扫描 系统安全及应用 --系统引导、登录控制、弱口令检测、端口扫描 系统安全及应用 --系统引导、登录控制、弱口令检测、端口扫描 系统安全及应用 --系统引导、登录控制、弱口令检测、端口扫描 系统安全及应用 --系统引导、登录控制、弱口令检测、端口扫描

2、禁止root用户登录

  • 在 Linux 系统中,login 程序会读取 /etc/securetty 文件,以决定允许 root 用户从哪些终端(安全终端)登录系统
  • 若要禁止 root 用户从指定终端登录,可以修改 /etc/securetty 文件
vim /etc/securetty 
系统安全及应用 --系统引导、登录控制、弱口令检测、端口扫描

3、禁止普通用户登录

  • 当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统,这时候,只需要简单的建立 /etc/nologin 文件即可
  • login 程序会检查 /etc/nologin 文件是否存在,如果存在则拒绝普通用户登录系统
  • root 用户不受此限制
touch /etc/nologin			#创建/etc/nologin文件即禁止普通用户登录 #以上方法实际上是利用了 shutdown 延迟关机的限制机制,只建议在服务器维护期间临时使用 rm -rf /etc/nologin			#删除该文件即取消登录限制,恢复正常 

二、弱口令检测与端口扫描

1.弱口令检测——John the Ripper

  • 在 Internet 环境中,过于简单的口令是服务器面临的最大风险,尽管大家都知道,设置一个更长、更复杂的口令会更加安全,但总是会有一些用户因贪图方便而采用简单、易记的口令字串,对于任何一个承担着安全责任的管理员,及时找出这些弱口令账户,是非常必要的,这样便于采取进一步的安全措施(如提醒账号重设更安全的口令)

  • John the Ripper 是一款开源的密码破解工具,能够在已知密文的情况下快速分析
    出明文的密码字串,支持 DES,MD5 等多种加密算法,而且允许使用密码字典(包含各种密码组合的列表文件)来进行暴力破解

  • 通过使用 John the Ripper,可以检测
    Linux/UNIX 系统用户的密码强度

cd /opt #解压工具包 tar. zxvf john-1.8.0.tar.gz			#安装软件编译工具 yum install -y gcc gcc-c++ make		 #切换到src子目录 cd /opt/john-1.8.0/src				#进行编译安装 make clean linux-x86-64               #准备待破解的密码文件 cp /etc/shadow /opt/shadow.txt        #执行暴力破解 cd /opt/john-1.8.0/run ./john /opt/shadow.txt                #查看已破解出的账户列表 ./john --show /opt/shadow.txt          #使用密码字典文件 > john. pot                            #清空已破解出的账户列表,以便重新分析 ./john --wordlist=./password.1st /opt/shadow.txt  #使用指定的字典文件进行破解 

2、网络端口扫描——NMAP

  • NMAP 是一个强大端口扫描类安全评测工具,NAMP 被设计为检测主机数量众多的巨大网络,支持 ping 扫描、多端口检测、OS 识别等多种技术
  • 使用 NAMP 定期扫描内部网络,可以找出网络中不可控的应用服务,及时关闭不安全的服务,减小安全风险

控制位
rpm -qa|grep nmap #查看nmap yum install -y nmap #安装nmap

②扫描语法及类型

  • NAMP 的扫描程序位于 /usr/bin/nmap 目录下,使用时基本命令格式如下所示
nmap [扫描类型] [选项] <扫描目标...> 
  • 其中扫描目标可以是主机名、IP 地址或网络地址等,多个目标以空格分割
  • 常用选项有“-p”、“-n”,分别用来指定扫描的端口、禁用反向 DNS 解析(以加快扫描速度)
  • 扫描类型决定检测的方式,也影响扫描的结果
  • 比较常见的几种扫描类型如下:
常用选项 对应扫描类型
-sS SYN 扫描(半开扫描):只向目标发出 SYN 数据包,如果收到 SYN/ACK 响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放
-sT TCP 连接扫描:这是完整的 TCP 扫描方式(默认扫描类型),用来建立一个 TCP 连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放
-sF TCP 的 FIN 扫描:开放的端口会忽略这种数据包,关闭的端口会回应 RST 数据包;许多防火墙只对 SYN 数据包进行简单过滤,而忽略了其他形式的 TCP 攻击包;这种类型的扫描可间接检测防火墙的健壮性
-sU UDP 服务,UDP 扫描的速度会比较慢
-sP ICMP 扫描:类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描
-P0 跳过 ping 检测:这种方式认为所有的目标主机是存活的,当对方不响应 ICMP 请求时,可以使用这种方式,避免因无法 ping 通而放弃扫描

示例:

#分别查看本机开放的TCP端口、UDP端口 nmap -sT 127.0.0.1 nmap -sU 127.0.0.1  #检测192.168.80.0/24网段有哪些主机提供HTTP服务 nmap -p 80 192.168.80.0/24  #检测192.168.80.0/24网段有哪些存活主机 nmap -n -sP 192.168.80.0/24   

总结

NMAP 提供的扫描类型、选项还有很多很多,适用于不同扫描的需求,更多用法大家可以自行去探索,这里就不一 一展示了,记得双击么么哒