Linux培训
达内IT学院
400-996-5531
今天小编要跟大家分享的文章是关于通过命令改善Linux系统安全的方法。本文中,我们将讨论如何通过一些Linux的安全命令,加固你的Linux系统。
在最开始,我们需要问的一个问题是:Linux是已经足够被安全加固了吗?答案当然是否定的。那些娴熟的攻击者所带来的危险是与日俱增的。每天、甚至是每小时都有新的漏洞被发现。对这些漏洞的利用方法通常建立在它们被发现后的数小时之内。一些漏洞甚至直到有人将其利用到攻击的主机上才被发现。可见,安全应该是我们所有人需要关心的。因此,我想在本文中用一些实际的例子来展示如何增强系统的安全性。
没有一个帖子或是一本书能够回答Linux所有的安全问题或是涉及所有可能的威胁。因此,本文理所当然地也不可能包括所有,但是我们希望你一定会发现到其“用武之处”。
我们的主要议题包括:
· 控制台安全
· 密码生命周期
· Sudo的通知
· SSH调优
· 使用Tripwire进行入侵检测
· 使用Firewalld
· 回归iptable
· 限制编译器
· 不可修改文件
· 用Aureport来管理SELinux
· 使用sealert工具
下面来和小编一起看看吧!
一、控制台安全
你可以通过限制能够登录的一组特定终端来限制root用户的访问。为了实现该目的,请编辑/etc/下安全文件的内容。该文件列出的是允许root用户登录的所有设备。
我建议你只允许root用户去登录到一个终端之上,且强制所有其他用户都使用非root用户的身份进行登录。而如果确实需要root用户权限的时候,请使用su命令来获取。
二、密码生命周期
密码的生命周期就是允许你为密码指定一个有效的时间周期。时间到期后,系统将强制要求用户输入一个新的密码。这样有效地确保了密码的定期更换,以及密码在被偷盗、破解或为人所知的情况下能够迅速过期。
有两种方法可以实现这个效果。第一种方法是通过命令行使用如下的改变命令:
$ chage -M 20 likegeeks
我们使用- M选项为likegeeks用户设置了有效期限为20天的密码。
你也可以输入不带任何选项的chage命令,它会自动提示你选项:
$ chage likegeeks
第二种方法是在/etc/login.defs中为所有用户设置默认值。你可以参照下面,按需改变其数值:
PASS_MAX_DAYS 20 PASS_MIN_DAYS 0 PASS_WARN_AGE 5
三、Sudo的通知
Sudo命令虽然可以使得你的“生活”更为轻松,但是它们也会因为Linux的安全问题而毁了你的“生活”。
我们都知道,sudo命令允许非root用户以root身份运行各种命令。你可以在/etc/sudoers文件中查到所有的sudo配置。
你可以禁止用户去运行那些root才能运行的命令。
当sudo命令被使用的时侯,你可以通过在文件中添加如下一行语句,以配置其向外发送电子邮件。
mailto yourname@#
当然你也可以用如下语句改变sudo的发邮件状态:
mail_always on
四、SSH调优
只要说到Linux安全,我们必然会讨论到SSH服务。SSH应该是你系统中重要的一种服务,它使你能够轻松地连接到自己的系统。而且这可能是在出现各种状况的时候,唯一能让你的系统“幸存”的途径。所以对SSH的调优是非常重要的。
由于我们在本文所使用的是CentOS 7,那么其SSH的配置文件就存放在:
/etc/ssh/sshd_config
让我们来深入了解一下吧。
攻击者所使用的扫描器或自动工具一般尝试运用默认端口22来连接SSH。因此通常情况下,你应该改变SSH的原有端口到另一个未使用的端口上,比如说5555。
Port 5555
你也可以通过更新PermitRootLogin的值为no来限制root的登录,例如:
PermitRootLogin no
并禁用无密码的通道,且改用公钥登录的方式。
PasswordAuthentication no PermitEmptyPasswords no
其实还有另外一种可能阻止攻击的调整,但它要求SSH通过正向和反向DNS查询远程的主机名,这将在系统日志文件中生成一些适当的警告。你只需启用UseDNS的值便可实现。
UseDNS yes
此外,当GSSAPI服务器被要求验证相关用户的身份时,SSH会调用一个不常用的功能来实现GSSAPI的认证方式。为了避免这种情况可能会引起的某种麻烦,请按照如下将GSSAPIAuthentication设为no:
GSSAPIAuthentication no
考虑到SSH通常会出现的超时问题,你可以通过正确地配置ServerAliveInterval、ServerAliveCountMax和TCPKeepAlive的值来进行管控。
例如下面的规则就意味着每隔60秒就产生一个数据包。
ServerAliveInterval 15 ServerAliveCountMax 3 TCPKeepAlive yes
通过调整这些值,你可以提供一个更长的连接。
ClientAliveInterval 30 ClientAliveCountMax 5
你可以通过指定那些被允许用来使用SSH的用户名,从而使得SSH服务更为安全。
AllowUsers user1 user2
或者指定允许的组:
AllowGroup group1 group2
除此之外,你还可以为SSH启用诸如Google Authenticator这样的双因素认证方式:
$ yum install google-authenticator
然后运行之,以验证是否成功安装:
$ google-authenticator
你的移动手机上应该已经安装了Google authenticator的应用,那么请将下面一行添加到/etc/pam.d/sshd之中。
auth required pam_google_authenticator.so
最后的事情就是通过添加下面一行到/etc/ssh/sshd_config中,以通知SSH。
ChallengeResponseAuthentication yes
然后重启你的SSH:
$ systemctl restart sshd
之后,当你使用SSH登录的时候,它将会询问一个验证码。这便意味着你的SSH已经能够应对暴力破解的攻击,且更为稳固了。
五、使用Tripwire进行入侵检测
Tripwire是Linux安全里的重要工具之一。这是一种基于主机的入侵检测系统(HIDS)。它通过收集配置和文件系统的细节,并使用这些信息来提供系统先前与当前状态之间的参考点等方式进行工作。该过程监测文件或目录的属性包括:进去哪些被添加或修改了、谁修改的、修改了什么、何时修改的。因此它就是你文件系统的“看门狗”。
你需要访问EPEL存储库来获取Tripwire。你可以按如下方法轻松地添加该库:
wget #/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm $
rpm -ivh epel-release-7-9.noarch.rpm
一旦成功安装了EPEL库,你就可以安装Tripwire了:
$ sudo yum install tripwire
在使用Tripwire之前,你需要用如下命令来创建本地和网站密钥:
$ tripwire-setup-keyfiles
它会提示你输入一个用于网站和本地密钥文件的密码。Tripwire也会建议你使用大写字母、小写字母、数字和标点符号的组合。
你可以通过更改如下文件来定制Tripwire:
/etc/tripwire/twpol.txt
因为每一行都有注释,且描述也很到位,因此该文件还是比较容易阅读和修改的。
你可以用如下的方式更新自己的Tripwire策略。
$ tripwire --update-policy --secure-mode low /etc/tripwire/twpol.txt
Tripwire将通过参考你的更改,在屏幕上持续刷新显示各个阶段的步骤。当这些完成之后,你就应该能够以如下方式初始化Tripwire数据库了:
$ tripwire --init
然后Tripwire将开始扫描系统。它所需要的时长取决于系统的总体规模。
任何对文件系统更改将被认为是一种系统的入侵,因此管理员会被通知到,而且他需要使用受信任的文件予以系统恢复。正是出于这个原因,Tripwire必须去验证任何的系统更改。你可以通过如下命令来验证你的现有的策略文件:
$ tripwire --check
关于Tripwire,我的最后一点建议是:请额外去加固twpol.txt和twcfg.txt文件的安全。
更多有关Tripwire的选项和设置,你可以通过man tripwire查阅到。
在这篇文章中,我们讨论了一些可以帮助你加固Linux系统的安全技巧。当然,对于各种运行的服务而言,仍有许多值得加固的Linux安全技巧有待发掘。
以上就是小编今天为大家分享的关于通过命令改善Linux系统安全的方法的文章,希望本篇文章能够对正在从事Linux运维工作的小伙伴们有所帮助,想要了解更多Linux相关知识的小伙伴们记得关注达内Linux培训官网,最后祝愿小伙伴们工作顺利,成为一名优秀的Linux运维工程师。
作者:lrq110120
链接:http://richylu.blog.51cto.com/1481674/1915484
【免责声明:本文图片及文字信息均由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除。】
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved