Linux系统安全及应用(2)

目录

一. GRUB限制

调整BIOS引导设置

GRUB限制

限制更改GRUB引导参数

实例:GRUB 菜单设置密码

 2)备份密码字符串、grub.cfg文件以及00_header文件;

 (3)设置能够修改GRUB菜单的用户名和密码;

 (4)生成新的grub.cfg文件;

 ​编辑

二.终端登录安全控制

限制root只在安全终端登录

 禁止普通用户登录

三.系统弱口令检测

四.网络端口扫描

nmap命令

NMAP的扫描

查看指定服务端口是否开启的三种方法


一. GRUB限制

调整BIOS引导设置

  • 将第一引导设备设为当前系统所在硬盘禁止从其他设备(光盘、U盘、网络)引导系统将安全级别设为setup,并设置管理员密码

GRUB限制

  • 使用grub2-mkpasswd-pbkdf2生成密钥
  • 修改/etc/grub.d/00 header文件中,添加密码记录
  • 生成新的grub.cfg配置文件

限制更改GRUB引导参数

  • 通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。
  • 可以为GRUB 菜单设置一个密码,只有提供正确的密码才被允许修改引导参数
  • 实例:GRUB 菜单设置密码

    (1)根据提示设置GRUB菜单的密码;

  • [root@mwq ~]# grub2-mkpasswd-pbkdf2   #根据提示设置GRUB菜单的密码
    输入口令:
    Reenter password:    #此处设置的密码就是登录系统时,输入的密码,用户名和密码正确才可以登录系统,修改GRUB引导参数
    PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.2E11090ED7F21187E36302A2F34296AAC411240DE33B9E997A58DF4CE3BF5CA0CF0241882DD1A6B509C6F22BAD6E302DBC77909BF7685614D29D9954B170545E.5903DA571D3EBD55FA35B9D45595C552EA2AE017C11F3C47020CA158FFD4609C3ABCDFF39C000AACC175831EFA2C105462D4E6FC2B2AAF128AEE3CCA2FDD4E7A   #加密生成的密码字符串
    

 2)备份密码字符串、grub.cfg文件以及00_header文件;

[rootmwq ~]# vim pass.txt    #将密码字符串复制到pass.txt文件中
[root@mwq ~]# cat pass.txt
ha512.10000.2E11090ED7F21187E36302A2F34296AAC411240DE33B9E997A58DF4CE3BF5CA0CF0241882DD1A6B509C6F22BAD6E302DBC77909BF7685614D29D9954B170545E.5903DA571D3EBD55FA35B9D45595C552EA2AE017C11F3C47020CA158FFD4609C3ABCDFF39C000AACC175831EFA2C105462D4E6FC2B2AAF128AEE3CCA2FDD4E7A
[root@mwq ~]# cd /boot/grub2
[root@mwq /boot/grub2]# ls
device.map  fonts  grub.cfg  grubenv  i386-pc  locale
[root@mwq /boot/grub2]# cp grub.cfg grub.cfg,bak   #将grub.cfg文件中的内容备份到grub.cfg,bak文件中
[root@mwq/boot/grub2]# cd /etc/grub.d/
[root@mwq /etc/grub.d]# cp 00_header{,.bak}  #将00_header文件中的内容备份到00_header.bak文件中

 (3)设置能够修改GRUB菜单的用户名和密码;

[root@mwq /etc/grub.d]# vim 00_header
echo else
make_timeout "${GRUB_HIDDEN_TIMEOUT}" "${GRUB_TIMEOUT}" 

fi
cat << EOF
set superusers="root"    #设置能够修改GRUB菜单的用户名为root
password_pbkdf2 root grub.pbkdf2.sha512.10000.2E11090ED7F21187E36302A2F34296AAC411240DE33B9E997A58DF4CE3BF5CA0CF0241882DD1A6B509C6F22BAD6E302DBC77909BF7685614D29D9954B170545E.5903DA571D3EBD55FA35B9D45595C552EA2AE017C11F3C47020CA158FFD4609C3ABCDFF39C000AACC175831EFA2C105462D4E6FC2B2AAF128AEE3CCA2FDD4E7A  #设置并保存经过加密生成的密码
EOF

 (4)生成新的grub.cfg文件;

[root@mwq /etc/grub.d]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-675c23e85f174b7ca25013149d0b69ad
Found initrd image: /boot/initramfs-0-rescue-675c23e85f174b7ca25013149d0b69ad.img
done

 

二.终端登录安全控制

限制root只在安全终端登录

  • 安全终端配置:/etc/securetty 

/etc/securetty

保存虚拟终/etc/securetty:保存虚拟终端的配置文件,注释指定虚拟主机,将无法登录到系统;端的配置文件,注释指定虚拟主机,将无法登录到系统;

 禁止普通用户登录

  • 建立/etc/nologin文件
  • 删除nologin文件或重启后即恢复正常

