25个加强Linux服务器的安全提示

从黑客手中保护生产系统是系统管理员的一项艰巨的任务。这个如何解释25个有用的提示,以确保安全

人人都说Linux是在默认情况下的安全,并同意延长部分(这是值得商榷的主题)。但是,默认情况下,Linux已经内置了安全模型。需要调整和定制根据您的需要,这可能有助于使更安全的系统。 Linux更难管理,但提供更多的灵活性和配置选项。
Linux安全和加固提示

25 Linux安全和加固提示

黑客黑客手中的生产保障体系是一个系统管理员一项艰巨的任务。 这是我们与“ 如何保护Linux机器 ”或“ 加固Linux机器 ”的第一篇文章。 在这篇文章中,我们将介绍25有用的提示和技巧 ,以确保您的Linux系统。希望,以下提示和技巧将帮助您进行一些扩展,以保护您的系统。

物理系统安全

配置BIOS中禁用从CD / DVD, 外部设备软盘驱动器BIOS引导。 接下来,启用BIOS密码和保护也与GRUB密码来限制你的系统的物理访问。
  1. 设置GRUB密码以保护Linux服务器

2.磁盘分区

重要的是有不同的分区,以获得更高的数据安全性,以防万一发生任何灾难。通过创建不同的分区,可以分离和分组数据。当意外事故发生时,只有该分区的数据将被损坏,而其他分区上的数据仍然存在。请确保你一定以下单独的分区,并确保第三方应用程序应在/ opt单独的文件系统上。
/
/boot
/usr
/var
/home
/tmp
/opt

3.最小化包以最小化漏洞

你真的想要安装所有类型的服务吗?建议避免安装无用的包以避免包中的漏洞。这可以最小化一个服务的妥协可能导致对其他服务的损害的风险。从服务器中查找和删除或禁用不需要的服务,以尽量减少漏洞。使用“chkconfig的 ”命令来找出哪些是在级别3上运行的服务。
# /sbin/chkconfig --list |grep '3:on'
一旦发现任何不需要的服务正在运行,请使用以下命令禁用它们。
# chkconfig serviceName off
使用RPM包管理器,如“ ”或“apt-get的 ”工具列出系统中的所有已安装的软件包,并使用以下命令将其删除。
# yum -y remove package-name
# sudo apt-get remove package-name
  1. 5 chkconfig命令示例
  2. 20 RPM命令的实际示例
  3. 20 Linux用于Linux软件包管理的YUM命令
  4. 25 APT-GET和APT-CACHE命令来管理软件包管理

4.检查监听网络端口

随着“netstat的 ”网络命令的帮助,您可以查看所有打开的端口和相关的程序。 正如我在上面使用“chkconfig的 ”命令说,从系统中禁用所有不必要的网络服务。
# netstat -tulpn
  1. 20用于Linux中网络管理的Netstat命令

5.使用安全Shell(SSH)

的Telnetrlogin协议使用纯文本,未加密的格式,它是安全隐患。SSH是与服务器的通信过程中使用的加密技术安全协议。 不要直接以root身份登录,除非必要的。 使用“ 命令 ”来执行命令。 Sudo在/ etc指定/ sudoers文件也文件可与“visudo命令 ”工具,它在VI编辑器中打开进行编辑。 它也建议更改默认的SSH 22端口号与其他一些更高级别的端口号。 打开主SSH配置文件,并提出一些以下参数来限制用户访问。
# vi /etc/ssh/sshd_config
禁用root登录
PermitRootLogin no
仅允许特定用户
AllowUsers username
使用SSH协议2版本
Protocol 2
  1. 安全和保护SSH服务器的5个最佳实践

6.保持系统更新

始终保持系统更新与最新版本补丁,安全修复程序和内核可用时。
# yum updates
# yum check-update

7.锁定Cronjobs

克龙有它自己的内置功能,它允许指定谁可以,谁可能不希望运行的作业。 这是通过使用称为/etc/cron.allow/etc/cron.deny文件的控制。 要锁定使用cron的用户,只需在cron.deny中添加用户名,并允许用户运行cron在cron.allow文件添加。 如果您想使用的cron禁用所有用户,添加了“ALL”cron.deny文件。
# echo ALL >>/etc/cron.deny
  1. 11 Cron在Linux中的计划示例

8.禁用USB棒以检测

很多时候它发生,我们要使用USB记忆棒中的系统,以保护和窃取安全的数据限制用户。 创建一个文件“/etc/modprobe.d/no-usb”和添加以下行不会检测USB存储设备。
install usb-storage /bin/true

