Linux系统安全

一:账号安全控制

1.1:基本安全设置

[ ~]# cat /etc/passwd         ##查看用户账号

[ ~]# grep "/sbin/nologin$" /etc/passwd

[ ~]# useradd zhangsan    ##创建用户

[ ~]# usermod -L zhangsan       ##锁定账号

[ ~]# passwd -S zhangsan        ##查看账号状态

zhangsan LK 2020-06-16 0 30 7 -1 (密码已被锁定。)

[~]#usermod -U zhangsan        ##解锁账号

[~]#passwd -S zhangsan          ##查看账号状态

zhangsan PS 2020-06-16 0 30 7 -1 (密码已设置,使用 SHA512 算法。)

[ ~]# chattr +i /etc/passwd /etc/shadow           ##锁定文件

[ ~]# lsattr /etc/passwd /etc/shadow                ##查看锁定的状态

----i----------- /etc/passwd
----i----------- /etc/shadow

[~]#chattr -i /etc/passwd /etc/shadow              ##解锁文件

[~]#lsattr /etc/passwd /etc/shadow                  ##查看解锁的状态

---------------- /etc/passwd
---------------- /etc/shadow

tag1:账号文件锁定的情况下,内容不允许更改,因此无法添加、删除账号,也不能更改用户的密码等。

[ ~]# useradd a
useradd:无法打开 /etc/passwd

 

1.2:密码安全控制

tag2:chage命令用来设置密码时限

[~]#vim /etc/login.defs

修改:

PASS_MAX_DAYS  30

[~]#chage -M 30 zhangsan    ##-M:最大有效天数

[~]#chage -d 0 zhangsan       ##-d:还有几天修改密码

 

1.3:命令历史、自动注销

tag3:Bash终端环境中,历史命令的记录条数由变量HISTSIZE控制,默认为1000条

[~]#vim /etc/profile

修改:

HISTSIZE=200              ##历史命令的记录改为200条

[~]#export HISTSIZE=200

[~]#vim ~/.bash_logout

添加:

history -c

clear

tag4:修改用户宿主目录中的~/.bash_logout文件,添加清空历史命令的操作语句。

[~]#vim /etc/profile

修改:

export TMOUT=600              ##闲置超时时间

[~]#export TMOUT=600

tag5:需要注意的是,正在执行代码的操作时,避免设置TMOUT变量。必要时可以执行"unset TMOUT"命令取消TMOUT变量设置。

 

1.2用户切换与提权

tag6:su命令主要用来切换用户,而sudo命令用来提升执行权限

1:su命令 —— 切换用户

[~]#su zhangsan           ##切换到zhangsan用户

[ root]#su - root

密码:                                                   ##普通用户切换root需要输入root密码

[localhost~]#                               ##验证成功后获得root权限

tag7:选项"-"等同于"--login"或"-l",表示切换用户后进入目标用户的登录shell环境。

[~]#gpasswd -a zhangsan wheel                   ##添加授权用户zhangsan 允许zhangsan,不允许aaa

正在将用户“zhangsan”加入到“wheel”组中

[~]#grep wheel /etc/group                              ##确认wheel组成员

wheel:x:10:benet,zhangsan

[~]#vim /etc/pam.d/su

auth            sufficient      pam_rootok.so

auth            required        pam_wheel.so use_uid                 ##去掉#

[ root]#su - root                    ##切换root

密码:

su:拒绝权限

[ root]                                      ##切换失败,仍为原用户

tag8:使用su命令切换用户的操作将会记录到安全日志/var/log/secure

2:sudo — 提升执行权限

tag9:sudo的配置文件为:/etc/sudoers,文件的默认权限为440,需使用专门的visudo工具编辑,也可以使用vim编辑,但保存时必须执行":W!"命令。授权配置主要包括:用户、主机、命令三个部分。

[~]#visudo            ##开启sudo日志功能

添加

Defaults logfile="/var/log/sudo"

[ ~]# visudo

末尾添加

aaa localhost=/sbin/ifconfig

%wheel ALL=NOPASSWD: ALL          ##NOPASSWD指无需使用密码验证即可直接执行命令

[ ~]# su aaa

[ root]$ sudo /sbin/ifconfig eth0:0 10.2.2.2/8        ##需要有aaa的密码验证

[ root]$ sudo -l

[ root]$ su zhangsan

密码:

[ root]$ sudo /sbin/ifconfig eth0:0 20.1.1.1/8           ##zhangsan属于wheel组,可直接修改,而不验证

Defaults logfile="/var/log/sudo"