三.系统弱口令检测

  • Joth the Ripper,简称为 JR
  • 一款密码分析工具,支持字典式的暴力破解
  • 通过对shadow文件的口令分析,可以检测密码强度
  • 官方双站:http://www.openwall.com/john/

安装JR工具

  • 安装方法
  • 主程序文件为 john

检测弱口令账号

  • 获得Linux/Unix服务器的shadow文件
  • 执行john程序,将shadow文件作为参数

密码文件的暴力破解

  • 准备好密码字典文件,默认为password.lst
  • 执行iohn程序,结合--wordlist=字典文件

(1)解压工具包

[root@mwq ~]# cd /opt/
[root@mwq /opt]# rz -E     #将john压缩工具包拉入虚拟机中
[root@mwq /opt]# ls
john-1.8.0.tar.gz  rh
[root@mwq /opt]# tar xf john-1.8.0.tar.gz    #解压工具包

(2)切换到src子目录

[root@localhost opt]# ls
john-1.8.0.tar.gz  rh
[root@localhost opt]# tar xf john-1.8.0.tar.gz
[root@localhost opt]# ls
john-1.8.0  john-1.8.0.tar.gz  rh
[root@localhost opt]# cd john-1.8.0/
[root@localhost john-1.8.0]# cd src/

(3)进行编译安装

[root@localhost src]# make clean linux-x86-64
rm -f ../run/unshadow
ln -s john ../run/unshadow
rm -f ../run/unafs
ln -s john ../run/unafs
rm -f ../run/unique
ln -s john ../run/unique
make[1]: 离开目录“/opt/john-1.8.0/src”
[root@localhost src]# cd run/

(4)准备待破解的密码文件

[root@localhost run]# cp /etc/shadow ./shadow.txt

 

(5)执行暴力破解

[root@localhost run]# ./john shadow.txt
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
123              (ll)
123              (lll)
2g 0:00:02:14 23% 2/3 0.01491g/s 373.5p/s 662.1c/s 662.1C/s texas7..dominic7
2g 0:00:02:54 31% 2/3 0.01148g/s 363.2p/s 661.5c/s 661.5C/s admin8..daily8
2g 0:00:04:28 54% 2/3 0.007461g/s 350.9p/s 659.2c/s 659.2C/s 2frederic..2minou
2g 0:00:04:41 56% 2/3 0.007104g/s 349.7p/s 659.4c/s 659.4C/s Laura2..Roadrunner2

password.lst:该文件保存密码字典

[root@localhost run]# vim password.lst
[root@localhost run]# ./john --show shadow.txt
lll:123:19835:0:99999:7:::
ll:123:19835:0:99999:7:::

2 password hashes cracked, 2 left

(6)查看已破解出的账户列表

john.pot:破解后的密码信息都保存在该文件中

[root@localhost run]# ls
ascii.chr   john       john.log  john.rec      mailer   password.lst  shadow.txt  unique
digits.chr  john.conf  john.pot  lm_ascii.chr  makechr  relbench      unafs       unshadow
[root@localhost run]# cat john.pot
$6$l6mikCAD$Zoguc0DcOATHyHWd9th86tH7aeALfQKwJS/hE4OyxVbxJbwGhZtwkMIqdlLNPVXxAGsQ7dgY5awKtQgjeOWvT1:123
$6$Xdrh4Uhp$/gTxofbC51N9jqozSMZ33sE2HeNsr61ByxVvUapocAIh/t.CUiMtCiqmxOIRgHyyMH.uMl6wIMmwjqJZSKtBm/:123

./john --wordlist=[指定字典文件的绝对路径] [需要破解的文件名]:使用指定的字典文件进行破解;

[root@localhost run]# ./john --wordlist
Option requires a parameter: "--wordlist"
[root@localhost run]# ./john --wordlist=./password.lst shadow.txt
Loaded 4 password hashes with 4 different salts (crypt, generic crypt(3) [?/64])
Remaining 2 password hashes with 2 different salts
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:00:10 100% 0g/s 337.7p/s 675.4c/s 675.4C/s !@#$%..sss
Session completed

四.网络端口扫描

nmap命令

  • 一款强大的网络扫描、安全检测工具
  • 官方网站:http://nmap.orgeCentOS 7.3光盘中安装包 nmap-6.40-7.el7.x86 64.rpm

NMAP的扫描

  • nmap[扫描类型][选项]<扫描目标 ...>

常用的扫描类型

  • -sS、-sT、-sF、-sU、-SP、-PO·分别查看本机开放的TCP端口、UDP端口
  • nmap -sT127.0.0.1
  • nmap -sU 127.0.0.1
  • 检测192.168.4.0/24网段有哪些主机提供FTP服务
  • nmap -p 21 192.168.4.0/24
  • 检测192.168.4.0/24网段有哪些存活主机
  • nmap -n -sP 192.168.4.0/24

