Linux服务器加固

Posted

tags:

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

一、信息安全防护的目标

*保密性,Confidentiality

*完整性,Integrity

可用性,Usability

可控制性,Controlability

不可否认性,Non-repudiation


二、安全防护环节

物理安全各种设备/主机、机房环境

系统安全主机或设备的操作系统

应用安全各种网络服务、应用程序

网络安全对网络访问的控制、防火墙规则

数据安全信息的备份与恢复、加密解密

管理安全各种保障性的规范、流程、方法

 

网络&系统漏洞检测工具

X-Scan  、 Fluxay流光….

Nessus  OpenVAS

 

三、LINUX系统加固

1、阻止普通用户关机

[[email protected] ~]# cd /etc/security/console.apps/

[[email protected] console.apps]# mkdir -m 700locked

[[email protected] console.apps]# mv halt reboot powerofflocked/

 

2、设置bob用户密码过期时间:

[[email protected] locked]# useradd bob    

[[email protected] locked]# echo 123456 |passwd  --stdin bob    //bob用户设置密码

[[email protected] ~]# chage -m 1 -M 90 -W 5 -I 3 -E 2014-03-15 bob   

//密码最少使用时间为1 天,密码最多使用时间为90天,密码过期警告时间为5天,密码失效后3天锁定帐户,2014315 bob用户过期

[[email protected] ~]#chage  -l bob   //查看bob用户密码有效期信息

 

3、强制alice用户下次登录必须立即修改密码

[[email protected] ~]# chage -d 0 alice     //设置下次alice用户登录时必须改密码

[[email protected] ~]#chage -E2014-05-01 alice  //设置alice用户 201451日该账户过期



4、帐号锁定操作。每步到底做了什么?

/etc/shadow    //密码存放

方法1

[[email protected] ~]# passwd  -l  alice   //锁定用户,用户将不能登录

[[email protected] ~]# passwd  -S  alice  //S查看锁定

[[email protected] ~]# passwd  -u alice   //解锁

     

注意: -f 强制解锁,并更改新密码

方法2:

[[email protected] ~]# usermod  -L alice  锁定

[[email protected] ~]#  usermod -U  alice 解锁

 

5强制定期修改密码

配置文件/etc/login.defs     对新建的用户有效

每新建一个用户都具有以下的配置

主要控制属性

PASS_MAX_DAYS  90    //密码最长使用时间改为90

PASS_MIN_DAYS  1    //密码最少使用时间改为1

PASS_MIN_LEN   5    //密码的最短长度5

PASS_WARN_AGE  5    //密码快到期的警告时间5

 

6、设置最大历史命令条目数

# history     //查看历史命令

# vim /root/.bash_history  //历史命令默认存放在账户家目录.bash_history里,默认存1000

# vim /etc/profile 

HISTSIZE=1000     //在这可修改默认存储历史命令数,一般不修改或改低,记录历史命令容易泄露命令和操作

 

7SUID

 SUID:如果一个命令文件设置了SUID,而且其他用户具有x权限,那么当其他用户在执行命令时,它在执行期间就具备了属主的权限。

1)分别以rootbob用户执行 ls /root有什么结果;改变ls的权限 chmod  4755 /bin/ls,再      用bob执行ls /root有什么结果?为什么

  答:bob没权限打开/root  ,改变ls权限后,bob用户可以打开/root

 

# ll /bin/ls

-rwxr-xr-x.1 root root 117024 1017 2013 /bin/ls

# chmod 4755 /bin/ls

# ll /bin/ls

-rwsr-xr-x. 1 root root 117024 10 17 2013 /bin/ls

 

2)执行chmod  755 /usr/bin/passwd后,bob修改自己的密码,还能修改么?(不能)为什么

3)执行chmod  4755 /bin/touch后,bob创建一个文件,查看文件的属主是谁,为什么会有这样的结果?

      答:属主是root  ,属组是bob 

8/etc/fstab中的defaults是挂载选项,它包含哪些选项。如果把一个目录挂载为只读文件系统

 

9、文件加锁、解锁

EXT3  EXT4的文件属性控制

chattr   +/-  i/a

+     //增加权限

-     //减权限

   //不可变,不可任何人更改只可读

a    //仅可追加

 

/etc/hosts变成绝对只读文件

chattr +i  /etc/hosts    // /etc/hosts 变成绝对只读文件,任何人包括root也无权限写入更改

lsattr /etc/hosts   // 查看/etc/hosts 权限

 

/etc/hosts变成只能追加内容的文件

chattr +a  /etc/hosts    // 仅可追加改动,不可直接更改

echo -e “192.168.10.2\yy.tarena.com\yy” >> /etc/hosts   //仅可追加改动

# chattr +i /etc/passwd   //锁定passwd文件,就不能再添加用户了

 


引导和登录控制

10、允许启用哪些tty终端

配置文件/etc/sysconfig/init

ACTIVE_CONSOLES=/dev/tty[1-6]   //默认1-6, 可以改成1-3  2-5  等等

 

立即禁止普通用户登录

touch  /etc/nologin    // /etc下创建一个nologin空文件就OK,就能禁止普通用户登录

rm -rf  /etc/nologin    //删掉nologin空文件,普通用户就可以登录了

 

只允许root从指定的几个终端登录

配置文件/etc/securetty    //不想root从那个终端登录,就删掉那个终端

 

