设为首页 收藏本站
查看: 796|回复: 0

[经验分享] Linux服务器安全加固

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-30 09:24:04 | 显示全部楼层 |阅读模式
写在前面:
当你获得了一台服务器,千万别着急着部署应用,安全是首要任务。如果整理一下顺序,Linux系统可以通过以下几个步骤来进行安全加固。本文主要针对企业常用的CentOS系统,Ubuntu系统略有差异可百度查询。
1.系统用户优化
2.系统服务优化
3.ssh访问策略
4.防火墙配置

1.系统用户优化
注意:在我们进行系统用户优化时,所做的每一步操作都需要和使用这台服务器的开发及管理人员进行沟通确认,确保不出现误操作。
用户是Linux中安全加固的第一关,如果系统中本身就存在有安全隐患的用户,那么再安全策略也无法起到加固的效果。
在Linux系统中可以使用下面的命令查看系统中的用户信息
1
cat /etc/passwd



这样的显示并不能让我们直观的看到系统中存在的安全隐患,所以我们可以用下面命令来有针对性的查看:
1
2
cat /etc/passwd | awk -F: '$3==0'   //列出具有超级权限的用户
cat /etc/passwd | grep '/bin/bash'  //列出具有登录shell的用户



如果除了root还有其他的超级用户,那就要非常小心了。一般情况下,新的系统是不会出现这种情况,但是小心驶得万年船,如果不是系统管理的特殊要求,系统中的超级用户最好只能是root。
在列出有登录shell的用户的列表中,这些用户都是可以使用终端登录系统,并进行操作的,即使这些用户可能只有普通权限,但仍然要小心。删除过期或者无用的用户。

2.系统服务优化
注意:同样,所做的每一步操作都需要和使用这台服务器的开发及管理人员进行沟通确认,确保不出现误操作。
一般情况下,系统可能会自动的运行一些不必要的服务,我们可以使用下面的命令查看当前默认开启运行的系统服务:
1
chkconfig --list | grep "3:on"



如果我们只是提供web服务,那么对于sendmail、nfs、postfix、ftp等不需要的服务就可以关闭了,关闭的命令是:
1
chkconfig <servername> off



对于关键的服务,我们需要保证它们的运行,比如:iptables、sshd、syslog、httpd、nginx、mysql、php-fpm等。

3.ssh访问策略
不论是运维还是开发人员,ssh的访问都是我们日常工作中几乎唯一的控制系统的手段。所以ssh的安全性非常重要,一般来说较高的ssh安全策略秉承以下几个原则。

a.禁止root用户ssh登录。
b.禁止口令的方式验证。
c.只允许一个用户拥有sodu的完整权限。
d.除非是堡垒机,系统中不允许存放私钥文件。
e.使用一个随机端口来代替22端口。

但在做这些安全加固之前我们必须要做的意见就是:
新建一个普通用户,使这个用户可以通过证书的方式登入系统,并赋予sudo的完全权限。
证书验证的方法请参考:http://bbs.aliyun.com/read/25222 ... .7189909.0.0.gKfLSI
加入sudo权限请进行如下操作(需要root权限):
编辑vim /etc/sudoers,加入一条:
1
test ALL=(ALL)       NOPASSWD: ALL



这里的例子表示:将test赋予完全的sudo权限,并在sudo提权时不需要验证密码。
切记:在保证你能够通过test这个用户的证书方式登入系统并能够使用sudo su提权到root后,再进行下面的操作。

a.禁止root用户ssh登录。(需要root权限)
编辑/etc/ssh/sshd_config文件,将PermitRootLogin yes修改为
1
PermitRootLogin no



如果你很懒,直接执行下面的命令也可:
1
sed -i 's/\(PermitRootLogin\) yes/\1 no/' /etc/ssh/sshd_config




b.禁止口令,使用证书
编辑/etc/ssh/sshd_config文件,将PasswordAuthentication yes修改为
1
PasswordAuthentication no



当然也有懒人专用方法:
1
sed -i 's/\(PasswordAuthentication\) yes/\1 no/' /etc/ssh/sshd_config




c.sudo 的权限可以有很多种,但建议只给一个专门的运维用户赋予完全权限。且你要习惯在普通用户下使用sudo来进行临时提权。
d.服务器上只可以存放pub公钥文件,但私钥文件是绝对不允许存在的,除非这台服务器是堡垒机。
e.修改sshd的监听端口
编辑/etc/ssh/sshd_config文件,将
1
#Port 22



修改为
1
Port 28536



当然你可以指定任意一个没有被占用的自定义端口。

在完成了sshd的相关配置后,记得重启sshd服务
1
service sshd restart



以后我们使用ssh时就要指定端口为28536。

现在我们来看ssh的访问效果:
(1)所有用户不能使用密码验证登录。
(2)root用户不可直接登录的,即使拥有root密码,唯一获得root的方法是使用test用户提权。
(3)test用户只可以使用证书登录。
(4)ssh不再使用默认的22端口

4.防火墙策略
Linux的防火墙那肯定是iptables。
最高的防火墙策略是:全部关闭,逐个开启。
但这对于大多数人来说太复杂了,所以一般情况下我们只需要关注INPUT链即可。
(1)首先,清除原有的iptables规则。
在保证iptables所有链的默认规则为ACCEPT的前提下,使用以下命令:
1
2
3
iptables -F
iptables -X
iptabels -Z



(2)配置INPUT链规则
1
2
3
iptables -A INPUT -p tcp -m tcp --dport 28536 -j ACCEPT//允许ssh的端口通过
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT//允许已建立的和服务器发起的数据包通过
iptables -P INPUT DROP //丢弃所有未允许通过的数据包



效果:除了28536也就是ssh,任何访问服务器的数据包都将被拒绝。
注意:
在你配置了上述3条命令后,尝试从一个新的ssh连接登录服务器,如果登录成功。可以保存iptables规则:
1
service iptables save



如果出现任何意外你还可以通过重启服务器来返回iptables原来的状态,所以在测试iptables可以正确满足需求后再保存是一个好习惯。

最后:保证所有必须的服务器是开机自启的
1
2
chkconfig sshd on
chkconfig iptables on



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-92084-1-1.html 上篇帖子: linux 每个目录都有什么用及目录管理 下篇帖子: linux编译内核2.6.32.67 服务器安全 Linux 加固
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表