针对最近越来越多的安全事件曝光,服务器的安全问题浮出水面,这里介绍总结一些小的安全技巧,帮助加固服务器。
注意:再高超的安全技术手段也比不了良好的安全意识!
一、信息安全防护的目标
- 保密性,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、设置普通用户密码各个时间:
-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变成绝对只读文件
把/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
- [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
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 ,尾部增加