Linux系统安全

Posted chh-yyqx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统安全相关的知识,希望对你有一定的参考价值。

一:账号安全控制

1.1:基本安全设置

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

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

[root@localhost ~]# useradd zhangsan    ##创建用户

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

1.2:密码安全控制

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

[root@localhost~]#vim /etc/login.defs

修改:

PASS_MAX_DAYS  30

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

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

 

1.3:命令历史、自动注销

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

[root@localhost~]#vim /etc/profile

修改:

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

[root@localhost~]#export HISTSIZE=200

[root@localhost~]#vim ~/.bash_logout

添加:

history -c

clear

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

[root@localhost~]#vim /etc/profile

修改:

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

[root@localhost~]#export TMOUT=600

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

 

1.2用户切换与提权

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

1:su命令 —— 切换用户

[root@localhost~]#su zhangsan           ##切换到zhangsan用户

[zhangsan@localhost root]#su - root

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

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

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

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

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

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

 

wheel:x:10:benet,zhangsan

[root@localhost~]#vim /etc/pam.d/su

auth            sufficient      pam_rootok.so

auth            required        pam_wheel.so use_uid                 ##去掉#

[aaa@localhost root]#su - root                    ##切换root

密码:

su:拒绝权限

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

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

 

2:sudo — 提升执行权限

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

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

 

添加

 

Defaults logfile="/var/log/sudo"

 

[root@localhost ~]# visudo

末尾添加

aaa localhost=/sbin/ifconfig

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

[root@localhost ~]# su aaa

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

[aaa@localhost root]$ sudo -l

[aaa@localhost root]$ su zhangsan

密码:

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

 

Defaults logfile="/var/log/sudo"

[zhangsan@localhost root]$ sudo -l

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

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

 

二.系统引导和登录控制

2.1:开关机安全控制

1.调整Bios引导设置

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

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

 

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

 

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

 

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

 

3.限制更改GRUB引导参数

 

[root@localhost ~]# grub2-mkpasswd-pbkdf2

 

输入口令:

 

Reenter password:

 

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

 

 

 

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

 

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

 

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

 

cat << EOF

 

set superusers="root"

 

password_pbkdf2root grub.pbkdf2.sha512.10000.26012A1550E071A5120FBEFA57C751256F2642AF0B9D9D97971A36C1A902A8DC69AF4D5AE3E11B36BE086BBB989D4D1A16C20ECAFA6863A0A705791430CD61F8.EED048F257E8782B533B5641C4B7000F46299103B7F1AD3E8A63AB176E64DF6EFA348D9920886056F6BEF135E3A25A3C00F64D95B92AF4E94EB5A81946BFB54E

 

EOF

 

 

[root@localhost ~]# 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用户登录

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

加注释#

#tty5

#tty6

 

3.2禁止普通用户登陆

[root@localhost ~]# touch /etc/nologin

 

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

1:安装john-1.8.0

[root@localhost ~]# useradd aaa

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

[root@localhost ~]# cd /usr/src

[root@localhost src]# tar zxf john-1.8.0.tar.gz

[root@localhost src]# cd john-1.8.0

[root@localhost john-1.8.0]# ls -ld *

[root@localhost john-1.8.0]# ls doc/

[root@localhost john-1.8.0]# cd src

[root@localhost src]# make linux-x86-64

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

 

2:检测弱口令账号

1):暴力破解

 

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

 

[root@localhost src]# cd ../run

 

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

 

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

 

 

 

2):密码字典破解

 

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

 

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

 

0 password hashes cracked, 2 left

 

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

 

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

 

3:网络扫描——NMAP

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

1:安装NMAP软件包

[root@localhost ~]# mount /dev/cdrom /media/cdrom

[root@localhost ~]# yum install -y nmap

 

2:扫描语法及类型

[root@localhost ~]# nmap 127.0.0.1

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

[root@localhost ~]# ifconfig

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

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

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

 

以上是关于Linux系统安全的主要内容,如果未能解决你的问题,请参考以下文章

笔记防线-企业linux安全:企业Linux安全系统防护-(未完)

Linux系统安全及系统安全的基本设置

Linux系统安全及应用

Linux系统安全及应用

Linux系统保证安全的必要措施

linux系统安全加固