首页 > 代码库 > 全面inux主机安全配置详解--系统OS安全(第一部分)

全面inux主机安全配置详解--系统OS安全(第一部分)

Linux主机安全配置详解  

系统安全分为:

第一部分:

BIOS密码,更改合适启动选项(禁止改bios/禁止更改第一启动选项,防止恶意的引导)

GRUB密码

系统密码(密码策略)

分区加密

第二部分:

最小权限法(su/sudo)

最小服务法

文件安全(suid/sgid/stick/chattr)

pam模块的使用

升级系统和软件


系统安全:

BIOS密码(bios/cmos)

调整BIOS引导设置

修改启动顺序,正确做法:第一启选项为磁盘

设置管理密码

禁用Ctrl+Alt+Del重启热键

RHEL5:

# vim /etc/inittab

 32 #ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# init q--让更改的配置马上生效,不需要重启服务器。


RHEL6:

# vim /etc/init/control-alt-delete.conf --注释以下两行

#start on control-alt-delete

#exec /sbin/shutdown -r now "Control-Alt-Delete pressed"

# init q


GRUB密码

--加密引导菜单的作用:修改启动参数时需要验证密码


--进入所选择的系统前需要验证密码

在grub.conf文件中设置密码的方式

password  明文密码串

password  --md5  加密密码串


密码设置行的位置

全局部分(第一个“title”之前)

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


# grub-md5-crypt

$1$Qq15d$bEjy8VeMCrNcIJCEESqyY/


# vim /boot/grub/grub.conf

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

password --md5 $1$Qq15d$bEjy8VeMCrNcIJCEESqyY/--修改启动菜单时需要输入此密码

title Red Hat Enterprise Linux Server (2.6.18-8.el5)

        password 123456--启动某个系统时需要输入的密码,一般不设置

        root (hd0,0)

        ……




系统策略(密码策略)

1.检查系统中有无空密码账号:

# awk -F: ‘($2 == "") {print}‘ /etc/shadow

#  awk -F: ‘($2 == "") {print}‘ /etc/passwd


2.检查系统中有无多余的管理员账号:

# awk -F: ‘($3 == "0") {print}‘ /etc/passwd


3.设置账号的属性:


账号的过期时间设置:

# usermod -e 2012-10-1 u01--修改一个已经存在的账号的过期时间 

# useradd -e 2012-10-1 02--在新建用户时指定过期时间


# chage -M 30 -m 7 -W 7 -I 3 userName

# chage -d 0 userName

-M多长时间改一次密码

-m修改密码的最小间隔

-W密码过期警告时间

-I密码过期延时时间

-d定义最一次修改密码的时间,-d 0从来都没改过密码,所以第一次登录时需要修改密码


4.检查程序用户的登录Shell是否异常

# awk -F: ‘$7!="/sbin/nologin" {print $1,$7}‘ /etc/passwd  


5.减少记录命令历史的条数

环境变量 HISTSIZE

# vim /etc/profile

HISTSIZE=50


6.设置在命令行界面中超时自动注销(shell的超时时间)

 环境变量 TMOUT

# vim /etc/profile

TMOUT=300


7、记录用户的每个命令操作(录屏):

# vim /etc/profile

exec /usr/bin/script -t 2>/tmp/$USER-$UID-`date +%Y%m%d%H%M`.date  -a -f -q /tmp/$USER-$UID-`date +%Y%m%d%H%M`.log



# last--查看所有用户在线的情况

# lastlog--查看用户最后一次登录的时间

/var/log/wtmp


# lastb--查看用户登录失败记录

# /var/log/secure--跟验证相关的日志信息在记录在此文件



给一个已经存在的分区加密( i/o-->disk-->partion-->crypt-->logic_partion(ext3))

1.进入单用户模式

telinit 1


2.Cpoy data and unmount your existing /home: 

cp -a /home/* /backup

umount /home


3.如何无法卸载,可以使用强制杀死访问这个分区程序,然后再次卸载:

fuser -mvk /home


4.确认分区是否还被挂载着:

grep home /proc/mounts


5.给分区设置加密(加密的分区是无法访问的)

# rpm -q cryptsetup-luks--确认加密工具是否已经安装

# cryptsetup --verbose --verify-passphrase luksFormat /dev/VG00/LV_home

YES--回答大写的yes,这一步会把分区原来所有的数据全部清空


6.给加密分区设置映射名称: 

cryptsetup luksOpen /dev/VG00/LV_home home


7.映射设备存放的路径:/dev/mapper/home 

ls -l /dev/mapper | grep home


8.格式化分区

mkfs.ext3 /dev/mapper/home


9.挂载分区 

mount /dev/mapper/home /home


10.Make sure the file system is visible: 

df -h | grep home



实现加密分区的自动挂载:

# vim /etc/crypttab

xxx/home/mapper/GLSvg-lv_home/root/.password

映射设备原始设备加密密码


# vim /root/.password--输入假密码,不需要写真密码,提高安全性

uplooking

# chmod 600 /root/.password


# cryptsetup luksAddKey /dev/mapper/GLSvg-lv_home /root/.password--告知设备密码验证文件存储路径

Enter any LUKS passphrase: 

Verify passphrase: 

key slot 0 unlocked.

Command successful.


# vim /etc/fstab

/dev/mapper/xxx /mnt ext3 defaults 1 2


# reboot--检验一下是否能够开机自动挂载


本文出自 “运维!解放!” 博客,谢绝转载!