您的位置:首页 > 运维架构 > Linux

Linux系统安全基础应用(一) -- 理论部分

2013-10-19 22:14 891 查看
[系统账号清理]
将非登录用户的Shell设为/sbin/nologin
如bin,daemon,adm,lp,mail,nobody,apache,mysql,dbus,ftp,gdm,haldaemon等

锁定长期不使用的账号
usermod -L abc //锁定账号

usermod -U abc //解锁账号

passwd -S //查看账号状态

删除无用的账号
如new,uucp,games,gopher等

锁定账号文件passwd、shadow
chattr +i /etc/passwd /etc/shadow //锁定文件

chattr -i /etc/passwd /etc/shadow //解锁文件

lsattr /etc/passwd /etc/shadow //查看锁定状态





[密码安全控制]
设置密码有效期
[root@steven ~]# vi /etc/login.defs   #适用于新建的用户
……
PASS_MAX_DAYS    30
[root@steven ~]# chage -M 30 lisi     #使用于已有的lisi用户


要求用户下次登录时修改密码

[root@steven ~]# chage -d 0 zhangsan  #强制在下次登录时更改密码


[命令历史限制]
减少记录的命令条数
[root@steven ~]# vi /etc/profile
……
HISTSIZE=200         #适用于新登录用户
export HISTSIZE=200  #适用于当前用户
注销时自动清空命令历史
[root@steven ~]# vi ~/.bash_logout
……
history -c
clear


[终端自动注销]
闲置600秒后自动注销
[root@steven ~]# vi ~/.bash_profile
……
export TMOUT=600


[su用途及用法]
用途:Substitute User,切换用户

格式:su - 目标用户

"-"等同于"--login"或"-l",表示切换后进入目标用户的登录shell环境

密码验证
root → 任意用户, 不验证密码

普通用户 → 其他用户,验证目标用户的密码








限制使用su命令的用户
启用pam_wheel认证模块

[root@steven ~]# vim /etc/pam.d/su
#%PAM-1.0
auth        required    pam_wheel.so use_uid
将允许使用su命令的用户加入wheel组

[root@steven ~]# gpasswd -a abc wheel
Adding user abc group wheel


查看su操作记录
安全日志文件:/var/log/secure

[sudo用途及用法]
用途:以其他用户身份(如root)执行授权的命令

用法:sudo 授权命令

密码验证
初次执行sudo命令时,验证当前用户的密码

不需验证目标用户的密码

配置sudo授权
visudo 或者 vi /etc/sudoers

记录格式:用户 主机名列表=命令程序列表

[root@steven ~]# visudo
……
%wheel        ALL=NOPASSWD: ALL
jerry         localhost=/sbin/ifconfig
#支持“*”通配,“!”取反
syriane       localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route
#支持命令别名,类似别名还包括:User_Alias、Host_Alias
Cmnd_Alias    PKGTOOLS=/bin/rpm,/usr/bin/yum
mike          localhost=PKGTOOLS


查看sudo操作记录
需启用 Defaults logfile 配置

默认日志文件:/var/log/sudo

[root@steven ~]# visudo
……
Defaults logfile = "/var/log/sudo"


查询授权的sudo操作
sudo -l
[abc@steven ~]$ sudo -l
[sudo] password for syrianer:    #初次使用sudo时需验证当前用户的密码
……
User syrianer may run the following commands on this host:
(root) /sbin/*, (root) !/sbin/ifconfig, (root) !/sbin/route
#默认超时为5分钟,在此期间不再重复验证
[abc@steven ~]$ sudo /sbin/fdisk -l
……
Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14       10443    83778975   8e  Linux LVM


[开关机安全控制]
调整BIOS引导设置
将第一引导设备设为当前系统所在硬盘

禁止从其他设备(光盘、U盘、网络)引导系统

将安全级别设为setup,并设置管理员密码

禁用重启热键Ctrl+Alt+Del
避免因用户误操作导致重启

[root@steven ~]# vi /etc/inittab
……
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
[root@steven ~]# init q   #重新读取配置


GRUB菜单限制
未经授权禁止修改启动参数

未经授权禁止进入指定系统

密码设置方式(grub.conf)
password 明文密码串

password --md5 加密密码串

密码记录的位置
全局部分(第一个“title”之前)

系统引导部分(每个“title”部分之后)

GRUB限制的实现
使用grub-md5-crypt获得加密字串
[root@steven ~]# grub-md5-crypt
Password:
Retype password:
$1$Kndw50$wRW2w1v/jbZ8n5q2fON4y/


修改grub.conf文件,添加密码记录
[root@steven ~]# vi /boot/grub/grub.conf
……
password --md5 $1$Kndw50$wRW2w1v/jbZ8n5q2fON4y/
title Red Hat Enterprise Linux Server (2.6.18-194.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-194.el5.img


修改系统登录提示
本机登录提示:/etc/issue

网络登录提示:/etc/issue.net

减少开放终端个数
[root@steven ~]# vi /etc/inittab
……
#禁用三个终端:tty1、tty2、tty3
# Run gettys in standard runlevels
#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
[root@steven ~]# init q


限制root只在安全终端登录
安全终端配置:/etc/securetty

[root@steven ~]# vi /etc/securetty
……
#禁止root用户从终端tty5、tty6登录
tty1
tty2
tty3
tty4
#tty5
#tty6


禁止普通用户登录
建立/etc/nologin文件

删除nologin文件或重启后即恢复正常

[root@steven ~]# touch /etc/nologin  #禁止普通用户登录
[root@steven ~]# rm -rf /etc/nologin  #取消上述登录限制
本文出自 “steven丶部落格” 博客,请务必保留此出处http://stevensj.blog.51cto.com/8011491/1311373
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: