会员登录 | 会员注册 | 意见建议 | 网站地图

站长资源综合门户

当前位置:首页 > 站长学院 > 服务器 > Linux服务器安全初始化Shell脚本

Linux服务器安全初始化Shell脚本

时间:2012-04-01 18:50:47   作者:   来源:   点击:

下面的这段Linux系统安全Shell脚本用于Linux系统的安全初始化脚本,可以在服务器系统安装完毕之后立即执行以快速建立起服务器的安全防护。最初的脚本由晓辉撰写,在数次修改之后已经大量应用在某大型媒体网站体系中。修改了一些bug,已经在CentOS 5.5 x86_64下通过,目前在一些没有硬件防火墙的服务器上使用。

使用方法:将其复制,保存为一个shell文件,比如security.sh。将其上传到linux服务器上,执行sh security.sh,就可以使用该脚本了。建议大家在系统初始化后立即执行,然后创建了用户帐号和密码后就不要再改动了,以免影响重要文件的初始md5值。

脚本内容(以下内容为了方便阅读,对注释进行了翻译):

#!/bin/sh

# desc: setup linux system security

# author:coralzd

# powered by baidu.tw

# version 0.1.2 written by 2011.05.03

#设置账号

passwd -l xfs

passwd -l news

passwd -l nscd

passwd -l dbus

passwd -l vcsa

passwd -l games

passwd -l nobody

passwd -l avahi

passwd -l haldaemon

passwd -l gopher

passwd -l ftp

passwd -l mailnull

passwd -l pcap

passwd -l mail

passwd -l shutdown

passwd -l halt

passwd -l uucp

passwd -l operator

passwd -l sync

passwd -l adm

passwd -l lp

# 用chattr给用户路径更改属性。chattr命令用法参考文末说明[1]

chattr +i /etc/passwd

chattr +i /etc/shadow

chattr +i /etc/group

chattr +i /etc/gshadow

# 设置密码连续输错3次后锁定5分钟 【Linux公社 Linuxidc】

sed -i ‘s#auth required pam_env#auth required pam_envnauth required pam_tally onerr=fail deny=3 unlock_time=300nauth required /lib/security/$ISA/pam_tally onerr=fail deny=3 unlock_time=300#’ /etc/pam.d/system-auth

# 5分钟后自动登出,原因参考文末说明[2]

echo “TMOUT=300″ >>/etc/profile

# 历史命令记录数设定为10条

sed -i “s/HISTSIZE=1000/HISTSIZE=10/” /etc/profile

# 让以上针对 /etc/profile 的改动立即生效

source /etc/profile

# 在 /etc/sysctl.conf 中启用 syncookie

echo “net.ipv4.tcp_syncookies=1″ >> /etc/sysctl.conf

sysctl -p # exec sysctl.conf enable

# 优化 sshd_config

sed -i “s/#MaxAuthTries 6/MaxAuthTries 6/” /etc/ssh/sshd_config

sed -i ”s/#UseDNS yes/UseDNS no/” /etc/ssh/sshd_config

# 限制重要命令的权限

chmod 700 /bin/ping

chmod 700 /usr/bin/finger

chmod 700 /usr/bin/who

chmod 700 /usr/bin/w

chmod 700 /usr/bin/locate

chmod 700 /usr/bin/whereis

chmod 700 /sbin/ifconfig

chmod 700 /usr/bin/pico

chmod 700 /bin/vi

chmod 700 /usr/bin/which

chmod 700 /usr/bin/gcc

chmod 700 /usr/bin/make

chmod 700 /bin/rpm

# 历史安全

chattr +a /root/.bash_history

chattr +i /root/.bash_history

# 给重要命令写 md5

cat > list << “EOF” &&

/bin/ping

/usr/bin/finger

/usr/bin/who

/usr/bin/w

/usr/bin/locate

/usr/bin/whereis

/sbin/ifconfig

/bin/vi

/usr/bin/vim

/usr/bin/which

/usr/bin/gcc

/usr/bin/make

/bin/rpm

EOF

for i in `cat list`

do

if [ ! -x $i ];then

echo “$i not found,no md5sum!”

else

md5sum $i >> /var/log/`hostname`.log

fi

done

rm -f list

知识点[1]:有关chattr命令

chattr 命令可以修改文件属性,达到保护文件和目录的作用。相比改变文件读写、执行权限的chmod命令,chattr命令可以控制更底层的文件属性。该命令十分强大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多功能不能实现。同样-D检查压缩文件中的错误的功能,需要2.5.19以上内核才能支持。另外,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、 /dev、/tmp、/var目录。

此类属性的查看可以通过lsattr命令完成。

chattr命令的用法:chattr [ -RV ] [ -v version ] [ mode ] files…

最关键的是在[mode]部分,,即文件属性部分。[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的。

+ :在原有参数设定基础上,追加参数。

- :在原有参数设定基础上,移除参数。

= :更新为指定参数设定。

A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。

S:硬盘I/O同步选项,功能类似sync。

分享到:

网友评论

推荐服务器

热门服务器