服务器加固(安全篇)

 前言:针对最近越来越多的安全事件曝光,服务器的安全问题浮出水面,这里介绍一些小的安全技巧,帮助加固服务器。

 注意:再高超的安全技术手段也比不了良好的安全意识!

一、信息安全防护的目标


保密性,Confidentiality

完整性,Integrity

可用性,Usability

可控制性,Controlability

不可否认性,Non-repudiation


二、安全防护环节


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

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

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

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

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

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


三、LINUX系统加固


1、阻止普通用户关机


[root@svr1 ~]# cd /etc/security/console.apps/

[root@svr1 console.apps]# mkdir -m 700 locked

[root@svr1 console.apps]# mv poweroff locked/


2、设置普通用户密码各个时间:


[root@localhost ~]# chage -m 1 -M 90 -W 5 -I 3 -E 2014-03-15 bob


-m密码最短有效时间

-M最长

-W:警告waring

-I:不活跃时间inactive

-E:失效时间 expire

设置普通用户下一次登陆必须改密码

[root@localhost ~]# chage -d 0 alice


3、清理非登录账号


删除冗余账号  ;

/sbin/nologin,禁止登录shell


4、帐号锁定操作

[root@localhost ~]# passwd  -l  alice  

[root@localhost ~]# passwd  -S  alice

[root@localhost ~]# passwd  -u  alice

[root@localhost ~]# usermod  -L  alice

[root@localhost ~]#  usermod  -U  alice


-l:锁定、-u解锁、-S查看状态、

-L:usermod下的锁定;

U:usermod的解锁


5、配置文件/etc/login.defs


对新建的用户有效


主要控制属性

PASS_MAX_DAYS

PASS_MIN_DAYS

PASS_WARN_AGE


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


# vim /etc/profile  ->改HISTSIZE参数

HISTSIZE


7、文件系统规划及挂载

mount挂载选项

-o noexec :不可执行

-o nosuid  :

SUID:如果一个可执行文件对于所有用户有x权限。而且设置了suid


,那么给文件在执行期间就具有了属主的的权限




8、合理挂载文件系统

/etc/fstab中的defaults是挂载选项,


可以添加ro(只读)等限制



9、文件加锁、解锁

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

chattr +I /etc/hosts

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

chattr +a /etc/hosts

chattr   +/-   i/a

lsattr  /etc/hosts


+a:追加

+i:只读(一成不变的)

(change attribute + immutable)

(change attribute + append only)


10、tty终端控制


配置文件 /etc/sysconfig/init


ACTIVE_CONSOLES=/dev/tty[1-6]//默认允许使用


1-6个tty终端


立即禁止普通用户登录


#touch /etc/nologin//默认是没有这个文件的,创建一个


空文件之后,普通用


户是无法登陆的


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


配置文件 /etc/securetty


11、伪装终端登陆提示,防止系统版本信息泄漏


#vim  /etc/issue//本地登陆提示信息



/etc/issue.net//网络登陆提示信息,如


telnet


12、禁止Ctrl+Alt+Del重启


配置文件:/etc/init/control-alt-delete.conf


[root@svr1 ~]# vim /etc/init/control-alt-delete.conf


# start on control-alt-delete//注释掉此行即可


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


13、GRUB引导控制


引导设密的作用:

-- 限制修改启动参数

-- 限制进入系统


密码设置方法:


-- passwd --md5 加密的密码串

-- 或者,passwd 明文密码串


[root@svr1 ~]# grub-md5-crypt//生成MD5加密的密码串


[root@svr1 ~]# vim /boot/grub/grub.conf

default=0

timeout=3

password --md5 $1$tt3gH1$8nZtL70J/Gv/dAaUm/1

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

       root (hd0,0)

       kernel /vmlinuz-2.6.32-358.el6.x86_64  .. ..

       initrd /initramfs-2.6.32-358.el6.x86_64.img


14、sudo


管理员需要让tom和Alice管理用户的创建、删除、修改、设置密码操


作。但是又不能把root密码告诉他们。


# visudo#建议用visudo命令,因为有语法检查;也可以


用vim 编辑/etc/sudoers


User_Alias USERADMINS = tom, alice

Cmnd_Alias USEROP = /usr/sbin/useradd, /usr/sbin/userdel,


/usr/sbin/usermod, /usr/bin/passwd

USERADMINS      ALL=(ALL)       USEROP


# su  -  tom

# sudo useradd zhangsan



15、初始化操作系统


# touch  /.unconfigured    #重启之后系统会要求你重新修改密


码,配置ip地址

# reboot

#重启之后/.unconfigured文


件会消失

16、安全使用程序和服务


禁用非必要的系统服务


#ntsysv


关闭像NetworkManager这样的系统服务


或者用chkconfig


# chkconfig  NetworkManager  off

17.tty终端控制

允许启用哪些tty终端
配置文件:/etc/sysconfig/init
ACTIVE_CONSOLES=/dev/tty[1-6]

立即禁止普通用户登录
编辑/etc/nologin,把需要禁止的用户名写进去;
注意文件默认是不存在的,需要手动创建

只允许root从指定的几个终端登录
配置文件:/etc/securetty

18.伪装终端登录提示

配置文件:/etc/issue . /etc/issue.net

避免泄漏系统和内核信息

19.利用pam机制:

例一:只有wheel组的成员才可以切换成root用户
# vim /etc/pam.d/su   ->打开auth  required  这行的注释
以tom身份登陆,执行su –操作,即使输入正确的root密码,也不能登陆
# usermod  -aG  wheel  tom   ->把tom加入到wheel组

再次执行su –操作,tom可以切换成root用户

例二:禁止tom从tty2登陆
# vim  /etc/pam.d/login ,加入下面一行
account    required     pam_access.so

# vim /etc/security/access.conf ,尾部增加
- : tom : tty2

例三:只允许tom用户打开两个文件
查看/etc/pam.d/system-auth中包含
session     required      pam_limits.so

# vim /etc/security/limits.conf ,尾部增加
tom        hard        nofile        2
不管是切换成为tom,还是以tom身份登陆 ,都被禁止。

例四:创建文件/etc/vsftpd/ftpgrps,该文件中的组不能访问ftp
 groupadd  denyftp
#  usermod  -aG denyftp  tom
#  echo ‘denyftp’  > /etc/vsftpd/ftpgrps
#  vim  /etc/pam.d/vsftpd  ,尾部增加
auth       required     pam_listfile.so item=group sense=deny file=/etc/vsftpd/ftpgrps onerr=succeed
验证,tom登陆ftp,登陆不成功,检查/var/log/secure日志