0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

25个有用的技巧和窍门,帮助你让Linux系统更加安全

马哥Linux运维 来源:lq 2018-12-07 16:10 次阅读

大家都认为Linux默认是安全的,我大体是认可的 (这是个有争议的话题)。Linux默认确实有内置的安全模型。你需要打开它并且对其进行定制,这样才能得到更安全的系统。Linux更难管理,不过相应也更灵活,有更多的配置选项。

对于系统管理员,让产品的系统更安全,免于骇客和黑客的攻击,一直是一项挑战。这是我们关于“如何让Linux系统更安全” 或者 “加固Linux系统“之类话题的第一篇文章。本文将介绍25个有用的技巧和窍门,帮助你让Linux系统更加安全。希望下面的这些技巧和窍门可以帮助你加强你的系统的安全。

1. 物理系统的安全性

配置BIOS,禁用从CD/DVD、外部设备、软驱启动。下一步,启用BIOS密码,同时启用GRUB的密码保护,这样可以限制对系统的物理访问。

2. 磁盘分区

使用不同的分区很重要,对于可能得灾难,这可以保证更高的数据安全性。通过划分不同的分区,数据可以进行分组并隔离开来。当意外发生时,只有出问题的分区的数据才会被破坏,其他分区的数据可以保留下来。你最好有以下的分区,并且第三方程序最好安装在单独的文件系统/opt下。

3. 最小包安装,最少漏洞

你真的需要安装所有的服务么?建议不要安装无用的包,避免由这些包带来的漏洞。这将最小化风险,因为一个服务的漏洞可能会危害到其他的服务。找到并去除或者停止不用的服务,把系统漏洞减少到最小。使用‘chkconfig‘命令列出运行级别3的运行所有服务。

当你发现一个不需要的服务在运行时,使用下面的命令停止这个服务。

使用RPM包管理器,例如YUM或者apt-get 工具来列出所有安装的包,并且利用下的命令来卸载他们。

4. 检查网络监听端口

在网络命令 ‘netstat‘ 的帮助下,你将能够看到所有开启的端口,以及相关的程序。使用我上面提到的 ‘chkconfig‘ 命令关闭系统中不想要的网络服务。

5. 使用 SSH(Secure Shell)

Telnet和rlogin协议只能用于纯文本,不能使用加密的格式,这或将导致安全漏洞的产生。SSH是一种在客户端与服务器端通讯时使用加密技术的安全协议。

除非必要,永远都不要直接登录root账户。使用 “sudo” 执行命令。sudo 由/etc/sudoers文件制定,同时也可以使用 “visudo” 工具编辑,它将通过VI编辑器打开配置文件。

同时,建议将默认的SSH 22端口号改为其他更高的端口号。打开主要的SSH配置文件并做如下修改,以限制用户访问。

关闭 root 用户登录

特定用户通过

使用第二版 SSH 协议

6. 保证系统是最新

得一直保证系统包含了最新版本的补丁、安全修复和可用内核。

7. 锁定 Cron任务

Cron有它自己内建的特性,这特性允许定义哪些人能哪些人不能跑任务。这是通过两个文件/etc/cron.allow和/etc/cron.deny控制的。要锁定在用Cron的用户时可以简单的将其名字写到corn.deny里,而要允许用户跑cron时将其名字加到cron.allow即可。如果你要禁止所有用户使用corn,那么可以将“ALL”作为一行加到cron.deny里。

8. 禁止USB探测

很多情况下我们想去限制用户使用USB,来保障系统安全和数据的泄露。建立一个文件‘/etc/modprobe.d/no-usb‘并且利用下面的命令来禁止探测USB存储。

9.打开SELinux

SELinux(安全增强linux)是linux内核提供的一个强制的访问控制安全机制。禁用SELinux意味着系统丢掉了安全机制。要去除SELinux之前仔细考虑下,如果你的系统需要发布到网络,并且要在公网访问,你就要更加注意一下。

SELinux提供了三个基本的操作模式,他们是:

强制执行:这是默认是模式,用来启用和强制执行SELinux安全措略。

许可模式:这种模式下SELinux不会强制执行安全措略,只有警告和日志记录。这种模式在SELinux相关问题的故障排除时候非常有用。

关闭模式:SELinux被关闭。

你可以使用命令行‘system-config-selinux‘, ‘getenforce‘ or ‘sestatus‘来浏览当前的SEliux的状态。

如果是关闭模式,通过下面的命令开启SELinux

你也可以通过配置文件‘/etc/selinux/config‘来进行SELinux的开关操作。

10. 移除KDE或GNOME桌面

没必要在专用的LAMP服务器上运行X Window桌面比如KDE和GNOME。可以移掉或关闭它们,以提高系统安全性和性能。打开/etc/inittab然后将run level改成3就可以关闭这些桌面。如果你将它彻底的从系统中移走,可以用下面这个命令:

11. 关闭IPv6

