Linux系统安全及应用

132 阅读5分钟

一、系统账号清理

1.将非登录用户的shell设为/sbin/nologin

     usermod -s /sbin/nologin 加上用户名

2.锁定长期不使用的账号

     usermod -L 加用户名

     passwd -l 加用户名

     passwd -S 加用户名

3.删除无用的账号

      userdel -r 加用户名(家目录一起删除)

4.锁定账号文件 passwd 、shadow

      chattr +i /etc/passwd /etc/shadow 锁定文件

      lsattr /etc/passwd /etc/shadow 查看锁定的文件

      chattr -i /etc/passwd 解锁文件 

5.临时清空历史记录

history -c临时清空历史记录 ,关机重启还会显示历史记录,不能永久清空,例

image-20220809094100151.png

二、使用su命令切换用户

 su 用户名 在当前目录切换

 su - 用户名 切换到用户的家目录
  1. 限制用户使用su命令

    将允许使用su命令的用户加入wheel组\
    启用pam_wheel认证模块
    

2.su命令的安全隐患

  • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全隐患
  • 为了加强su命令的控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换

在/etc/pam.d/su文件里设置禁止用户使用su命令

1. #vim /etc/pam.d/su
2. #auth sufficient pam_rootok.so
3. #auth required pam_wheel.so use_uid

三、Linux中的PAM安全认证

1.su命令的安全隐患

默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换

2.PAM可插拔式认证模块

是一种高效而且灵活便利的用户级别的认证方式

也是当前Linux服务器普遍使用的认证方式

3.PAM认证原理

一般遵循的规律:Service(服务)→ PAM(配置文件)→ pam_*.so

首先要确定哪一项服务,然后加载相应的 PAM 的配置文件(位于 /etc/pam.d 下),最后调用认证文件(位于 /lib64/security 下)进行安全认证

用户访问服务器时,服务器的某一个服务程序把用户的请求发送到 PAM 模块进行认证

不同的应用程序所对应的 PAM 模块是不同的

如果想要查看某个程序是否支持 PAM 认证,可以使用 ls 命令,进行查看 /etc/pam.d/

4.各列名词解释

第一列代表PAM认证模块类型

  • auth:对用户身份进行识别,如提示输入密码,判断是否为root。
  • account:对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等。
  • password:使用用户信息来更新数据,如修改用户密码。
  • session:定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统。

第二列代表PAM控制标记

  • required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。
  • requisite:与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。
  • sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。
  • optional:不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于 session 类型)。
  • include:表示在验证过程中调用其他的PAM配置文件。比如很多应用通过完整调用/etc/pam.d/system-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项。

第三列代表PAM模块,默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。

第四列代表PAM模块的参数,这个需要根据所使用的模块来添加。

四、使用sudo机制提权

  • sudo是一个授权命令

用途:以其他用户身份(如root)执行授权的命令

  1. 配置sudo授权
  • vim /etc/sudoers
  • visudo

两种方式进入配置

2.语法格式:

用户 主机名=命令程序列表 格式没有空格

用户 主机名=(用户)命令程序列表

  1. 用户:直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户)。
  2. 主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机
  3. 用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令
  4. 允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,”进行分隔。ALL则代表系统中的所有命令

五、netstat命令(用于查看本机开启的端口)

选项含义
-a显示朱继忠所有活动的网络连接
-n以数字形式显示相关的主机地址、端口等信息
-t查看TCP相关的信息
-u显示UDP协议相关的信息
-p显示与网络连接相关联的进程号、进程名称等信息(要root权限)
-r显示路由表信息
-l显示处于监听状态的网络连接及端口信息