服务器加固(安全篇)
前言:针对最近越来越多的安全事件曝光,服务器的安全问题浮出水面,这里介绍一些小的安全技巧,帮助加固服务器。
注意:再高超的安全技术手段也比不了良好的安全意识!
一、信息安全防护的目标
保密性,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日志
本文转自Jx战壕 51CTO博客,原文链接:http://blog.51cto.com/xujpxm/1397476 ,如需转载请自行联系原作者