在互联网环境中,大部分服务器是通过远程登录的方式来管理的,而本地引导和终端登录登录往往容易被忽视,从而留下安全隐患。 当服务器所在的机房环境缺乏严格、安全的管控制度时,如何防止其他用户的非授权介入,就成为重视的问题。
一、开关机安全控制
1.1 调整BIOS引导设置
第一优先引导设置(First Boot Device)设为当前系统所在磁盘。 禁止从其他设备(如光盘、U盘、网络等)引导系统,对应的项设为"Disable" 将BIOS的安全级别改为“setup”,并设置好管理密码,以防止未授权的修改。
1.2 限制更改GRUB参数
我们可以通过修改GRUB引导参数进入单用户模式,以便对一些问题进行修复。这种方式不需要密码即可以系统,而且拥有root权限,只应在紧急情况下授权使用。 从系统安全的角度来看,这种操作对服务器本身是一个极大的威胁,为了加强对引导进程的安全,可以为GRUB菜单设置一个密码,只有提供正确的密码才允许修改引导参数。 为GRUB菜单的密码建议采用“”
[root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak ##备份/boot/grub2/grub.cfg文件
[root@localhost ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak ##备份 /etc/grub.d/00_header文件
您在 /var/spool/mail/root 中有新邮件
[root@localhost ~]# grub2-mkpasswd-pbkdf2 ## 设置密码
输入口令:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.E95B023DE28491A5F5A34B18C5C6CE9F74695A15FB17F48E04630B04DCB8E9A21EE3322C02311DEF3049654B5F64DD7A455BDF707FD304F4DB6ABC51A0F12321.08CF42CC9225D539DB130989F5445BDE2995B3691CE5806F075CBB51AD3084BA5E9B7C04EFC9D5BEEA8782CCDAA3105FA45AD9F534B5473FD91EB20556453EEB ## 'is 后面的内容就是通过加密算法将123456789生成的加密密码'
# vim /etc/grub.d/00_header ## 编辑配置文件
cat << EOF
set superusers="root"
passwd_pbkdf2 root grub.pbkdf2.sha512.10000.E95B023DE28491A5F5A34B18C5C6CE9F74695A15FB17F48E04630B04DCB8E9A21EE3322C02311DEF3049654B5F64DD7A455BDF707FD304F4DB6ABC51A0F12321.08CF42CC9225D539DB130989F5445BDE2995B3691CE5806F075CBB51AD3084BA5E9B7C04EFC9D5BEEA8782CCDAA3105FA45AD9F534B5473FD91EB20556453EEB
EOF
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg ##'将生成的配置文件覆盖掉原来的grub.cfg配置文件'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-313cef57612341d5972004b949f7ed03
Found initrd image: /boot/initramfs-0-rescue-313cef57612341d5972004b949f7ed03.img
done
[root@localhost ~]# init 6 ## 重启 按E进入
1.3终端登录控制
1.3.1禁止root登录
在linux程序中,login程序会读取/etc/securetty文件,以决定root用户才哪些安全终端登录。若要禁止root用户从指定的终端登录,只需要禁止从该文件删除或者注释掉相应的行即可。 例如:禁止用户从tty5、tty6登录。
[root@localhost ~]# vi /etc/securetty
tty2
tty3
tty4
#tty5 ## 注释掉这两行
#tty6
tty7
tty8
tty9
tty10
1.3.2 禁止普通用户登录
进行备份或者调试等维护工作,不希望新的用户的登录系统。 建立/etc/nologin文件即可,系统会检查/etc/nologin文件是否存在,如存在,则会拒绝普通用户登录。
[root@localhost ~]# touch /etc/nologin '禁止普通用户登录'
[root@localhost ~]# rm -rf /etc/nologin '取消上述登录限制'
'一般做维护的时候使用(只有root用户可以登录,其他用户不可登录)'
例如
[root@localhost ~]# touch /etc/nologin
此时,再用其他用户登录,即便密码输入正确也会提示密码没有奏效,从而无法登录,只有root用户可以登录
[root@localhost ~]#rm -rf /etc/nologin
此时,将之前的登录限制取消之后,其他用户也可以正常登录了
二、弱口令检测,端口扫描。
2.1弱口令检测——Joth the Ripper
Joth the Ripper,简称为 JR,是一款开源破解工具,能够在一直密文的情况下快速分析出明文的密码字典,支持DES、MD5等多种加密算法,允许使用密码字典(包括各种密码组合的列表文件)来暴力破解。 通过使用JR,可以检测密码强度。
[root@localhost ~]# mkdir /111 '创建挂载点'
[root@localhost ~]# mount.cifs //192.168.100.3/cccc /111 '挂载(cccc文件中有john压缩包)'
Password for root@//192.168.100.3/cccc:
[root@localhost ~]# cd /111
[root@localhost 111]# ls
john-1.8.0.tar.gz
[root@localhost 111]# tar zxvf john-1.8.0.tar.gz -C /opt '将压缩包解压到/opt中'
[root@localhost 111]# cd /opt/john-1.8.0/ '进入压缩包'
[root@localhost john-1.8.0]# ls '查看压缩包'
doc README run src 'doc是说明文档,README是说明书,run是脚本,src是源码文件'
接下来是手工编译安装的过程
[root@localhost src]# yum install gcc gcc-c++ -y
...此处省略内容
[root@localhost src]# make linux-x86-64 'make编译'
...此处省略内容
[root@localhost src]# cd ..
[root@localhost john-1.8.0]# ls
doc README run src
[root@localhost john-1.8.0]# cd run
[root@localhost run]# ls '此时已经有john脚本'
ascii.chr john lm_ascii.chr makechr relbench unique
digits.chr john.conf mailer password.lst unafs unshadow
[root@localhost run]# ./john /etc/passwd /etc/shadow '运行脚本查看/etc/passwd /etc/shadow文件'
Loaded 4 password hashes with 4 different salts (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status '等待几分钟,若设置的密码在弱口令字典中,就会被识别出来密码,说明密码不够复杂,不太安全'
123123 (root)
123123 (lisi)
123123 (wangwu)
4g 0:00:01:14 100% 2/3 0.05368g/s 344.0p/s 363.4c/s 363.4C/s leslie..boston
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[root@localhost run]# cat password.lst '查看弱口令字典'
2.2 网络扫描——NMAP
NMAP是一个强大的端口扫描类安全评测工具,NMAP被设计为检测主机数量众多的巨大网络,支持ping扫描,多端口检测,OS识别等多种技术。 NMAP的扫描语法 :nmap [扫描类型] [选项] <扫描目标…> 常用的扫描类型 sS,-sT,-sF,-sU,-sP,-P0 sT:TCP端口 sU:UDP端口 sP:ping
[root@localhost run]# rpm -q nmap
未安装软件包 nmap
[root@localhost run]# yum install nmap -y
...此处省略内容
[root@localhost run]# nmap -sP 192.168.197.0/24 '192.168.197.0/24是本台主机的网络号,此命令查看此网段中那些主机在线'
Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-14 23:49 CST
Nmap scan report for 192.168.197.1
Host is up (0.00064s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.197.2
Host is up (0.000052s latency).
MAC Address: 00:50:56:EF:60:82 (VMware)
Nmap scan report for 192.168.197.254
Host is up (0.000077s latency).
MAC Address: 00:50:56:EA:BF:C1 (VMware)
Nmap scan report for 192.168.197.141
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 1.95 seconds
[root@localhost run]# nmap -sT 192.168.197.141
Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-14 23:52 CST
Nmap scan report for 192.168.197.141 '查看主机192.168.197.141开了哪些TCP端口'
Host is up (0.00078s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds