Linux系统安全

Posted

tags:

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

一、系统安全


1.用户管理

(1)删除长时间不使用的用户

userdel [-r] 用户名

选项

-r:删除指定用户家目录

(2)设置程序用户Shell为不允许登陆系统

usermod -s /sbin/nologin 用户

(3)临时使用用户(设置用户的最长使用期限)

chage -E "时间" 用户        //设置账号失效时间
chage -l 用户         //查看账号的密码控制信息(如最短、最长密码使用时间等)

(4)锁定文件,该文件不能被删除(粘滞位

①针对文件的粘滞位,root用户也受到限制

chattr +i /etc/passwd && chattr +i /etc/shadow      //指定文件将不能删除
chattr -i /etc/passwd && chattr -i /etc/shadow      //移除指定文件的粘滞位
lsattr <文件>                 //查看指定用户是否设置粘滞位

②文件或目录的粘滞位,所有者和root用户不受限制

chmod o+t <目录/文件>               //给指定目录/文件设置粘滞位
chmod o-t  <目录/文件>              //给指定目录/文件取消粘滞位
ls -ld <目录>                     //查看目录的粘滞位设置情况(t权限位)

(5)设置密码有效期

已存在用户

passwd -S 用户  //查看用户密码状态
passwd -x 天数 用户   //设置密码的有效期

新建的用户

vim /etc/login.defs   //更改默认新建用户参数的文件
PASS_MAX_DAYS 天数

2.Linux特权权限

作用
    SUID:对二进制文件生效,使普通用户以所有者的权限执行文件
    SGID:对目录生效,保持原目录的所有组
    Stickybit:防止用户删除文件/目录,针对其他用户设置,root用户无效
格式
    SUID:[chmod u+s | u-s] 文件
    SGID:[chmod g+s | g-s] 目录
    Stickybit(粘滞位):chmod [o+t | o-t] 文件/目录
八进制:SUID=4、SGID=2、Stickybit=1

例:
chmod u+s /tmp/2333.txt //设置文件拥有SUID(用户在执行文件时有所有者的权限)
chmod g+s /tmp/2333.txt //设置文件拥有SGID(用户在执行文件时有所有组的权限)
chmod 4755 文件/目录 //设置文件或目录拥有SUID及所有者拥有完全权限,所有组拥有读取、执行权限,其它用户拥有读取、执行权限

二、su、sudo


1.su:切换指定用户

语法

su [-] 用户

vim /etc/pam.d/su //修改pam配置文件

auth          required        pam_wheel.so use_uid  //PAM模块认证,只有属于wheel组用户可切换到root

查看安全认证日志文件

tail -f /var/log/secure             

需配合远程控制,设置root用户禁止远程登陆

2.sudo:临时提权,普通用户临时以root身份执行命令

vim /etc/sudoers或visudo             //编辑sudo配置文件,默认不能直接使用
[用户名]   [主机]  [命令]

命令可取反,如!/bin/(表示除/bin/目录外)
例:
u01 ALL=(ALL) ALL //允许u01用户使用sudo以root身份执行所有命令
u01 ALL=(ALL) ALL,!/sbin/reboot //允许u01用户使用sudo以root身份执行所有命令,除了/sbin/reboot

(1)文件中设置别名

Cmnd_Alias 别名(大写)=命令            //定义命令别名
User_Alias 别名(大写)=用户名           //定义用户别名
Host_Alias 别名(大写)=网段,IP地址       //定义主机别名

例:

Cmnd_Alias CMD=ALL,!/sbin/reboot //定义命令别名,CMD=ALl,!/sbin/reboot
User_Alias USER=u01,u02 //定义用户别名,USER=u01,u02
Host_Alias HOST=192.168.10.44 //定义主机别名,HOST=192.168.10.44
USER HOST=CMD //允许USER别名(u01、u02用户)在HOST别名(192.168.10.44)执行CMD别名(ALL,!/sbin/reboot)

(2)日志记录

vim /etc/sudoers    //修改sudo配置文件
Defaults logfile=/var/log/sudo  //定义日志记录并指定存储位置
tail -f /var/log/sudo   //动态查看sudo日志文件
sudo -l             //查看当前用户所有sudo能执行的命令

注:默认用户使用sudo后,保留5分钟时间,5分钟内用户不需再次输入当前用户密码

三、系统管理


1.自动清空历史命令

vim ~/.bashrc                   //用户登陆时自动清空历史命令
  echo "" >~/.bash_history
history -c                      //清楚当前用户登陆终端历史命令(再次登陆依然存在)
vim /etc/profile
  HISTSIZE=0                    //更改历史命令记录数量

2.终端超过闲置时间后自动注销

vim /etc/profile                    //全局变量定义文件(所有用户生效)
  TMOUT=秒数                  //指定终端超时时间
vim ~/.bash_profile                 //只对当前用户生效
  TMOUT=秒数                  //指定终端超时时间

四、开关机安全控制


1.禁用Ctrl-Alt-Delete热键

vim /etc/init/control-alt-delete.conf
注释掉最后一行(加#)

2.GRUB菜单限制

明文密码

vim /boot/grub/grub.conf
  password 密码           //title之前

密文密码

grub-md5-crypt          //将输入的字符串使用md5方式转换
vim /boot/grub/grub.conf
  password --md5 加密字符串      //title之前

3.减少tty终端数量

vim /etc/sysconfig/init
  ACTION_CONSOLES=/dev/tty[1-6]     //改动tty[1-6]数值可实现控制

例:
ACTION_CONSOLES=/dev/tty[1-3] //开启tty1、tty2、tty3
ACTION_CONSOLES=/dev/tty[1,3,6] //开启tty1、tty3、tty6
ACTION_CONSOLES=/dev/tty[1-1,3-3,6-6] //开启tty1、tty3、tty6

4.禁止普通用户登录

touch /etc/nologin    //新建文件nologin,所有用户无法登陆(除root)
rm -rf /etc/nologin    //解锁,普通可登录

5.扫描

语法

nmap -A -O -PO -vv 网段/IP/域名     //扫描指定主机的OS、端口、MAC等信息

推荐扫描类型

-PO:主机禁止ping时,可强制扫描
-sU:扫描UDP
-sT:扫描TCP
-p:扫描指定端口

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

《安富莱嵌入式周报》第279期:强劲的代码片段搜索工具,卡内基梅隆大学安全可靠C编码标准,Nordic发布双频WiFi6 nRF7002芯片

关于Linux系统 网络安全的一些内在限制

LINUX PID 1和SYSTEMD PID 0 是内核的一部分,主要用于内进换页,内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程(代码片段

Linux是最安全的操作系统么

Linux系统安全及应用

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