9.打开SELinux

安全增强型Linux(SELinux) 是在内核中提供的强制访问控制的安全机制。 禁用了SELinux是指从系统中删除的安全机制。在删除之前仔细考虑两次,如果您的系统连接到互联网并由公众访问,那么请考虑更多。 SELinux提供三种基本操作模式和它们。
  1. 执法 :这是默认的模式,使和执行机器上的SELinux的安全策略。
  2. 宽容 :在这种模式下,SELinux的不会强制执行安全策略的系统上,只有警告和日志的操作。 该模式在排除SELinux的相关问题长期非常有用的。
  3. 禁用 :SELinux的关闭。
命令您可以使用“ 系统配置SELinux的 ','getenforce''sestatus”命令行查看SELinux的模式的当前状态。
# sestatus
如果禁用,使用以下命令启用SELinux的
# setenforce enforcing
它也可以在“/ etc / SELinux的/配置 ”文件中,在那里你可以启用或禁用它进行管理。

10.删除KDE / GNOME桌面

有没有必要给你专用的上运行的X Window桌面像KDEGNOME LAMP服务器。 您可以删除或禁用它们,以提高服务器和性能的安全性。 要禁用简单打开文件/ etc / inittab中 “,并设置运行级别为3。如果您希望从系统中完全删除它,请使用以下命令。
# yum groupremove "X Window System"

11.关闭IPv6

如果你不使用IPv6协议,那么因为大多数应用程序或政策不要求IPv6协议,目前它不会在服务器上需要的,你应该禁用它。转到网络配置文件并添加以下行禁用它。
# vi /etc/sysconfig/network
NETWORKING_IPV6=no
IPV6INIT=no

12.限制用户使用旧密码

如果您要禁止用户使用相同的旧密码,这将非常有用。旧的密码文件位于/ etc /安全/ opasswd。 这可以通过使用PAM模块来实现。 在RHEL / CentOS的/ Fedora的打开“ 将/etc/pam.d/system-auth'文件。
# vi /etc/pam.d/system-auth
Ubuntu/于Debian / Linux Mint的打开“/etc/pam.d/common-password'文件。
# vi /etc/pam.d/common-password
添加以下行以“ 权威性 ”部分。
auth        sufficient    pam_unix.so likeauth nullok
将下面一行添加到“ 密码 ”部分,从重新使用过去的5次密码的他或她的禁止用户。
password   sufficient    pam_unix.so nullok use_authtok md5 shadow remember=5
只有最后5个密码是由服务器记住。 如果您尝试使用任何最后5旧密码,你会得到这样一个错误。
Password has been already used. Choose another.

13.如何检查用户的密码到期

在Linux中,用户的密码存储在加密格式“/ etc / shadow文件 '文件。 要检查用户的密码过期,你需要使用“ 恰克 ”命令。它显示密码到期详细信息以及上次密码更改日期的信息。系统使用这些详细信息来决定用户何时必须更改其密码。 要查看任何现有的用户老龄化信息,如到期日期时间 ,请使用以下命令。
#chage -l username
要更改任何用户的密码老化,请使用以下命令。
#chage -M 60 username
#chage -M 60 -m 7 -W 7 userName
参数
  1. -M组最大数量
  2. -m天设置最小数
  3. -W设置警告的天数

14.手动锁定和解锁帐户

锁定和解锁功能非常有用,而不是从系统中删除帐户,您可以锁定一个星期或一个月。要锁定特定用户,可以使用follow命令。
# passwd -l accountName
:锁定的用户仍然仅适用于root用户。 该锁定通过用(!)字符串替换加密口令进行。如果有人试图使用此帐户访问系统,他会得到类似下面的错误。
# su - accountName
This account is currently not available.
要解锁或启用对锁定帐户的访问,请使用命令as。这将删除(!)字符串加密的密码。
# passwd -u accountName

15.强制执行更强的密码

许多用户都使用软或弱口令和密码可能与基于字典或砍死蛮力攻击。 在'pam_cracklib“模块是PAM( 可插拔认证模块 )模块,它会强制用户设置强密码可用。使用编辑器打开以下文件。 阅读:
# vi /etc/pam.d/system-auth
与使用信用参数(lcredit,ucredit,dcredi吨和/或ocredit分别小写,大写,数字及其他)添加线路
/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1

16.启用Iptables(防火墙)