如果不用IPv6协议,那就应该关闭掉它,因为大部分的应用和策略都不会用到IPv6,而且当前它不是服务器必需的。可以在网络配置文件中加入如下几行来关掉它。

12. 限制用户使用旧密码

如果你不希望用户继续使用老密码,这一条很有用。老的密码文件位于/etc/security/opasswd。你可以使用PAM模块实现。

RHEL / CentOS / Fedora中打开 ‘/etc/pam.d/system-auth‘ 文件。

Ubuntu/Debian/Linux Mint中打开 ‘/etc/pam.d/common-password‘ 文件。

在 ‘auth‘ 块中添加下面一行。

在 ‘password‘ 块添加下面一行,禁止用户重新使用其过去最后用过的5个密码。

服务器只记录最后的5个密码。如果你试图使用曾用的最后5个老密码中的任意一个,你将看到如下的错误提示。

13. 如何检查用户密码过期?

在 Linux 中,用户的密码以加密的形式保存在 ‘/etc/shadow‘ 文件中。要检查用户的密码是否过期,你需要使用 ‘chage‘ 命令。它将显示密码的最后修改日期及密码期限的细节信息。这些细节就是系统决定用户是否必须修改其密码的依据。

要查看任一存在用户的老化信息,如过期日和时长,使用如下命令。

要修改任一用户的密码老化,使用如下命令。

参数

-M设置天数最大数字

-m设定天数最小数字

-W设定想要的天数

14. 手动锁定或解锁用户账号

锁定和解锁功能是非常有用的,你可以锁定一个账号一周或一个月,而不是将这个账号从系统中剔除。可以用下面这个命令锁定一个特定用户。

提示:这个被锁定的用户仅对root用户仍然可见。这个锁定是通过将加密过的密码替换成(!)来实现的。如果有个想用这个账号来进入系统,他会得到类似下面这个错误的提示。

解锁一个被锁定的账号时,用下面这个命令。这命令会将被替换成(!)的密码改回来。

15. 增强密码

有相当数量的用户使用很弱智的密码,他们的密码都可以通过字典攻击或者暴力攻击攻破。‘pam_cracklib‘模块存于在PAM中,它可以强制用户设置复杂的密码。通过编辑器打开下面的文件。

在文件中增加一行,使用认证参数(lcredit,ucredit,dcredit 或者ocredit对应小写字母、大写字母,数字和其他字符)

16. 启用Iptable(防火墙)

高度推荐启用linux防火墙来禁止非法程序访问。使用iptable的规则来过滤入站、出站和转发的包。我们可以针对来源和目的地址进行特定udp/tcp端口的准许和拒绝访问。

17. 禁止Ctrl+Alt+Delete重启

在大多数的linux发行版中,按下‘CTRL-ALT-DELETE’将会让你的系统重启。只说生产服务器上这是不是一个很好的做法,这可能导致误操作。

这个配置是在‘/etc/inittab‘文件,如果你打开这个文件,你可以看到下面类似的段落。默认的行已经被注释掉了。我们必须注释掉他。这个特定按键会让系统重启。

18. 检查空密码帐号

任何空密码的账户意味这可以让Web上任何无授权的用户访问,这是linux服务器的一个安全威胁。所以,确定所有的用户拥有一个复杂的密码并且不存在特权用户。空密码帐号是安全风险,可以被轻易的攻克。可以利用下面的命令来检查是否有空密码账户存在。

19. 登录前显示SSH提示

在ssh认证时候,使用一个法律和安全警示是很好的建议。

20. 监视用户行为

如果你有很多的用户,去收集每一个用户的行为和和他们的进程消耗的信息非常重要。可以随后和一些性能优化和安全问题处理时进行用户分析。但是如果监视和搜集用户行为信息呢 ?

有两个很有用的工具‘psacct‘ 和 ‘acct‘可以用来监视系统中用户的行为和进程。这些工具在系统后台执行并且不断记录系统中每一个用户的行为和各个服务比如Apache,MySQL,SSH,FTP, 等的资源消耗。

21. 定期查看日志

将日志移动到专用的日志服务器里,这可避免入侵者轻易的改动本地日志。下面是常见linux的默认日志文件及其用处:

22. 重要文件备份

在生产环境里,为了灾难恢复,有必要将重要文件备份并保存在安全的远程磁带保险库、远程站点或异地硬盘。

23. NIC 绑定

有两种类型的NIC绑定模式,需要在绑定接口用得到。

mode=0– 循环赛模式

mode=1– 激活和备份模式

NIC绑定可以帮助我们避免单点失败。在NIC绑定中,我们把两个或者更多的网卡绑定到一起,提供一个虚拟的接口,这个接口设置ip地址,并且和其他服务器会话。这样在一个NIC卡down掉或者由于其他原因不能使用的时候,我们的网络将能保持可用。

24. 保持 /boot 只读

linux内核和他的相关的文件都保存在/boot目下,默认情况下是可以读写的。把它设为了只读可以减少一些由于非法修改重要boot文件而导致的风险。

