linux 主机安全
- 格式:doc
- 大小:93.00 KB
- 文档页数:17
Linux 主机安全安全物理安全软件安全(kernel+softwares)网络安全系统安全BIOS密码,更改合适启动选项(禁止改bios/禁止更改第一启动选项,防止恶意的引导)GRUB密码系统密码(密码策略)分区加密最小权限法(su/sudo)最小服务法文件安全(suid/sgid/stick/chattr)pam模块的使用升级系统和软件网络安全tcpwrappersiptablesSSHVPNSELINUX入侵检测(AIDE/rootkit)系统安全:一、BIOS密码(bios/cmos)调整BIOS引导设置修改启动顺序,正确做法:第一启动选项为磁盘开机-->一直按着delete-->Boot-->Boot Device priority-->"1st Boot Device [STA T:......]"设置管理密码开机-->一直按着delete-->Boot-->Security-->.......................禁用Ctrl+Alt+Del重启热键RHEL5: --注释32行# vim /etc/inittab32 #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密码两重密码:1.修改菜单的密码2. 引导密码--加密引导菜单的作用:修改启动参数时需要验证密码--进入所选择的系统前需要验证密码在grub.conf文件中设置密码的方式password 明文密码串password --md5 加密密码串密码设置行的位置全局部分(第一个“title”之前)系统引导参数部分(每个“title”部分之后)# grub-md5-crypt -----先生成密文密码$1$Qq15d$bEjy8VeMCrNcIJCEESqyY/# vim /boot/grub/grub.confdefault=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzpassword --md5 $1$Qq15d$bEjy8VeMCrNcIJCEESqyY/ --修改启动菜单时需要输入此密码title Red Hat Enterprise Linux Server (2.6.18-8.el5)password 123456 --启动某个系统时需要输入的密码,一般不设置root (hd0,0)……系统策略(密码策略)1.检查系统中有无空密码账号:测试:创建一个u01帐号,无密码,去passwd以及shadow文件中删掉密码进行测试# awk -F: '($2 == "") {print}' /etc/shadowu01::16093:0:99999:7:::# awk -F: '($2 == "") {print}' /etc/passwdu01::502:503::/home/u01:/bin/bash2.检查系统中有无多余的管理员账号(管理员的uid为0):# awk -F: '($3 == "0") {print}' /etc/passwd3.设置账号的属性:账号的过期时间设置:# 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/passwdroot /bin/bashsync /bin/syncshutdown /sbin/shutdownhalt /sbin/haltmysql /bin/bashuser01 /bin/bashuser02 /bin/bash5.减少记录命令历史的条数环境变量HISTSIZE# vim /etc/profileHISTSIZE=506.设置在命令行界面中超时自动注销(shell的超时时间)环境变量TMOUT# vim /etc/profileTMOUT=3007、记录用户的每个命令操作(录屏):# vim /etc/profileexec /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`.logexec:后面的内容强制在当前shell执行在0.182上执行这条命令,在客户机0.181上ssh一个普通用户登录上来,在0.182上的/tmp 下:# tail -f aa-504-201401231832.logScript started on 2014年01月23日星期四18时32分19秒那么在0.181上面的操作都会同步到0.182的这个终端上面。
8、查看用户登录情况(ssh上来的境况)# last --查看所有用户在线的情况-i 不做反解,可以看到IP ,对应的是/var/log/wtmp# lastlog --查看用户最后一次登录的时间对应的是/var/log/lastlog# lastb --查看用户登录失败记录对应的是/var/log/btmplastb -i -a ---->不做反解,并把IP放在最后面一列,方便截取在子节点中写了一个有关lastb ssh 被暴力破解btmp# /var/log/secure --跟验证相关的日志信息在记录在此文件给一个已经存在的分区加密(i/o-->disk-->partion-->crypt-->logic_partion(ext3))简单的做法就是自己创建一个新的分区拿来做测试,这样就不会弄坏机器# fdisk -cu /dev/sda# partx -a /dev/sda --------刷新分区表# ls /dev/sda*/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4 /dev/sda5# rpm -q cryptsetup-lukscryptsetup-luks-1.2.0-7.el6.x86_64# cryptsetup --help-v, --verbose Shows more detailed error messages-y, --verify-passphrase V erifies the passphrase by asking for it twice luksFormat <device> [<new key file>] - formats a LUKS deviceluksOpen <device> <name> - open LUKS device as mapping <name> luksAddKey <device> [<new key file>] - add key to LUKS device<key file> optional key file for the new key for luksAddKey action# cryptsetup --verbose --verify-passphrase luksFormat /dev/sda5WARNING!========This will overwrite data on /dev/sda5 irrevocably.Are you sure? (Type uppercase yes): YESEnter LUKS passphrase:Verify passphrase:Command successful.# cryptsetup luksOpen /dev/sda5 chenEnter passphrase for /dev/sda5:# ls /dev/mapper/chen/dev/mapper/chen# mkfs.ext4 /dev/mapper/chen# mkdir /chen# mount /dev/mapper/chen /chen/[root@mail Desktop]# df -h | grep chen/dev/mapper/chen 1006M 18M 938M 2% /chen# vim /etc/crypttabchen /dev/sda5 /root/.password# vim /root/.password# cat /root/.passwordredhat# chmod 600 /root/.password# cryptsetup luksAddKey /dev/sda5 /root/.passwordEnter any passphrase:# vim /etc/fstab/dev/mapper/chen /chen ext4 defaults 0 0# reboot# df -h | grep chen/dev/mapper/chen 1006M 18M 938M 2% /chen# cryptsetup --help | grep Close ------这个是关闭,不用的时候就关掉这个分区,这样就需要密码来访问luksClose <name> - remove LUKS mapping1.进入单用户模式telinit 12.Cpoy data and unmount your existing /home:cp -a /home/* /backupumount /home3.如何无法卸载,可以使用强制杀死访问这个分区程序,然后再次卸载:fuser -mvk /home4.确认分区是否还被挂载着:grep home /proc/mounts5.给分区设置加密(加密的分区是无法访问的)# rpm -q cryptsetup-luks --确认加密工具是否已经安装# cryptsetup --verbose --verify-passphrase luksFormat /dev/VG00/LV_homeYES --回答大写的yes,这一步会把分区原来所有的数据全部清空6.给加密分区设置映射名称:cryptsetup luksOpen /dev/VG00/LV_home home ----随意名字7.映射设备存放的路径:/dev/mapper/homels -l /dev/mapper | grep home8.格式化分区mkfs.ext3 /dev/mapper/home9.挂载分区mount /dev/mapper/home /home10.Make sure the file system is visible:df -h | grep home实现加密分区的自动挂载:# vim /etc/crypttabxxx /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 --检验一下是否能够开机自动挂载最小服务法关闭不需要的服务:# vim /root/service.sh#!/bin/bashservice xinetd stopchkconfig xinetd offservices="network sshd syslog lvm2-monitor messagebus sendmail crond gpm anacron auditd haldaemon irqbalance avahi-daemon"offservices=`chkconfig --list |grep 0: | awk '{print $1}'` ------找出所有服务for i in $offservicesdochkconfig $i off -------先关闭所有服务donefor i in $servicesdochkconfig $i on -------再开启我们需要的服务donereboot禁止普通用户执行init.d目录中的脚本# chmod -R o=- /etc/rc.d/init.deg:# chmod o=- /var/tmp/aa/ -R# ll总用量4drwxr-x---. 2 root root 4096 1月24 10:13 aa文件安全(suid/sgid/stick/chattr) 分区安全需要独立划分分区的目录(分区的原则:所有用户都能写的,建议分区;读或写频繁地,建议分区)://bootswap/usr或/opt/home/var and /var/tmp/tmp装系统之前分出这两个分区,到时可以拿来做挂载点/data ------重要数据可以放在这里/bak ------备份挂载关键选项(针对所有人的分区):1. noexec --所有的二进制命令在此分区都无法运行,脚本也无法运行,可以考虑用来存放数据。