我们强烈建议,以使Linux的防火墙来保证服务器的未经授权的访问。 在iptables的适用规则来过滤传入传出转发数据包。 我们可以指定源地址和目的地址,允许在特定的TCP / UDP端口号否认。
  1. 基本IPTables指南和提示

17.在Inittab中禁用Ctrl + Alt + Delete

在大多数Linux发行版,按“CTRL-ALT-DELETE”将花费你的系统重新启动的过程。所以,这是不是一个好主意,至少在生产服务器上启用此选项,如果有人错误地这样做。 这是在定义'/ etc / inittab中 '文件,如果你在该文件中仔细观察,你会看到类似下面一条线。默认行没有注释掉。我们必须评论出来。这个特定的密钥序列信令将关闭系统。
# Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

18.检查帐户是否为空密码

任何具有空密码的帐户意味着它被打开以便未经授权访问网络上的任何人,并且它是Linux服务器中的安全性的一部分。因此,您必须确保所有帐户都具有强密码,且没有任何人具有任何授权访问权限。空密码帐户是安全风险,可以很容易地攻击。要检查是否有任何帐户使用空密码,请使用以下命令。
# cat /etc/shadow | awk -F: '($2==""){print $1}'

19.登录前显示SSH横幅

在SSH身份验证之前,拥有带有一些安全警告的合法横幅或安全横幅总是一个更好的主意。设置这样的横幅阅读下面的文章。
  1. 向用户显示SSH警告消息

20.监控用户活动

如果你正在处理大量的用户,那么收集他们消费的每个用户活动和进程的信息,并在以后分析它们,或者如果有任何性能,安全问题的重要。但是我们如何能够监控和收集用户活动信息。 有两个被称为“psacct''ACCT'被用于监测在系统上的用户活动和过程的有用工具。 这些工具运行在系统后台,并持续跟踪系统和服务,如Apache,MySQLSSH,FTP等有关安装,配置和使用的详细信息所消耗的资源上的每个用户的活动,请访问以下网址。
  1. 使用psacct或acct命令监视用户活动

21.定期审查日志

将日志移动到专用日志服务器中,这可以防止入侵者轻松地修改本地日志。下面是常见的Linux默认日志文件名称及其用法:
  1. 在/ var /日志/消息 -当整个系统日志或当前活动日志可用。
  2. /var/log/auth.log -验证日志。
  3. /var/log/kern.log -内核日志。
  4. /var/log/cron.log - crond的日志(cron作业)。
  5. 在/ var /日志/ maillog中 -邮件服务器日志。
  6. /var/log/boot.log里 -系统启动日志。
  7. /var/log/mysqld.log - MySQL数据库服务器的日志文件。
  8. 在/ var /日志/安全 -验证日志。
  9. 在/ var /日志/ utmp文件/ var /日志/ wtmp文件 :登录记录文件。
  10. /var/log/yum.lo G:Yum日志文件。

22.重要文件备份

在生产系统中,有必要采取重要文件备份,并将其保存在安全库,远程站点或异地灾难恢复。

23.网卡绑定

有两种类型的在网卡键合方式,需要在键合界面提。
  1. 模式= 0 -轮循
  2. 模式= 1 -主动和备份
网卡绑定帮助我们避免单点故障。 在网卡绑定,我们结合两个或多个网络以太网卡在一起,使一个单一的虚拟接口,我们可以分配的IP地址与其他服务器的交谈。 我们的网络将在一个NIC卡的情况下,可为停机或不可因任何原因。 另请阅读在Linux中创建NIC通道绑定

24.保持/ boot为只读

Linux内核及其相关文件在/ boot目录默认情况下是为读写 。 它更改为只读降低了关键的引导文件未经授权的修改的风险。 要做到这一点,打开“/ etc / fstab文件 ”的文件。
# vi /etc/fstab
在底部添加以下行,保存并关闭它。
LABEL=/boot     /boot     ext2     defaults,ro     1 2
请注意,如果您需要在将来升级内核,您需要将更改重置为读写。

25.忽略ICMP或广播请求

加入“ 的/etc/sysctl.conf”文件下面一行忽略广播请求。
Ignore ICMP request:
net.ipv4.icmp_echo_ignore_all = 1
Ignore Broadcast request:
net.ipv4.icmp_echo_ignore_broadcasts = 1
通过运行以下命令加载新的设置或更改
#sysctl -p
如果您在上述列表中错过了任何重要的安全或强化提示,或者您还有其他需要包含在列表中的提示。请我们的评论框放下你的评论。HowToing正在接收的意见,建议以及讨论改善一直感兴趣。