Linux 系统安全常规优化

Linux 系统安全常规优化

一:账号安全。

 1:基本的安全措施:

  1)删除系统中不使用的用户和组。或是锁定用户(锁定用户:xiang)
  
      [root@localhost ~]# passwd -l xiang  
   或[root@localhost ~]# usermod -L xiang
  
  2) 确认程序或服务用户的shell不可用
 
   [root@localhost ~]# cat /etc/passwd                  #查看
   [root@localhost ~]# usermod -s /sbin/nologin ftp     #把ftp用户的登录shell 改成 /sbin/nologin

  3)限制用户密码的有效期

   [root@localhost ~]# vi /etc/login.defs
   PASS_MAX_DAYS 30                                #改成30天,这个对所有的用户有效
   或 [root@localhost ~]# chage -M 30 xiang          #改成30天,这个对单个用户有效
   [root@localhost ~]# chage -d 0 xiang              # xiang用户下次登录要改密码

  4)限制用户的密码的最小长度

   [root@localhost ~]# vi /etc/pam.d/system-auth
   password requisite pam_cracklib.so try_first_pass retry=3 minlen=12
  5) 限制记录命令的条数

   [root@localhost ~]# vi /etc/profile
   HISTSIZE=100
  
  6) 设置闲置超时自动注销终端

   [root@localhost ~]# vi /etc/profile
   export TMOUT=600
 2:一搬别用ROOT用户登录,用su 来切换
  
  [xiang@localhost ~]# su - liming            #新打开一个shell 切换到用户liming
  [xiang@localhost ~]# su                     #切换到用户root   在当前的SHell
  [xiang@localhost ~]# su -                   #新打开一个shell 切换到用户root
  [xiang@localhost ~]#
 
 3:使用sudo 提升执行权限

  1)编辑/etc/sudoers   要用到 visudo 命令到编辑
   [root@localhost ~]# visudo
   xiang localhost=/sbin/ifconfig
   允许用户xiang在本地使用/sbin/ifcofnig
 
  2) 授权wheel 组 不要验证密码可执行所用的命令

   [root@localhost ~]# visudo
   %wheel  ALL=(ALL)   NOPASSWORD: ALL


二:文件和文件系统的安全优化

 1:文件系统层次安全优化

  1) 通过挂载选项禁止执行set位程序,二进制程序

   [root@localhost ~]# vi /etc/fstab
   /dev/sdc1  /var ext3 default,noexec 1 2
   #noexec  禁止执行二进制程序
   #nosuid,nosgid  禁止执行set位程序

  2)锁定不希望更改的系统文件

   [root@localhost ~]# chattr +i /etc/passwd
   [root@localhost ~]# chattr -i /etc/passwd
   [root@localhost ~]# lsattr /etc/passwd             #查看文件夹i节点信息
 
 2:应用程序和服务

  1) 关闭不需要的系统服务
 
  2) 禁止普通用户执行/etc/init.d/目录中的脚本

   [root@localhost ~]# chmod -R 700  /etc/init.d/
 
  3)  禁止普通用户执行控制台程序

   
   控制台程序一搬在:/etc/sucurity/console.apps/ 下面
   如:setup serviceconf halt reboot poweroff  等等

   [root@localhost ~]# cd  /etc/sucurity/console.apps/
   [root@localhost console.apps]#  tar zcvf /etc/conhel.pw.tar.bz2 poweroff halt reboot --remove

  4)  去掉程序文件中的SET-UID 或set-gid 附回权限

   [root@localhost ~]# find / -type f --perm +6000 --exec ls lh {} \;
   [root@localhost ~]# chmod a-s /tmp/hack.vim       #去掉SET-UID 或set-gid 附回权限
   其实可以写一个脚本,去自动查找,去判断 新增的suid/sgid属性的文件 (有时间我写个)


三:系统引导和登录安全优化

 1:开关机安全控制

  1) 调整BIOS 的引导设置

   把第一启动设备 设为当前的硬盘,其它的都设为disabled ,设置BIOS密码和用户密码

  2) 防止用户通过Ctrl+alt+del 热键重启系统
  
   [root@localhost ~]# vi /etc/inittab
   #ca::Ctrl+alt+del: /sbin/shutdown -t3 -r now
  
 2: GRUB引导菜单加密
  
  1)明码加密,这里就不说了,不安全

  2)MD5加密
   [root@localhost ~]#
   [root@localhost ~]# grub-md5-crypt
   Password:
   Retype password:
   $1$VEXJv0$FLQzfiobX5r0qrWg76UI81
   #得到加密的密码:$1$VEXJv0$FLQzfiobX5r0qrWg76UI81
   [root@localhost ~]# vi /boot/grub/grub.conf
    password        --md5   $1$GThDv0$49Fw/QsGcfhH7WPBfzDBn1
    title CentOS (2.6.18-238.el5)
    password        --md5   $1$GThDv0$49Fw/QsGcfhH7WPBfzDBn1
           root (hd0,0)
           kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
           initrd /initrd-2.6.18-238.el5.img

 3:终端及登录控制

  1)即时禁止普通用户登录,在/etc/ 下新建文件 nologin 
   [root@localhost ~]# touch /etc/nologin
   #删除它或重启后正常

  2)控制服务器开放的TTY终端
   [root@localhost ~]# vi /etc/inittab               #掉不用的终端
   1:2345:respawn:/sbin/mingetty tty1
   #2:2345:respawn:/sbin/mingetty tty2
   #3:2345:respawn:/sbin/mingetty tty3
   #4:2345:respawn:/sbin/mingetty tty4
   #5:2345:respawn:/sbin/mingetty tty5
   #6:2345:respawn:/sbin/mingetty tty6

  3)控制ROOt用户登录的终端

   [root@localhost ~]# vi /etc/securetty      #掉不登录的终端
   console
   vc/1
   #vc/2
   tty1
   #tty2
   #tty3

  4)更改系统登录提示,隐藏内核版本信息

   [root@localhost ~]# vi /etc/issue          #去掉    加一些自定义的
   #CentOS release 5.6 (Final)
   #Kernel \r on an \m
   welcome to server 1.0

  5)使用pam_access认证控制用户登录地点

   [root@localhost ~]# vi /etc/pam.d/login     #加上一行
   account    required     pam_access.so

你可能感兴趣的:(linux,系统安全,常规优化)