随着Linux的日益普及,越来越多的管理员开始进入到系统中为任务创建网络连接或服务器,这也使得Linux成为许多攻击者的选择。由于缺乏有关安全相关技术,系统管理员面临许多安全问题。学习Linux安全知识将有助于创建一个更安全的Linux系统。
[root@localhost ~]# grep "/sbin/nologin$" /etc/passwd #查看非登录用户
[root@localhost ~]# grep "bash$" /etc/passwd #查看当前可以登录的用户
[root@localhost ~]# passwd -l lisi (或者 usermod -L lisi) #锁定用户lisi
[root@localhost ~]# usermod -U lisi (或者 passwd -u lisi) #解锁用户lisi
[root@localhost ~]# passwd -S lisi #查看账号状态
chattr命令基本格式
chattr +i [目标文件] #锁定目标文件
chattr -i [目标文件] #解锁目标文件
lsattr [目标文件] #查看目标文件
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow #锁定文件
[root@localhost ~]# Isattr /etc/passwd /etc/shadow #查看状态
----i----------- /etc/passwd
----i----------- /etc/shadow
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow #解锁文件
[root@localhost ~]# Isattr /etc/passwd /etc/shadow
---------------- /etc/passwd
---------------- /etc/shadow
chage 命令用于设置密码的时限
例如,将密码的有效期设置为30天
[root@localhost ~]# vi /et/login.defs #适用于新建用户
[root@localhost ~]# chage -M 30 lisi #适用于已有用户
[root@localhost ~]# chage -d 0 zhangsan #强制在下次登录时更改密码
例如:设置最多只记录200条历史命令
[root@localhost ~]# vi /etc/profile #对于未创建的用户,使用此命令修改配置文件
将其中的HISTSIZE=1000,修改为HISTSIZE=200
[root@localhost ~]# export HISTSIZE=200 #该命令适用于当前用户,及时成效
每当编辑完/etc/profile文件后,都需要使用命令source /etc/profile或者换重启使之生效
[root@localhost ~]# vi /etc/profile #适用于新登录的用户
export TMOUT=20 #闲置时间设置为20s
[root@localhost ~]# source /etc/profile #使设置生效
[root@localhost ~]# export TMOUT=20 #适用于当前用户
大多数Linux服务器并不建议用户直接以root用户进行登录。
一方面可以大大减少因误操作而导致的破坏
另一方面也降低了特权密码在不安全的网络中被泄露的风险
su ,sudo 两种命令
su命令主要用来切换用户
sudo命令用来提升执行权限
su命令基本格式(Substitute User,切换用户)
su - 目标用户
[root@localhost ~]# su - lisi #从root切换到其他用户不需要输入密码
[lisi@localhost ~]$ su - root #从其他用户切换到root用户需要输入密码
将允许使用su命令的用户加入wheel组
启用pam_wheel认证模块
启用pam_wheel认证以后,未加入到wheel组内的其他用户将无法使用su命令
默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户的登录密码,带来风险借助pam_wheel认证模块,可以实现指定允许的用户使用su命令
PAM(Pluggable Authentication Modules),是Linux系统可插拔认证模块,是一种高效而且灵活便利的用户级别的认证方式,它也是当前Linux服务器普遍使用的认证方式。
PAM提供了对所有服务进行认证的中央机制,适用于login,远程登录
telnet,rlogin.fsh,ftp),su 等应用程序中。系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略。
查看su是否支持PAM模块认证
[root@localhost ~]# ls /etc/pam.d | grep su
查看su的PAM配置文件:cat /etc/pam.d/su
每一行都是一个独立的认证过程
每一行可以区分为三个字段(认证类型,控制类型,PAM模块及其参数)
控制类型也称做Control Flags,用于PAM验证类型的返回结果
1.required验证失败时仍然继续,但返回Fail
2.requisite验证失败则立即结束整个验证过程,返回Fail
3.sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4.optional不用于验证,只显示信息(通常用于session类型)
用途:以其他用户身份(如root) 执行授权的命令
用法:sudo 授权命令
visudo 或者 vi /etc/sudoers :sudo机制的配置文件为/etc/sudoers,文件的默认权限是440,需要使用专门的visudo工具进行编辑。若使用vi编辑,保存时必须执行“:w!”命令强制操作,否则系统将提示为只读文件而拒绝保存
配置文件/etc/sudoers中,授权记录的基本配置格式
用户 主机名列表 = 命令程序列表
命令程序列表是绝对列表
例如:
[root@localhost ~]# visudo
zhangsan localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route #表示张三用户在本地主机拥有以下权限 (/sbin下的所有权限,除了/sbin/ifconfig,除了/sbin/route权限)
*:通配符号
!:取反符号
%:代表组
建立/etc/nologin文件
删除nologin文件或重启后即恢复正常
一般做维护的时候使用(只有root用户可以登录,其他用户不可登录
例如
[root@localhost ~]# touch /etc/nologin
此时,再用其他用户登录,即便密码输入正确也会提示密码没有奏效,从而无法登录,只有root用户可以登录
[root@localhost ~]#rm -rf /etc/nologin
此时,将之前的登录限制取消之后,其他用户也可以正常登录了
可以探测局域网中那些主机在线,或者某台主机中开了那些端口
nmap [扫描类型] [选项] <扫描目标…>