在文件最后增加下面的行,并且保存

如果你今后需要升级内核的话,你需要修回到读写模式。

25.忽略ICMP和Broadcast请求

在/etc/sysctl.conf中添加下面几行,屏蔽掉ping和broadcast请求。

运行下面这一行加载修改或更新

如果你觉得了上述安全小贴士很好用,或还有什么其它需要补充进去,请在下面的评论框里写写,不断追求进步的TecMint一如既往地愿意听到您的评论、建议以及讨论。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11303

    浏览量

    209435
  • 服务器
    +关注

    关注

    12

    文章

    9149

    浏览量

    85395

原文标题:25个Linux服务器安全小贴士,总有一条用得上!

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux必学的60命令:系统安全相关命令

    Linux必学的系统安全命令 (1)作者:曹元其 发文时间:2004.12.03虽然Linux和Windows NT/2000系统一样是一
    发表于 05-09 19:46

    设计25G系统的5窍门

    产品,从根本上来说,必须用小的成本来多做事。以下是5窍门,它能使你在设计25G系统时做出很好的平衡:1.确定系统中的哪条链路将会需要信号
    发表于 09-03 16:08

    Linux系统新手学习的11点建议

    包含了一强大的帮助,只是可能你还没有发现和使用它们的技巧。 1. 主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统
    发表于 04-15 15:09

    如何自动驾驶更加安全

    了全球范围对自动驾驶安全性的议论:如何自动驾驶更加安全?真正上路前还要做哪些准备?智能汽车成为全球汽车产业发展战略方向参与测试的企业将通过道路测试来不断验证自动驾驶技术的成熟度驾车上
    发表于 05-13 00:26

    XtremeDSP视频入门套件帮助你更快更好地开发高级视频系统

    XtremeDSP视频入门套件帮助你更快更好地开发高级视频系统
    发表于 04-15 06:29

    FPGA Editor如何帮助你完成设计调试和验证?

    FPGA Editor数字设计工具怎么样?FPGA Editor如何帮助你完成设计调试和验证?
    发表于 05-07 06:17

    设计一25G系统的技巧分享

    以下是5快速小窍门,它能使你在设计25G系统时做出很好的平衡:1.确定系统中的哪条链路将会需要信号调节;这将取决于走线长度和印刷电路板 (
    发表于 11-17 07:25

    PX5的ARM TrustZone支持嵌入式系统变得更加安全

    安全风险。在IoT系统中,PDV提供的安全分割帮助开发者根据平台安全架构(PSA)指导方针确立设备的信任根。 针对物联网设备构建的RTOS
    发表于 05-18 13:44

    几个比较实用的iPhone和Touch小窍门

    几个比较实用的iPhone和Touch小窍门 很多朋友都在使用iPhone和iPod Touch了。下面是iPhone中文网总结的一些iPhone使用小窍门,非常有用。 1.回到页
    发表于 02-02 09:12 1097次阅读

    使用洗衣机的12窍门

    使用洗衣机的12窍门        1.每1至2月检查洗衣机的底座脚垫。    2.不定期打开洗槽盖
    发表于 02-21 16:33 897次阅读

    设计一25G系统:平衡功耗、性能与成本的5窍门

    产品,从根本上来说,必须用小的成本来多做事。 以下是5窍门,它能使你在设计25G系统时做出很好的平衡: 1.确定系统中的哪条链路将会需要
    发表于 04-18 01:45 482次阅读
    设计一<b class='flag-5'>个</b><b class='flag-5'>25</b>G<b class='flag-5'>系统</b>:平衡功耗、性能与成本的5<b class='flag-5'>个</b><b class='flag-5'>窍门</b>

    Linux必学的系统安全命令

    虽然Linux和Windows NT/2000系统一样是一多用户的系统,但是它们之间有不少重要的差别。对于很多习惯了Windows系统的管
    发表于 11-02 15:09 0次下载

    助你创建运行更有效率Python应用的窍门

    前文所述的六窍门都能帮助你创建运行更有效率的Python应用。但是银弹是不存在的。上述的这些窍门不一定每次都能奏效。在特定的Python的版本下,有的
    发表于 12-21 19:58 857次阅读
    六<b class='flag-5'>个</b><b class='flag-5'>助你</b>创建运行更有效率Python应用的<b class='flag-5'>窍门</b>

    如何Ubuntu Linux更快的技巧

    使用 Ubuntu 一段时间后系统开始运行缓慢的情况。 在这篇文章里,我们将看到几项调整以及使 Ubuntu 运行更快的窍门
    发表于 07-01 10:22 2253次阅读

    通过几个简单的命令你的Linux固若金汤

    在这篇文章中,我们讨论了一些可以帮助你加固Linux系统安全技巧。当然,对于各种运行的服务而言,仍有许多值得加固的Linux
    的头像 发表于 11-19 14:46 4242次阅读
    通过几个简单的命令<b class='flag-5'>让</b>你的<b class='flag-5'>Linux</b>固若金汤