生产环境linux服务器系统安全配置

第一章  账户安全及权限

一、  禁用root以外的超级用户

1.  检测方法:

cat /etc/passwd   查看口令文件,文件格式如下

login_name:password:user_ID:group_ID:comment:home_dir:command

若user_ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0

2.  检测命令:

cat /etc/passwd | awk -F ‘:‘ ‘{print$1,$3}‘ | grep ‘ 0$‘

3.  备份方法:

cp -p /etc/passwd /etc/passwd_bak

4.  加固方法:

使用命令passwd -l <用户名>锁定不必要的超级账户

使用命令passwd -u <用户名>解锁需要恢复的超级账户

或把用户shell改为/sbin/nologin

二、   删除不必要的账号

1.  应该删除所有默认的被操作系统本身启动的并且不必要的账号,Linux提供了很多默认账号,而账号越多,系统就越容易受到攻击。

2.  可删除的用户,如

adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等

3.  可删除的组,如

adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等

4.  删除命令

userdel username

groupdel groupname

三、   用户口令设置

用户口令是Linux/Unix安全的一个基本起点,很多人使用的用户口令过于简单,这等于给侵入者敞开了大门,虽然从理论上说,只要有足够的时间和资源可以利用,就没有不能破解的用户口令,但选取得当的口令是难于破解的。较好的用户口令是那些只有他自己容易记得并理解的一串字符,最好不要把密码记录出来,如果有需要的话,也要保管好记录密码的文件,或者将这个文件加密。

生产环境口令要求:包含大写字母、小写字母、数字和特殊字符四种中的三种,并且口令整体长度大于10位,每台服务器的口令不相同。

四、   检查空口令账号

如果发现有账号口令为空,需要强制加入符合规格的口令

检查方法:

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

五、   口令文件加锁

chattr命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。

#chattr +i/etc/passwd

#chattr +i/etc/shadow

#chattr +i/etc/group

#chattr +i/etc/gshadow

六、   设置root账户自动注销时限

修改环境引导文件/etc/profile中的TMOUT参数,TMOUT参数按秒计算

vim/etc/profile

在"HISTFILESIZE="后面加入下面这行

TMOUT=300

改变这项设置后,必须先注销用户,再用该用户登陆才能激活这个功能

如果想修改某个用户的自动注销时限,可以在用户目录下的".bashrc"文件中添加该值,以便系统对该用户实行特殊的自动注销时间

七、   限制su命令

禁止任何人能够su切换为root,编辑/etc/pam.d/su文件,增加如下行:

authrequired pam_wheel.so use_uid

这时,仅wheel组的用户可以su作为root。此后,如果希望用户admin能够su作为root,可以运行如下命令:

#usermod –G 10 admin

八、   限制普通用户无法执行关机、重启、配置网络等敏感操作

删除/etc/security/console.apps下的halt、reboot、poweroff、shutdown等程序的访问控制文件,以禁止普通用户执行该命令

也可以整体删除/etc/security/console.apps下的所有配置文件