[ root]$ sudo -l

[ ~]# tail /var/log/sudo           ##root

tag10:若启用sudo日志,则可以从/var/log/sudo文件中看到用户的sudo操作记录。

二.系统引导和登录控制

2.1:开关机安全控制

1.调整BIOS引导设置

2.禁止Ctrl+Alt+Del快捷键重启(字符终端,桌面无效)

[~]#cat /etc/inittab          ##执行命令可以得知ctrl+alt+del快捷键功能由/usr/lib/systemd/system/ctrl-alt-del.tar.get文件进行设置

[ ~]# systemctl mask ctrl-alt-del.target              ##禁用

[ ~]# systemctl daemon-reload                         ##重载systemd配置

[ ~]# systemctl unmask ctrl-alt-del.target         ##开启

3.限制更改GRUB引导参数

[ ~]# grub2-mkpasswd-pbkdf2

输入口令:

Reenter password:

PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.26012A1550E071A5120FBEFA57C751256F2642AF0B9D9D97971A36C1A902A8DC69AF4D5AE3E11B36BE086BBB989D4D1A16C20ECAFA6863A0A705791430CD61F8.EED048F257E8782B533B5641C4B7000F46299103B7F1AD3E8A63AB176E64DF6EFA348D9920886056F6BEF135E3A25A3C00F64D95B92AF4E94EB5A81946BFB54E

 

[ ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

[ ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak

[ ~]# vim /etc/grub.d/00_header

cat << EOF

set superusers="root"

password_pbkdf2root grub.pbkdf2.sha512.10000.26012A1550E071A5120FBEFA57C751256F2642AF0B9D9D97971A36C1A902A8DC69AF4D5AE3E11B36BE086BBB989D4D1A16C20ECAFA6863A0A705791430CD61F8.EED048F257E8782B533B5641C4B7000F46299103B7F1AD3E8A63AB176E64DF6EFA348D9920886056F6BEF135E3A25A3C00F64D95B92AF4E94EB5A81946BFB54E

EOF

[ ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub configuration file ...

Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64

Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img

Found linux image: /boot/vmlinuz-0-rescue-00686d1a1cfe4b14a87a05f34e412c0b

Found initrd image: /boot/initramfs-0-rescue-00686d1a1cfe4b14a87a05f34e412c0b.img

done

 

重启系统进入grub菜单验证

三.终端及登录控制

3.1禁止root用户登录

[ ~]# vi /etc/securetty    ##登陆时会提示密码错

加注释#

#tty5

#tty6

 

3.2禁止普通用户登陆

[ ~]# touch /etc/nologin

四:弱口令探测、端口扫描

1:安装john-1.8.0

[ ~]# useradd aaa

[ ~]# passwd aaa      ##设置一个简单的密码比如123

[ ~]# cd /usr/src

[ src]# tar zxf john-1.8.0.tar.gz

[ src]# cd john-1.8.0

[ john-1.8.0]# ls -ld *

[ john-1.8.0]# ls doc/

[ john-1.8.0]# cd src

[ src]# make linux-x86-64

[ src]# ls ../run/john         ##确认已生成可执行程序john

2:检测弱口令账号

1):暴力破解

[ src]# cp /etc/shadow /root/shadow.txt      ##准备待破解的密码文件

[ src]# cd ../run

[ run]# ./john /root/shadow.txt        ##执行暴力破解

[ run]# ./john --show /root/shadow.txt       ##查看已破解出的账户列表

 

2):密码字典破解

[ run]# :>john.pot          ##清空已破解出的账户列表,以便重新分析

[ run]# ./john --show /root/shadow.txt

0 password hashes cracked, 2 left

[ run]# vi password.lst               ##john自带有密码字典就在src目录下

[ run]# ./john --wordlist=./password.lst /root/shadow.txt

3:网络扫描——NMAP

这个实验可以将linux桥接到物理网络中,

1:安装NMAP软件包

[ ~]# mount /dev/cdrom /media/cdrom

[ ~]# yum install -y nmap

 

2:扫描语法及类型

[ ~]# nmap 127.0.0.1

[ ~]# nmap -sU 127.0.0.1                           ##扫描常用端口

[ ~]# ifconfig

[ ~]# nmap -p 21 192.168.10.0/24            ##扫描网段中哪些主机启用的端口21

[ ~]# nmap -n -sP 192.168.10.0/24           ##扫描存活主机

[ ~]# nmap -p 139,445 192.168.10.10-20      ##扫描主机是否开了共享

相关推荐