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系统安全的主要内容,如果未能解决你的问题,请参考以下文章