Linux系统安全及应用



  • 前言
  • 基本安全措施
    • 系统账号清理、锁定
    • 密码安全控制
    • 用户切换于权限
    • su切换用户
    • sudo提升权限
  • PAM认证
  • 开关机安全控制
      • 调整BIOS引导设置
      • BRUB限制
  • NMAP

前言 作为一个开放源代码的操作系统,Linux服务器以其安全、高效和稳定的显著优势而得以广泛应用。下面主要从账户安全、系统引导、登录控制的角度,优化Linux系统的安全性
用户账号,是计算机使用者的身份凭证,每个访问系统资源的人,必须要有账号才能登录计算机,在Linux中,提供了多种机制来确保用户账号的安全使用
基本安全措施 系统账号清理、锁定 在Linux系统中,除了用户手动创建的各种账号外,还包括随系统或程序安装过程中生成的大量其他账号,用来维护系统运作、启动或保持服务进程,一般不允许登陆,称为非登录用户。为了保持系统安全,这些用户的登陆shell通常是/sbin/nologin,表示禁止终端登录,应确保不被人为改动。
对于一些长期不用的账号,若无法确定是否删除,应暂时锁定(用usermod、passwd命令都可以锁定、解锁账号)
[root@localhost ~]# usermod -L xx#锁定账号 [root@localhost ~]# passwd -S xx#查看账号状态 xx LK 2017-12-22 0 99999 7 -1 (密码已被锁定。) [root@localhost ~]# usermod -U xx#解锁账号 [root@localhost ~]# passwd -S xx xx PS 2017-12-22 0 99999 7 -1 (密码已设置,使用 SHA512 加密。) [root@localhost ~]# passwd -l xx 锁定用户 xx 的密码 。 passwd: 操作成功 [root@localhost ~]# passwd -u xx 解锁用户 xx 的密码 。 passwd: 操作成功

如果服务器中的账号已经固定,不进行更改,可以采用锁定账号配置文件的方法。使用chattr命令锁定、解锁文件,使用lsattr查看文件锁定情况
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow#+i,锁定文件 [root@localhost ~]# lsattr /etc/passwd /etc/shadow#查看文件锁定情况 ----i--------e- /etc/passwd ----i--------e- /etc/shadow [root@localhost ~]# useradd xx#文件锁定,无法添加、删除用户,也不能更改用户的密码、登陆shell、宿主目录等属性 useradd: cannot open /etc/passwd [root@localhost ~]# chattr -i /etc/passwd /etc/shadow#-i,解锁文件 [root@localhost ~]# useradd xx#正常创建用户 [root@localhost ~]#

密码安全控制 为了降低密码被猜出或暴力破解的风险,应避免长期使用同一个密码。管理员可以在服务器端限制用户密码使用最大有效期天数,对密码已过期的用户,登录时要求重新设置密码,否则拒绝登录
[root@localhost ~]# vim /etc/login.defs#适应于新建的用户 PASS_MAX_DAYS30#密码最多使用30天,必须更改密码 PASS_MIN_DAYS0#密码最少使用0天,才能更改密码 PASS_MIN_LEN5#可接受的密码长度 PASS_WARN_AGE7#密码到期前的警告时间[root@localhost ~]# chage -M 30 xx#适用于以存在的用户,密码30天过期 [root@localhost ~]# chage -d 0 xx#下次登录时,必须更改密码

bash终端环境中,可设置一个闲置超时时间,当超过指定的时间没有任何输入时,自动注销终端。由变量TMOUT控制,默认单位
[root@localhost ~]# vim /etc/profile#适用于新登录用户 export TMOUT=600[root@localhost ~]# TMOUT=600#适用于当前用户 [root@localhost ~]# unset TMOUT#如果进行耗时较长的操作,避免打扰,可取消TMOUT变量

用户切换于权限 su切换用户 使用su命令,可以切换一个指定的用户,拥有该用户的所有权限
[root@localhost ~]# su - xx#root切换为普通用户,不需要密码验证 [xx@localhost ~]$ su# 普通用户切换为root,需要验证,root不需要 密码: [root@localhost ~]#

sudo提升权限 使用su命令虽然可以切换为root用户,但必须知道root密码要知道每多一个人知道特权密码,就多一份风险。而sudo命令可以让普通用户拥有一部分root用户才能执行的命令,有不用知道特权密码
[xx@localhost ~]$ ifconfig eth0:0 10.0.0.1/8#未用sudo命令 SIOCSIFADDR: 权限不够 SIOCSIFFLAGS: 权限不够 [xx@localhost ~]$ sudo ifconfig eth0:0 10.0.0.1/8#使用sudo命令 ……//省略部分内容 [sudo] password for xx:#验证密码 [xx@localhost ~]$ ifconfig eth0:0#查看命令,执行成功 eth0:0Link encap:EthernetHWaddr 00:0C:29:1C:B4:FB inet addr:10.0.0.1Bcast:10.255.255.255Mask:255.0.0.0 UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1[xx@localhost ~]$ sudo -l#查看获得哪些sudo授权 [sudo] password for xx: 用户 xx 可以在该主机上运行以下命令: (root) /sbin/ifconfig[root@localhost ~]# tail /var/log/sudo#可以看到用户的sudo操作记录 Dec 27 07:49:35 : xx : TTY=pts/0 ; PWD=/home/xx ; USER=root ; COMMAND=/sbin/ifconfig eth0:0 10.0.0.1/8

PAM认证 默认所有用户允许使用su命令,从而有机会反复尝试其他用户(root)的登陆密码,带来安全风险。可以使用pam_wheel认证模块,只允许极个别用户使用su命令进行切换
[root@localhost ~]# vim /etc/pam.d/su authrequiredpam_wheel.so use_uid#这行去掉注释 [root@localhost ~]# su - xx [xx@localhost ~]$ su - root#再次尝试切换,就会提示密码错误 密码: su: 密码不正确 [xx@localhost ~]$ exit logout [root@localhost ~]# gpasswd -a xx wheel//添加授权用户到wheel组 [root@localhost ~]# grep wheel /etc/group//查看wheel组成员 [root@localhost ~]# su - xx [xx@localhost ~]$ su//再次尝试切换,切换成功 密码: [root@localhost ~]#

开关机安全控制 调整BIOS引导设置
将第一引导设备设为当前系统所在硬盘
禁止从其他设备(光盘、U盘、网络)引导系统
将安全级别设为setup,并设置管理员密码
BRUB限制
使用grub2-mkpasswd-pbkdf2生成密匙
修改/etc/grub.d/00_header文件中,添加密码记录
生成新的grub.cfg配置文件
[root@localhost ~]# grub2-setpassword Enter password

NMAP 【Linux系统安全及应用】NMAP是一款强大的端口扫描类安全评测工具,支持ping扫描、多端口检测、OS识别等多种技术。使用NMAP定期扫描内部网络,可以找出网络中不可控的应用服务,及时关闭不安全的服务,较少安全风险
nmap[扫描类型][选项][扫描目标] 扫描目标:可以是主机名、IP地址、网络地址等,多个目标以空格分隔 选项:-p指定扫描的端口 nmap -P0 -n 192.168.1.1-30#只扫端口不ping

    推荐阅读