“sauce”通过精心收集,向本站投稿了7篇Linux服务器安全初始化Shell脚本linux服务器应用,以下是小编整理后的Linux服务器安全初始化Shell脚本linux服务器应用,欢迎阅读分享,希望对大家有帮助。
- 目录
篇1:Linux服务器安全初始化Shell脚本linux服务器应用
下面的这段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 www.baidu.org.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公社 www.Linuxidc.com 】
sed -i 's#auth required pam_env.so#auth required pam_env.sonauth required pam_tally.so onerr=fail deny=3 unlock_time=300nauth required /lib/security/$ISA/pam_tally.so nerr=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。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文 件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion.
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。
应用实例:
1、用chattr命令防止系统中某个关键文件被修改
# chattr +i /etc/fstab
然后试一下rm mv rename等命令操作于该文件,都是得到Operation not permitted 的结果
2、让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作
# chattr +a /data1/user_act.log
知识点[2]:为何要设置5分钟后自动登出
由于客户的维护人员常常登陆上去后通过直接关闭TERM端口非法退出telnet,造成系统的pts进程越来越多,一个月下来竟然近百,当进程过多的时候系统就会产生报警。规范操作应该是用exit或者ctrl+D,但是其他人并不这样操作,所以我们定义了echo “TMOUT=300” >>/etc/profile这一项内容,是让服务器自动剔除300秒没有任何动作的客户端。当然了这一项大家可以根据实际需求而决定是否添加。
篇2:Linux服务器初始化安装后的优化linux服务器应用
我们的Linux服务器并不是安装完成后就可直接托管到机房了,
而是需要进行一系列的优化配置和安全配置等
1,关闭不需要的服务
这个应该很容易理解的,凡是我们的系统不需要的服务,一概关闭,
这样一个好处是减少内存和CPU时间的占用,另一个好处相对可以提高安全性
那么哪些服务是肯定要保留的呢?
在Linux机器上通常有四项服务是必须保留的
iptables
linux下强大的防火墙,只要机器需要连到网上,哪里离得开它
network
linux机器的网络,如果不上网可以关闭,只要上网当然要打开它
sshd
这是openssh server,如果你的机器不是本地操作,而是托管到IDC机房,
那么访问机器时需要通过这个sshd服务进行
syslog
这是linux系统的日志系统,必须要有,
否则机器出现问题时会找不到原因
除了这四项必需的服务之外,其他的服务需要保留哪些呢?
这时就可以根据系统的用途而定,比如:数据库服务器,就需要启用mysqld(或oracle)
web服务器,就需要启用apache
2,关闭不需要的tty
请编辑你的/etc/inittab
找到如下一段:
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 这段命令使init为你打开了6个控制台,分别可以用alt+f1到alt+f6进行访问
此6个控制台默认都驻留在内存中,事实上没有必要使用这么多的
你用ps auxf这个命令可以看到,是六个进程
root3004 0.0 0.0 1892 412 tty1 Ss+ Jun29 0:00 /sbin/mingetty tty1
root3037 0.0 0.0 2492 412 tty2 Ss+ Jun29 0:00 /sbin/mingetty tty2
root3038 0.0 0.0 2308 412 tty3 Ss+ Jun29 0:00 /sbin/mingetty tty3
root3051 0.0 0.0 1812 412 tty4 Ss+ Jun29 0:00 /sbin/mingetty tty4
root3056 0.0 0.0 2116 412 tty5 Ss+ Jun29 0:00 /sbin/mingetty tty5
root3117 0.0 0.0 2396 412 tty6 Ss+ Jun29 0:00 /sbin/mingetty tty6 如何关闭这些进程?
通常我们保留前2个控制台就可以了,
把后面4个用#注释掉就可以了
然后无需重启机器,只需要执行 init q 这个命令即可
init q
q作为参数的含义:重新执行/etc/inittab中的命令
3,如何关闭ipv6?
ipv6目前我们还不需要,但系统安装完成后它会作为模块常驻核心,没有必要,
可以用这个步骤来关闭它:
首先编辑网络配置文件:
vi /etc/sysconfig/network
修改
NETWORKING_IPV6=yes
为
NETWORKING_IPV6=no
然后关闭其模块:vi /etc/modprobe.conf
在文件中添加以下两行
alias net-pf-10 off
alias ipv6 off
修改完成后需重启机器使之生效4,如何关闭atime?
一个linux文件默认有3个时间:
atime:对此文件的访问时间
ctime:此文件inode发生变化的时间
mtime:此文件的修改时间
如果有多个小文件时通常没有必要记录文件的访问时间,
这样可以减少磁盘的io,比如web服务器的页面上有多个小图片
如何进行设置呢?
修改文件系统的配置文件:vi /etc/fstab
在包含大量小文件的分区中使用noatime,nodiratime两项
例如:
/dev/md5 /data/pics1 ext3 noatime,nodiratime 0 0
这样文件被访问时就不会再产生写磁盘的io
5,一定要让你的服务器运行在level 3上
做法:
vi /etc/inittab
id:3:initdefault:
让服务器运行X是没有必要的
6,优化sshd
X11Forwarding no //不进行x图形的转发
UseDNS no //不对IP地址做反向的解析
7,优化shell
修改命令history记录
# vi /etc/profile
找到 HISTSIZE=1000 改为 HISTSIZE=100
然后 source /etc/profile
篇3:shell脚本加密脚本安全
第一种方法(gzexe):
这种加密方式不是非常保险的方法,但是能够满足一般的加密用途,可以隐蔽脚本中的密码等信息,
它是使用系统自带的gzexe程序,它不但加密,同时压缩文件。
使用方法:
gzexe file.sh
它会把原来没有加密的文件备份为 file.sh~ ,同时 file.sh 即被变成加密文件;
第二种方法(shc):
使用 shc 对 Linux shell 脚本加密.
shc是一个专业的加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件,这个办法很好的解决了脚本中含有IP、密码等不希望公开的问题.
shc的下载地址:
点击下载
安装:
tar xzvf shc-3.8.6.tgz
cd shc-3.8.6
mkdir -p /usr/local/man/man1
这步是必须的,不然安装过程中会报错,shc将安装命令到/usr/local/bin/目录下;将帮助文档存放在/usr/local/man/man1/目录下,如果系统中无此目录,安装时会报错,可创建此目录后再执行安装
make install
这是要回答yes或者y,不能直接回车,否则会报错
使用方法:
“-f”选项指定需要加密的程序
shc -r -f script-name
运行后会生成两个文件,script-name.x 和 script-name.x.c. 其中script-name.x是加密后的可执行的二进制文件;用./script-name即可运行,script-name.x.c是生成script-name.x的原文件(c语言).
另shc还提供了一种设定有效执行期限的方法,可以首先使用shc将shell程序转化为二进制,并加上过期时间,如:
# shc -e 18/10/2006 -m “ It’s too late to run this script. ” -f script.s
篇4:服务器安全配置
服务器安全配置精华!
Windows2000 含有很多的安全功能和选项,如果你合理的配置它们,那么windows 2000将会是一个很安全的操作系统,
初级安全篇
1.物理安全
服务器应该安放在安装了监视器的隔离房间内,并且监视器要保留15天以上的摄像记录。另外,机箱,键盘,电脑桌抽屉要上锁,以确保旁人即使进入房间也无法使用电脑,钥匙要放在另外的安全的地方。
2.停掉Guest 帐号
在计算机管理的用户里面把guest帐号停用掉,任何时候都不允许guest帐号登陆系统。为了保险起见,最好给guest 加一个复杂的密码,你可以打开记事本,在里面输入一串包含特殊字符,数字,字母的长字符串,然后把它作为guest帐号的密码拷进去。
3.限制不必要的用户数量
去掉所有的duplicate user 帐户, 测试用帐户, 共享帐号,普通部门帐号等等。用户组策略设置相应权限,并且经常检查系统的帐户,删除已经不在使用的帐户。这些帐户很多时候都是 们入侵系统的突破口,系统的帐户越多, 们得到合法用户的权限可能性一般也就越大,
国内的nt/2000主机,如果系统帐户超过10个,一般都能找出一两个弱口令帐户。我曾经发现一台主机197个帐户中竟然有180个帐号都是弱口令帐户。
4.创建2个管理员用帐号
虽然这点看上去和上面这点有些矛盾,但事实上是服从上面的规则的。 创建一个一般权限帐号用来收信以及处理一些*常事物,另一个拥有Administrators 权限的帐户只在需要的时候使用。可以让管理员使用 RunAS 命令来执行一些需要特权才能作的一些工作,以方便管理。
5.把系统administrator帐号改名
大家都知道,windows 2000 的administrator帐号是不能被停用的,这意味着别人可以一遍又一边的尝试这个帐户的密码。把Administrator帐户改名可以有效的防止这一点。当然,请不要使用Admin之类的名字,改了等于没改,尽量把它伪装成普通用户,比如改成:guestone 。
6.创建一个陷阱帐号
什么是陷阱帐号? Look!创建一个名为 Administrator的本地帐户,把它的权限设置成最低,什么事也干不了的那种,并且加上一个超过10位的超级复杂密码。这样可以让那些 Scripts s忙上一段时间了,并且可以借此发现它们的入侵企图。或者在它的login scripts上面做点手脚。
篇5:服务器新技术应用调查报告
服务器新技术应用调查报告
本次调查主要反映了中小企业对于服务器领域相关新技术的认知和使用情况;七成受访用户拥有的服务器数量在50台以下,6成受访企业拥有自己的机房,IT基础架构建设初具规模。
受全球经济危机影响,企业用户所面临的综合性挑战是:在外部压力加大、IT预算紧缩的`情况下,既需要想法设法降低成本,又要不断优化IT基础架构,提升IT运营和管理效率,同时控制好各种风险。调查也表明,中小企业用户最关心的IT痛点问题主要集中在“系统性能、IT资源利用率和TCO成本”等三个方面,IT生产方式正在从过去的粗放式转向集约化,集群、虚拟化等技术得到青睐。
在新经济环境下,企业IT投资决策比以往更加复杂,投资更加谨慎,近4成用户的服务器数量增长幅度低于10%,近3成的用户几乎没有添加服务器,明显低于往年的增长速度
篇6:linux yum安装mysql后要注意的一些初始化问题linux服务器应用
1. 配置开机启动服务
/sbin/chkconfig httpd on [设置apache服务器httpd服务开机启动]
/sbin/chkconfig –add mysqld [在服务清单中添加mysql服务]
/sbin/chkconfig mysqld on [设置mysql服务开机启动]
/sbin/service httpd start [启动httpd服务,与开机启动无关]
/sbin/service mysqld start [启动mysql服务,与开机无关]
2. 设置mysql数据库root帐号密码,默认的初始化密码为空~~~
mysqladmin -u root password ‘new-password’ [引号内填密码]
3. 让mysql数据库更安全
mysql -u root -p
mysql>DROP DATABASE test; [删除test数据库]
mysql>DELETE FROM mysql.user WHERE user = ”; [删除匿名帐户]
mysql>FLUSH PRIVILEGES; [重载权限]
4.安装上mysql扩展
yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
5.设置默认编码等一些初始参数(my.cnf)
vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
default-character-set=utf8 [添加]
default-storage-engine=INNODB [添加]
old_passwords=1
[client]
default-character-set=utf8 [添加]
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
篇7:如何保障Web服务器安全
如何保障Web服务器安全
维护Web服务器安全是信息安全中最不讨好的差事之一,你需要在相冲突的角色中找到平衡,允许对网络资源的合法访问,同时阻止恶意破坏。
你甚至会考虑双重认证,例如RSA SecurID,来确保认证系统的高信任度,但是这对所有网站用户来说也许不实用,或者不划算。尽管存在这样相冲突的目标,仍有六个有助Web服务器安全的步骤。
对内部和外部应用分别使用单独的服务器
假设组织有两类独立的网络应用,面向外部用户的服务和面向内部用户的服务,要谨慎地将这些应用部署在不同的服务器上。这样做可以减少恶意用户突破外部服务器来获得对敏感的内部信息地访问。如果你没有可用的部署工具,你至少应该考虑使用技术控制(例如处理隔离),使内部和外部应用不会互相牵涉。
使用单独的开发服务器测试和调试应用软件
在单独的Web服务器上测试应用软件听起来像是常识——的确是。不幸的是,许多组织没有遵循这个基本规则,相反允许开发者在生产服务器上调试代码甚至开发新软件。这对安全和可靠性来说都很可怕。在生产服务器上测试代码会使用户遇到故障,当开发者提交未经测试易受攻击的代码时,引入安全漏洞。大多数现代版本控制系统(例如微软的Visual SourceSafe)有助于编码/测试/调试过程自动化。
审查网站活动,安全存储日志
每一个安全专业人员都知道维护服务器活动日志的重要性。由于大多数Web服务器是公开的,对所有互联网服务进行审核是很重要的。审核有助你检测和打击攻击,并且使你可以检修服务器性能故障,
在高级安全环境中,确保你的日志存储在物理安全的地点——最安全的(但是最不方便的`)技巧是日志一产生就打印出来,建立不能被入侵者修改的纸记录,前提是入侵者没有物理访问权限。你也许想要使用电子备份,例如登录进安全主机,用数字签名进行加密,来阻止日志被窃取和修改。
培训开发者进行可靠的安全编码
软件开发者致力于创建满足商业需求的应用软件,却常常忽略了信息安全也是重要的商业需求。作为安全专业人员,你有责任对开发者进行影响到Web服务器的安全问题的培训。你应该让开发者了解网络中的安全机制,确保他们开发的软件不会违背这些机制;还要进行概念的培训,例如内存泄漏攻击和处理隔离——这些对编码和生成安全的应用软件大有帮助。
给操作系统和Web服务器打补丁
这是另一个常识,但是当管理员因为其他任务而不堪重荷时常常忽略这一点。安全公告,像是CERT或者微软发布的公告,提醒人们软件厂商多频繁地发布某些安全漏洞的修补程序。一些工具像是微软的软件升级服务(SUS)和RedHat的升级服务有助于使这项任务自动化。总之,一旦漏洞公布,如果你不修补它,迟早会被人发现并利用。
使用应用软件扫描
如果负担地起,你也许会考虑使用应用软件扫描器来验证内部编码。像是 Watchfire公司的AppScan这样的工具有助于确保编码在生产环境里不会存在漏洞。记住,要有安全意识。设计良好的 Web服务器结构应该基于健全的安全政策。贯彻执行这六个方法会帮助你建立坚固的基础。
Linux服务器安全初始化Shell脚本linux服务器应用(合集7篇)