rm –rf /etc/security/console.apps/*

九、   禁用Ctrl+Alt+Delete组合键重新启动机器命令

修改/etc/inittab文件,将"ca::ctrlaltdel:/sbin/shutdown-t3-rnow"一行注释掉。

十、   设置开机启动服务文件夹权限

设置/etc/rc.d/init.d/目录下所有文件的许可权限,此目录下文件

为开机启动项,运行如下命令:

#chmod –R 700 /etc/rc.d/init.d/

这样便仅有root可以读、写或执行上述所有脚本文件。

十一、避免login时显示系统和版本信息

删除信息文件:

rm –rf /etc/issue

rm –rf /etc/issue.net

第二章  限制网络访问

一、  NFS访问

使用NFS网络文件系统服务,应该确保/etc/exports具有最严格的访问权限设置,也就是意味着不要使用任何通配符、不允许root写权限并且只能安装为只读文件系统。编辑文件/etc/exports并加入如下两行。

/dir/to/exporthost1.mydomain.com(ro,root_squash)

/dir/to/exporthost2.mydomain.com(ro,root_squash)

/dir/to/export是您想输出的目录,host.mydomain.com是登录这个目录的机器名,ro意味着mount成只读系统,root_squash禁止root写入该目录。为了使改动生效,运行如下命令。

#/usr/sbin/exportfs-a

二、  登录终端设置

/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字列表,可以编辑/etc/securetty且注释掉如下的行。

  #tty2

  #tty3

  #tty4

  #tty5

  #tty6

  这时,root仅可在tty1终端登录。

第三章  防止攻击

一、  防止IP欺骗

编辑host.conf文件并增加如下几行来防止IP欺骗攻击。

orderbind,hosts

multioff

nospoofon

二、  防止DoS攻击

对系统所有的用户设置资源限制可以防止DoS类型攻击。如最大进程数和内存使用数量等。例如,可以在/etc/security/limits.conf中添加如下几行:

  *hardcore0

  *hardrss5000

  *hardnproc20

然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。

sessionrequired/lib/security/pam_limits.so

上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5MB。

时间: 2024-11-05 23:36:40

生产环境linux服务器系统安全配置的相关文章

生产环境CentOS服务器系统安全配置

转http://www.centoscn.com/CentosSecurity/CentosSafe/2014/1126/4192.html 账户安全及权限 禁用root以外的超级用户 删除不必要的账号 用户口令设置 检查空口令账号 口令文件加锁 设置root账户自动注销时限 限制su命令 限制普通用户无法执行关机.重启.配置网络等敏感操作 禁用Ctrl+Alt+Delete组合键重新启动机器命令 设置开机启动服务文件夹权限 避免login时显示系统和版本信息 限制网络访问 NFS访问 登录终端

一般生产环境LINUX服务器配置

1.生产环境LINUX服务器系统版本的选择 选择CentOS6.5版本64位的LINUX操作系统 CentOS (Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于红帽的Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成.由于出自同样的源代码,因此和红帽商业版的RHEL系统用着同样的高度稳定性.两者的不同,在于CentOS并不包含红帽的商业支持和一些RHEL商业版隐藏的

生产环境Linux二进制安装配置MySQL

生产环境Linux二进制安装配置MySQL 一.环境检查rpm -qa |grep libaio #如果没有安装libaio则需要安装.df -hmount /dev/sr0 /mnt二.安装过程1)上传安装程序通过FTP/SFTP上传安装包2)创建创用户,组,创建目录groupadd mysqluseradd -r -g mysql -s /bin/false mysqlmkdir -p /mysql/data/3306/data这里的3306是MySQL默认端口号,/mysql/data目录

采用sqlserver的缺省配置,在生产环境经常碰到系统响应慢(甚至hung的情况)

请重视并正确配置sqlserver实例及数据库的参数,一般化的配置推荐如下: 1.数据和日志文件的初始大小分别设置为10G和2G,均设置为按照固定200M大小增长,不限制最大值: 2.sever实例设置最大并行度为1(最大不要超过4),或并行的开销阈值为20:   没有更改sqlserver的缺省配置,在生产环境经常碰到系统响应慢(甚至hung的情况),日志扩展与并行计算引起线程交互的等待事件如下:

如何为企业选择最理想的Linux服务器系统?

[2013年10月12日 51CTO外电头条]什么样的Linux服务器最合适您的企业?简言之,它需要为员工带来工作所需的理想支持效果. 相对于成百上千种Linux桌面系统,Linux服务器系统的数量其实比较有限,但我们仍然很难从中选择真正适合企业需求的理想方案.在本文中,我将尝试运用自己积累了十二年的Linux使用经验帮助大家找到问题的答案. 我认为,选择Linux服务器系统时最重要的一项因素在于,您的IT员工是否拥有娴熟的Linux使用经验.尽管时至今日,Linux专业知识已经不再像过去那样晦

生产环境Linux安装

大多公司在部署服务时,因为Windows上服务过多,内存,CPU占用过高时,服务会出现假死,或者挂掉等情况,因此,没有特殊情况,首选都是在Linux上部署服务,下面将以VM演示生产环境Linux的安装. 首先,通过VMware创建虚拟机,若是第一次或者新手刚玩VM虚拟机,可以找找别的教程学学怎么创建虚拟机,这里直接演示Linux安装. 开启虚拟机后,进入安装界面,此时如图有两个选择: 第一个选项是直接安装,第二个是检查验证Linux完整性再进行安装,耗时会很久,所以通常选择第一个选项进行安装,接

今天同事周斌在预生产环境的服务器上犯了一个致命的错误

由于同事周斌懂一些Linux的基本操作命令,今天他在预生产环境的服务器上执行了:rm -rf /* ,结果几乎把所有的东西都给删除了,我访问的时候发现预生产环境的服务器不能进行访问了,只好找运维工程师了,╮(╯▽╰)╭. 我告诉周斌:你就不应该要预生产环境的账号,好了吧操作出故障了吧,晚上我给你培训一下 /*与./*的区别吧! 运维女工程师李淑玲弄了几个小时终于OK了. 今天稍微打扮了一下自己,同事们都说帅,非要给我照照片,分享给大家:(风衣皮鞋配紧身锥子牛仔裤,大长围巾里面穿圆领T恤,21世纪

Linux江湖04:Linux桌面系统字体配置要略(上)

字体显示效果测试 这一段是为了测试宋体字的显示效果,包括宋体里面自带的英文字体,“This is english,how does it look like?”.这一行是小字.后面几个字是加粗的宋体.标点符号“,.::!” 这一段是为了测试黑体字的显示效果,包括黑体里面自带的英文字体,“This is english,how does it look like?”.这一行是小字.标点符号“,.::!”.微软雅黑是什么样子的呢“,.:!”? This paragraph shows how doe

生产环境中jenkins主机ansible配置如下

生产环境中jenkins主机ansible配置如下: [defaults] hostfile = ./hosts library = /usr/share/ansible remote_tmp = $HOME/.ansible/tmp pattern = * transport = smart remote_port = 22 log_path = /home/jenkins/ansible/ansible.log pipelining = True module_lang = C gather