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


一、系统引导和登录控制

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

1.开关机安全控制

  • 对于服务器主机,其物理环境的安全防护是非常重要的,不仅要保持机箱完好、机柜锁闭,还要严格控制机房的人员进出、硬件设备的现场接触等过程
  • 在开关机安全控制方面,除了要做好物理安全防护以外,还要做好系统本身的一些安全措施

1.1 调整 BIOS 引导设置

  1. 将第一引导设备(First Boot Device)设为当前系统所在硬盘
  2. 禁止从其他设备(如光盘、U盘、网络等)引导系统
  3. 将安全级别设为"setup",并设置管理员密码,以防止未授权的修改

1.2 限制更改 GRUB 引导参数

  • 前稳重,曾介绍过通过修改 GRUB 引导参数进入单用户模式,以便对一些系统问题进行修复
  • 这种方式不需要密码即可进入系统,而且拥有 root 权限,只应在紧急状况下授权使用
  • 从系统安全的角度来看,如果人和人都能修改 GRUB 引导参数,对服务器本身是一个威胁
    mark
  • 为了加强对引导过程的安全控制,可以为 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
#重启,测试

mark
mark
mark
mark
mark

2.终端及登录控制

  • 在 Linux 系统中,默认开启了 tty 终端,允许任何用户进行本地登录
  • 关于本地登录的安全控制,可以从以下几个方面着手

2.1 禁止 root 用户登录

  • 在 Linux 系统中,login 程序会读取 /etc/securetty 文件,以决定允许 root 用户从哪些终端(安全终端)登录系统
  • 若要禁止 root 用户从指定终端登录,可以修改 /etc/securetty 文件
vim /etc/securetty

mark

2.2 禁止普通用户登录

  • 当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统
  • 这时候,只需要简单的建立 /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 系统用户的密码强度

1.1 下载并且安装 John the Ripper

cd /opt
#Xshell 软件里直接将下载好的软件“拖”进来
tar zxvf john-1.9.0.tar.gz
#解压工具包

yum -y install gcc gcc-c++ make          
#安装软件编译相关工具 

cd /opt/john-1.9.0/src
make clean linux-x86-64                  
#切换到src子目录,执行编译过程

ls ../run/john
../run/john

#编译完成后,run 子目录下会生成一个名为 john 的可执行程序
#John the Ripper 不需要特别的操作,编译完成后的 run 子目录中包括可执行程序 john 及相关的配置文件、字典文件等,可以复制到任何位置使用

1.2 检测弱口令账号

  • 在安装有 John the Ripper 的服务器中,可以直接对/etc/shadow 文件进行检测
  • 对于其他 Linux 服务器,可以对 shadow 文件进行复制,并传递给 john 程序进行检测
  • 只需执行 run 目录下的 john 程序,将待检测的 shadow 文件作为命令行参数,就可以开始弱口令分析了
cp /etc/shadow /opt/shadow.txt           #准备待破解的密码文件
 
cd /opt/john-1.9.0/run                   
./john /opt/shadow.txt                   #切换到run子目录,执行暴力破解

./john --show /opt/shadow.txt            #查看已破解出的账户列表

mark

1.3 使用密码字典文件

  • 对于密码的暴力破解,字典文件的选择很关键
  • 理论上,只要字典文件足够完整,密码破解只是时间问题
  • 因此,关于“什么样的密码才足够强壮”取决于用户的承受能力,有人认为超过 72 小时仍无法破解的密码才算安全,也可能有人认为至少暴力分析一个月仍无法破解的密码足够安全
  • John the Ripper 默认提供的字典文件为 password.lst,其列出了 3000多个常见的弱口令
  • 如果有必要,用户可以在字典文件中添加更多的密码组合,也可以直接使用更加完整的其他字典文件
  • 执行 john 程序时,可以结合“–wordlist=”选项来指定字典文件的位置,以便对指定的密码文件进行暴力分析
  • 使用“:>john.pot”可以清空已经破解出的账户列表,以便重新分析
    mark

2.网络扫描——NMAP

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

1.安装 NMAP 软件包

yum install -y nmap

mark

2.扫描语法及类型

  • NAMP 的扫描程序位于 /usr/bin/nmap 目录下,使用时基本命令格式如下所示
nmap [扫描类型] [选项] <扫描目标...>
  • 其中扫描目标可以是主机名、IP 地址或网络地址等,多个目标以空格分割
  • 常用选项有“-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 通而放弃扫描

3.扫描操作示例

  1. 针对本机进行扫描,检查开放了哪些常用的 TCP 端口、UDP 端口
    mark
  2. 快速检测 192.168.126.0/24 网段中有哪些存活主机(能 ping 通)
    mark
  3. 检测 IP 地址位于 192.168.126.(0~200)的主机是否开启文件共享服务(指定扫描 139,445 端口)
    mark
  • NMAP 提供的扫描类型、选项还有很多很多,适用于不同扫描的需求
  • 更多用法大家可以自行去探索,这里就不一 一展示了,谢谢观看本文章

猜你喜欢

转载自blog.csdn.net/weixin_51486343/article/details/113606871