[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]Linux默认确实有内置的安全模型。你需要打开它并且对其进行定制,这样才能得到更安全的系统。Linux更难管理,不过相应也更灵活,有更多的配置选项。[/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]对于系统管理员,让产品的系统更安全,免于骇客和黑客的攻击,一直是一项挑战。这是我们关于“如何让Linux系统更安全” 或者 “加固Linux系统“之类话题的第一篇文章。本文将介绍 24个有用的技巧和窍门 ,帮助你让Linux系统更加安全。希望下面的这些技巧和窍门可以帮助你加强你的系统的安全。[/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif][b]1. 物理系统的安全性[/b][/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]配置BIOS,禁用从CD/DVD、外部设备、软驱启动。下一步,启用BIOS密码,同时启用GRUB的密码保护,这样可以限制对系统的物理访问。[/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]通过设置GRUB密码来保护Linux服务器[/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif][b]2. 磁盘分区[/b][/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]使用不同的分区很重要,对于可能得灾难,这可以保证更高的数据安全性。通过划分不同的分区,数据可以进行分组并隔离开来。当意外发生时,只有出问题的分区的数据才会被破坏,其他分区的数据可以保留下来。你最好有以下的分区,并且第三方程序最好安装在单独的文件系统/opt下。[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]/[/align][/td][/tr]
[/table][/size]
[backcolor=rgb(248, 248, 248) !important][size=1em][table]
[tr][td][align=right]2[/align][/td][td][align=right]/boot[/align][/td][/tr]
[/table][/size][/backcolor]
[size=1em][table]
[tr][td][align=right]3[/align][/td][td][align=right]/usr[/align][/td][/tr]
[/table][/size]
[backcolor=rgb(248, 248, 248) !important][size=1em][table]
[tr][td][align=right]4[/align][/td][td][align=right]/var[/align][/td][/tr]
[/table][/size][/backcolor]
[size=1em][table]
[tr][td][align=right]5[/align][/td][td][align=right]/home[/align][/td][/tr]
[/table][/size]
[backcolor=rgb(248, 248, 248) !important][size=1em][table]
[tr][td][align=right]6[/align][/td][td][align=right]/tmp[/align][/td][/tr]
[/table][/size][/backcolor]
[size=1em][table]
[tr][td][align=right]7[/align][/td][td][align=right]/opt[/align][/td][/tr]
[/table][/size]
[/size]
[/font][/color]
[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif][b]3. 最小包安装,最少漏洞[/b][/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]你真的需要安装所有的服务么?建议不要安装无用的包,避免由这些包带来的漏洞。这将最小化风险,因为一个服务的漏洞可能会危害到其他的服务。找到并去除或者停止不用的服务,把系统漏洞减少到最小。使用‘chkconfig‘命令列出运行级别3的运行所有服务。[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]# /sbin/chkconfig --list |grep '3 n'[/align][/td][/tr]
[/table][/size]
[/size]
[/font][/color]
[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]当你发现一个不需要的服务在运行时,使用下面的命令停止这个服务。[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]# chkconfig serviceName off[/align][/td][/tr]
[/table][/size]
[/size]
[/font][/color]
[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]使用RPM包管理器,例如YUM或者apt-get 工具来列出所有安装的包,并且利用下的命令来卸载他们。[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]# yum -y remove package-name[/align][/td][/tr]
[/table][/size]
[backcolor=rgb(248, 248, 248) !important][size=1em][table]
[tr][td][align=right]2[/align][/td][td][align=right][/td][/tr]
[/table][/size][/backcolor]
[size=1em][table]
[tr][td]3[/align][/td][td][align=right]# sudo apt-get remove package-name[/align][/td][/tr]
[/table][/size]
[backcolor=rgb(248, 248, 248) !important][size=1em][table]
[tr][td][align=right]4[/align][/td][td][align=right][/td][/tr]
[/table][/size][/backcolor]
[size=1em][table]
[tr][td]5[/align][/td][td][align=right] 5 chkconfig Command Examples[/align][/td][/tr]
[/table][/size]
[backcolor=rgb(248, 248, 248) !important][size=1em][table]
[tr][td][align=right]6[/align][/td][td][align=right] 20 Practical Examples of RPM Commands[/align][/td][/tr]
[/table][/size][/backcolor]
[size=1em][table]
[tr][td][align=right]7[/align][/td][td][align=right] 20 Linux YUM Commands for Linux Package Management[/align][/td][/tr]
[/table][/size]
[backcolor=rgb(248, 248, 248) !important][size=1em][table]
[tr][td][align=right]8[/align][/td][td][align=right][/td][/tr]
[/table][/size][/backcolor]
[size=1em][table]
[tr][td]9[/align][/td][td][align=right] 25 APT-GET and APT-CACHE Commands to Manage Package Management[/align][/td][/tr]
[/table][/size]
[/size]
[/font][/color]
[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif][b]4. 检查网络监听端口[/b][/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]在网络命令 ‘netstat‘ 的帮助下,你将能够看到所有开启的端口,以及相关的程序。使用我上面提到的 ‘chkconfig‘ 命令关闭系统中不想要的网络服务。[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]# netstat -tulpn[/align][/td][/tr]
[/table][/size]
[/size]
[/font][/color]
[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif][b]5. 使用 SSH(Secure Shell)[/b][/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]Telnet 和 rlogin 协议只能用于纯文本,不能使用加密的格式,这或将导致安全漏洞的产生。SSH 是一种在客户端与服务器端通讯时使用加密技术的安全协议。[/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]除非必要,永远都不要直接登录 root 账户。使用 “sudo” 执行命令。sudo 由 /etc/sudoers 文件制定,同时也可以使用 “visudo” 工具编辑,它将通过 VI 编辑器打开配置文件。[/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]同时,建议将默认的 SSH 22 端口号改为其他更高的端口号。打开主要的 SSH 配置文件并做如下修改,以限制用户访问。[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]# vi /etc/ssh/sshd_config[/align][/td][/tr]
[/table][/size]
[/size]
[/font][/color]
[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]关闭 root 用户登录[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]PermitRootLogin no[/align][/td][/tr]
[/table][/size]
[/size]
[/font][/color]
[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]特定用户通过[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]AllowUsers username[/align][/td][/tr]
[/table][/size]
[/size]
[/font][/color]
[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]使用第二版 SSH 协议[/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]Protocol 2[/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif][b]6. 保证系统是最新的[/b][/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]得一直保证系统包含了最新版本的补丁、安全修复和可用内核。[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]# yum updates[/align][/td][/tr]
[/table][/size]
[backcolor=rgb(248, 248, 248) !important][size=1em][table]
[tr][td][align=right]2[/align][/td][td][align=right]# yum check-update[/align][/td][/tr]
[/table][/size][/backcolor]
[/size]
[/font][/color]
[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif][b]7. 锁定 Cron任务[/b][/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]Cron有它自己内建的特性,这特性允许定义哪些人能哪些人不能跑任务。这是通过两个文件/etc/cron.allow 和 /etc/cron.deny 控制的。要锁定在用Cron的用户时可以简单的将其名字写到corn.deny里,而要允许用户跑cron时将其名字加到cron.allow即可。如果你要禁止所有用户使用corn,那么可以将“ALL”作为一行加到cron.deny里。[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]# echo ALL >>/etc/cron.deny[/align][/td][/tr]
[/table][/size]
[/size]
[/font][/color]
[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif][b]8. 禁止USB探测[/b][/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]很多情况下我们想去限制用户使用USB,来保障系统安全和数据的泄露。建立一个文件‘/etc/modprobe.d/no-usb‘并且利用下面的命令来禁止探测USB存储。[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]install usb-storage /bin/true[/align][/td][/tr]
[/table][/size]
[/size]
[/font][/color]
[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif][b]9.打开SELinux[/b][/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]SELinux(安全增强linux)是linux内核提供的一个强制的访问控制安全机制。禁用SELinux意味着系统丢掉了安全机制。要去除SELinux之前仔细考虑下,如果你的系统需要发布到网络,并且要在公网访问,你就要更加注意一下。[/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]SELinux 提供了三个基本的操作模式,他们是:[/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]强制执行:这是默认是模式,用来启用和强制执行SELinux安全措略。
许可模式:这种模式下SELinux不会强制执行安全措略,只有警告和日志记录。这种模式在SELinux相关问题的故障排除时候非常有用。
关闭模式:SELinux被关闭。[/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]你可以使用命令行‘system-config-selinux‘, ‘getenforce‘ or ‘sestatus‘来浏览当前的SEliux的状态。[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]# sestatus[/align][/td][/tr]
[/table][/size]
[/size]
[/font][/color]
[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]如果是关闭模式,通过下面的命令开启SELinux[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]# setenforce enforcing[/align][/td][/tr]
[/table][/size]
[/size]
[/font][/color]
[p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]你也可以通过配置文件‘/etc/selinux/config‘来进行SELinux的开关操作。[/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif][b]10. 移除KDE或GNOME桌面[/b][/font][/color][/p][p=25, null, left][color=rgb(42, 42, 42)][font=Tahoma, Helvetica, Arial, sans-serif]没必要在专用的LAMP服务器上运行X Window桌面比如KDE和GNOME。可以移掉或关闭它们,以提高系统安全性和性能。打开/etc/inittab然后将run level改成3就可以关闭这些桌面。如果你将它彻底的从系统中移走,可以用下面这个命令:[/font][/color][/p][color=rgb(42, 42, 42)][font=Consolas,][size=1em][size=1em][table]
[tr][td][align=right]1[/align][/td][td][align=right]# yum groupremove "X Window System"[/align][/td][/tr]
[/table][/size]
[/size]
[/font][/color]
|