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_DAYS   30              #密码最多使用30天,必须更改密码
PASS_MIN_DAYS   0              #密码最少使用0天,才能更改密码
PASS_MIN_LEN    5               #可接受的密码长度       
PASS_WARN_AGE   7               #密码到期前的警告时间

[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:0    Link encap:Ethernet  HWaddr 00:0C:29:1C:B4:FB  
          inet addr:10.0.0.1  Bcast:10.255.255.255  Mask:255.0.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric: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
auth      required      pam_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

NMAP是一款强大的端口扫描类安全评测工具,支持ping扫描、多端口检测、OS识别等多种技术。使用NMAP定期扫描内部网络,可以找出网络中不可控的应用服务,及时关闭不安全的服务,较少安全风险

nmap  [扫描类型]  [选项]  [扫描目标]
扫描目标:可以是主机名、IP地址、网络地址等,多个目标以空格分隔
选项:-p指定扫描的端口  
nmap -P0 -n 192.168.1.1-30       #只扫端口不ping

你可能感兴趣的:(linux)