netstat -lntp:以数字形式显示TCP处于监听状态的网络连接及端口信息;

[root@localhost ~]# netstat -lntp
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      772/rpcbind         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1524/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1248/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1250/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1557/master         
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      2193/sshd: root@pts 
tcp6       0      0 :::111                  :::*                    LISTEN      772/rpcbind         
tcp6       0      0 :::22                   :::*                    LISTEN      1248/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1250/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1557/master         
tcp6       0      0 ::1:6010                :::*                    LISTEN      2193/sshd: root@pts 

netstat -antp:以数字形式显示TCP所有状态下的网络连接及端口信息;

[root@localhost ~]# netstat -antp
Active Internet connections (servers and established)
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      772/rpcbind         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1524/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1248/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1250/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1557/master         
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      2193/sshd: root@pts 
tcp        0     36 20.0.0.168:22           20.0.0.1:63343          ESTABLISHED 2193/sshd: root@pts 
tcp6       0      0 :::111                  :::*                    LISTEN      772/rpcbind         
tcp6       0      0 :::22                   :::*                    LISTEN      1248/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1250/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1557/master         
tcp6       0      0 ::1:6010                :::*                    LISTEN      2193/sshd: root@pts 

ss -antp:以数字形式显示TCP所有状态下的网络连接及端口信息;(效果和netstat命令相同,但执行效率比netstat命令更高)

[root@localhost ~]# ss -antp
State      Recv-Q Send-Q   Local Address:Port                  Peer Address:Port              
LISTEN     0      128                  *:111                              *:*                   users:(("rpcbind",pid=772,fd=8))
LISTEN     0      5        192.168.122.1:53                               *:*                   users:(("dnsmasq",pid=1524,fd=6))
LISTEN     0      128                  *:22                               *:*                   users:(("sshd",pid=1248,fd=3))
LISTEN     0      128          127.0.0.1:631                              *:*                   users:(("cupsd",pid=1250,fd=11))
LISTEN     0      100          127.0.0.1:25                               *:*                   users:(("master",pid=1557,fd=13))
LISTEN     0      128          127.0.0.1:6010                             *:*                   users:(("sshd",pid=2193,fd=9))
ESTAB      0      0           20.0.0.168:22                        20.0.0.1:63343               users:(("sshd",pid=2193,fd=3))
LISTEN     0      128               [::]:111                           [::]:*                   users:(("rpcbind",pid=772,fd=11))
LISTEN     0      128               [::]:22                            [::]:*                   users:(("sshd",pid=1248,fd=4))
LISTEN     0      128              [::1]:631                           [::]:*                   users:(("cupsd",pid=1250,fd=10))
LISTEN     0      100              [::1]:25                            [::]:*                   users:(("master",pid=1557,fd=14))
LISTEN     0      128              [::1]:6010                          [::]:*                   users:(("sshd",pid=2193,fd=8))

查看指定服务端口是否开启的三种方法

方法一:通过查看进程信息,过滤指定服务的端口是否开启;

方法二:通过指定服务名进行过滤

方法三:通过指定端口号进行过滤

[root@localhost ~]# ps aux | grep httpd
root       2895  0.0  0.0 112824   976 pts/0    S+   16:50   0:00 grep --color=auto httpd

 nmap -p 80 /24 :查看指定192.168.80.0网段内有哪些主机开启了80端口

[root@localhost ~]# nmap -p 20.0.0.168/24

Starting Nmap 6.40 ( http://nmap.org ) at 2024-04-22 17:06 CST
Error #487: Your port specifications are illegal.  Example of proper form: "-100,200-1024,T:3000-4000,U:60000-"
QUITTING!
[root@localhost ~]# nmap -p 80 20.0.0.168/24

Starting Nmap 6.40 ( http://nmap.org ) at 2024-04-22 17:06 CST
Nmap scan report for 20.0.0.1
Host is up (0.00021s latency).
PORT   STATE    SERVICE
80/tcp filtered http
MAC Address: 00:50:56:C0:00:08 (VMware)

Nmap scan report for 20.0.0.2
Host is up (0.000057s latency).
PORT   STATE  SERVICE
80/tcp closed http
MAC Address: 00:50:56:F9:C7:68 (VMware)

Nmap scan report for 20.0.0.254
Host is up (-0.10s latency).
PORT   STATE    SERVICE
80/tcp filtered http
MAC Address: 00:50:56:EC:D2:CA (VMware)

Nmap scan report for 20.0.0.168
Host is up (0.000051s latency).
PORT   STATE  SERVICE
80/tcp closed http

Nmap done: 256 IP addresses (4 hosts up) scanned in 2.58 seconds

nmap -n -sP 192.168.80.0/24:查看192.168.80.0网段内,有哪些主机存活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

煤五千

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值