11、防止系统版本信息泄漏

vim /etc/issue    //物理访问服务器的时候,防止系统版本泄露,可以把里面内容改掉


vim /etc/issue.net    // Telnet 网络连接时,把显示系统版本信息更改掉   防泄露

 

12、禁止Ctrl+Alt+Del重启

[[email protected] ~]# vim/etc/init/control-alt-delete.conf 1

# start on control-alt-delete

exec /sbin/shutdown -r now .. ..

 

13grub加密码   (  限制在启动时改grub参数进入单用户模式   )

[[email protected] ~]# grub-md5-crypt     //grub引导加md5加密密码

Password:

Retype password:

$1$tt3gH1$8nZtL70J/Gv/dAaUm/1      //md5grub引导生成的加密密码,然后把这个密码写在/boot/grub/grub.conf 配置文件里

 

[[email protected] ~]# vim/boot/grub/grub.conf  

default=0    //系统启动顺序0代表最先启动,要是双系统或多系统,0的系统会成为默认启动

timeout=20    //要是多个系统情况下,在20秒内用户没有干扰,那么默认启动0那个系统

password--md5  $1$tt3gH1$8nZtL70J/Gv/dAaUm/1   //grub引导加密码,放在title 上面那么也等于给单用户模式加了密码,放在title 下面是单独给该系统加密   

splashimage=(hd0,0)/grub/splash.xpm.gz       //背景图片,不用管

hiddenmenu

title Red Hat Enterprise Linux (2.6.32-358.el6.x86_64)

  root (hd0,0)                        //内核文件所在分区

  kernel /vmlinuz-2.6.32-358.el6.x86_64  ro.. ..// kernel指定内核,ro代表以只读方式启动

  initrd /initramfs-2.6.32-358.el6.x86_64.img   //初始化内存盘在什么位置

 

 

title windows 7            //双系统给win 7写的启动顺序

   rootnoverify (hd0,2)

   makeactive

   chainloader +1

 

14用户切换与提权

su   创建非登陆shell (只切换用户,不切换环境变量)

su - 创建登陆shell    (切换用户,同时切换环境变量)

 

14.1sudo    授权普通用户命令

管理员需要让tomalice管理用户的创建、删除、修改、设置密码操作。但是又不能把root密码告诉他们。

 

里面直接加入:

# visudo    // vi 打开sudo ,好处是会做语法检查,提示错误

User_Alias USERADMINS = tom, alice

Cmnd_Alias USEROP = /usr/sbin/useradd,/usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd....

USERADMINS      ALL=(ALL)       USEROP

 

[[email protected] ~]# su - tom

[[email protected] ~]$ sudo useradd zhangsan   //命令前加sudo就能调用

[[email protected] ~]$  sudo  -l         //tom可通过sudo -l查看自己能使用那些命令

 

解释:   

User_Alias(为固定格式)   USERADMINS(自己起别名) = tom,alice  (这两个用户属于USERADMINS )

Cmnd_Alias(为固定格式)   USEROP(自己起得别名)=后边的命令都属于 USEROP这个别名,(用which查询命令的绝对路径)

USERADMINS(这里边的用户)  ALL=(ALL)   USEROP(可以执行这里变命令)USERADMINS的人可以执行USEROP的命令


注意:

98  root    ALL=(ALL)         ALL 

99  tom     ALL=(ALL)       ALL  //tom用户可以在所有机器上以管理员的身份执行

        

所有命令,只要在前面加个sudo并输入tom密码就可以了,可是这样不安全,不建议这样设置 因为管理员能干的事情tom都能干了


技术分享

 

15、初始化操作系统

# touch  /.unconfigured    ///下建立.unconfigured 然后重启,会初始化系统一些参数配置

# reboot

 

查看运行级别

# who -r

运行级别 52014-03-22 18:01

 

开启或关闭服务级别

ntsysv - -level  35   //开启或关闭35级别

ntsysv - -level  235   //开启或关闭235级别

 

设置绝对只读            //任何人都没有写权限

chattr  +i  /etc/shadow   //任何人都没有写权限,不能改变该文件

chattr -i  /etc/shadow    //撤销只读

 

lsattr /etc/shadow   查看该目录权限

 

chattr +a  /etc/shadow    //仅可追加写入    不能直接更改

                                           

unix2dos  dos2unix      //两个命令的 文本换行命令

 

其它:

1工作环境中(为了安全起见)                 

重启时最好用:showdown -r now                 

删除用户时不要加-r userdel  user01                     

2将上个命令替换为另一个命令                    

如:                                                                         

# ls /etc/sysconfig/network-scripts/ifcfg-eth0         

# ^ls^vim     相当于 #vim /etc/sysconfig/network-scripts/ifcfg-eth0              

3vim 里:大写C→从光标处,删除到行尾,并且进入编辑模式

 

维护服务器时,最好用一个普通用户登录,因为root用户权限太大,防止误操作


本文出自 “Dave-技术博客” 博客,请务必保留此出处http://davewang.blog.51cto.com/6974997/1859211

以上是关于Linux服务器加固的主要内容,如果未能解决你的问题,请参考以下文章

服务器安全加固_Linux配置账户锁定策略

备忘:Linux服务器安全加固手册

Linux服务器通用安全加固指南

Linux服务器系统安全加固(centos7系列)

Linux 服务器安全加固

Linux一键加固自动化脚本,合适自己才是最好的