提高Linux安全性:14项建立安全的Linux服务器

也许大多数人认为Linux是安全的? 但是我想告诉你这个想法是绝对错误的!

假设你的笔记本电脑没有增强安全性被盗,小偷将首先尝试使用“根”(用户名)和“托尔”(密码)登录到您的计算机,因为这是KaliLinux名和密码默认的用户,而且人们仍然会继续使用它们。

你也是这样吗? 我希望你不是!

在这篇文章中,我将与大家分享一些方法可以让你的Linux主机更加安全,其中包括一些渗透测试技能。 应该注意的是,目前市面上有许多不同的Linux发行版,从命令行工具的角度来看,虽然这些版本不同,但原理和处理逻辑是一样的。

现在我将详细的给大家介绍下。

1 - 记录主机信息

每当您正在使用新的Linux主机进行安全增强时,您需要创建一个文档并记录本文档中列出的项目,工作完成后,您将需要检查这些项目。

另外,您需要记录有关Linux主机的信息:

  • 设备名称

  • IP地址

  • MAC地址

  • 负责安全提升工作的人(实际上是你)

  • 日期

  • 资产编号(如果您正在开展业务,则需要记录设备的资产编号)

2-BIOS保护

您需要为这台主机的BIOS设置密码,以确保最终用户不能修改或覆盖在BIOS中,这是非常重要的安全设置!

设置BIOS管理员密码后,您需要从外部媒体设备(USB / CD / DVD)禁用主机启动。

如果忽略此设置,任何人都可以通过写入引导映像的U盘访问此主机中的数据。

在内置Web服务器的新服务器主板中,您可以使用它来远程访问主机数据。 所以你要确保你已经修改了服务器管理页面的默认密码,如果可以的话,直接禁用此功能。

3 - 硬盘加密

大多数Linux发行版允许您在继续安装之前加密磁盘。 磁盘加密非常重要,因为当您的电脑被盗时,即使小偷将您的硬盘驱入自己的电脑仍然无法读取您的数据。

在下图中,在列表中选择第三个选项:引导 - 使用整个磁盘并设置加密LVM(LVM代表逻辑卷管理器)。

如果您的Linux发行版不支持加密,则可以选择使用TrueCrypt等加密软件。

4、磁盘保护

数据备份是一个很好的习惯,当系统崩溃或系统更新失败时,突出显示备份的优点。

对于一些重要的服务器,为了防止灾难(包括自然灾害和人为因素)的影响,备份数据通常需要离线存储。

当然,备份也要求我们花费精力去管理。 例如,需要保存旧备份文件多长时间? 什么时候需要备份系统? (每日或每周)?

核心系统磁盘需要分区:

  • /

  • / boot

  • / usr

  • /home

  • / tmp

  • / var

  • /tmp

磁盘分区可能在系统故障的情况下仍然保护系统的性能和安全性。 在下图中,您可以在安装过程中看到由Kali Linux提供的分区选项。

5 - 锁定引导目录

引导目录包含大量与Linux内核相关的重要文件,因此您需要确保目录仅通过以下步骤“只读”才能打开。

首先打开“fstab”文件。

接下来,添加下图所示的最后一行数据。

完成此步骤后,您需要执行以下命令来设置文件的所有者:

#chown root:root /etc/fstab

那么您需要设置一些权限来保护启动设置:

以root身份设置/etc/grub.conf的所有者和组:

#chown root:root /etc/grub.conf

设置/etc/grub.conf文件只有root可以读写:

#chmod og-rwx /etc/grub.conf

单用户模式需要认证:

#sed -i “/SINGLE/s/sushell/sulogin/”/etc/sysconfig/init

#sed -i “/PROMPT/s/yes/no/” /etc/sysconfig/init

6 - 禁用USB存储设备

根据您系统的重要性,有时您需要禁用Linux主机使用USB存储设备。 有很多方法来禁用USB存储设备,以下是为您提供最常用的设备:

用你最喜爱的文本编辑器打开“blacklist.conf”文件:

#nano /etc/modprobe.d/blacklist.conf

打开文件后,将以下信息添加到文件底部并保存并退出:

blacklist usb_storage

然后打开rc.local文件:

#nano /etc/rc.local

添加以下两行数据:

modprobe –r usb_storage

exit 0

7 - 系统更新

第一次启动后,首先要更新系统,这个步骤应该被认为比较简单。 通常,您可以打开终端,然后执行相应的命令。

在Kali Linux中,您可以使用以下命令更新系统:

apt-get update && apt-get upgrade

8 - 检查已安装的软件包

列出您的Linux系统中的所有已安装的软件包,然后删除不需要的软件包。 如果您正在服务器上工作,那么您必须非常小心,因为服务器通常仅用于安装应用程序和服务。

您可以按照以下命令列出在Kali Linux中安装的软件包:

记住要禁用那些不需要减少服务器攻击面的服务。 如果您在自己的Linux服务器中发现以下遗留服务,请快速删除它们:

Telnet服务器

RSH服务器

NIS服务器

TFTP服务器

TALK服务器

9 - 检查打开的端口

识别与互联网的开放连接是非常重要的任务。

在Kali Linux中,我们可以使用以下命令查找隐藏的开放端口:

10 - 增强SSH的安全性

是的,SSH真的很安全,但是我们还要继续在现有的基础上增强其安全性。 首先,如果你可以禁用SSH,那么问题就解决了。

但是,如果仍然需要使用它,则需要修改SSH的默认配置。

切换到目录/ etc / ssh,然后打开“sshd_config”文件。

将默认端口号(22)更改为另一个号码(例如99)。

确保root用户无法通过SSH远程登录:

PermitRootLogin no

允许某些特殊用户:

AllowUsers [username]

如果您需要更丰富的配置,请确保您阅读SSH手册并了解文件中的所有配置项。

另外,您还需要确保在“sshd_config”文件中配置以下配置选项:

协议2

IgnoreRhosts为yes

HostbasedAuthentication号

PermitEmptyPasswords no

X11推进号

MaxAuthTries 5

密码aes128-ctr,aes192-ctr,aes256-ctr

ClientAliveInterval 900

ClientAliveCountMax 0

UsePAM是的

最后,设置文件访问权限,以确保只有root用户可以修改文件的内容:

#chown root:root etc/ssh/sshd_config

#chmod 600 /etc/ssh/sshd_config

11 - 启用SELinux

SELinux是支持访问控制安全策略的内核安全机制。 SELinux有三种配置模式:

禁用:关闭

允许:打印警告

执行:执行策略

打开配置文件:

#nano /etc/selinux/config

确保SELinux已打开:

SELINUX=enforcing

12 - 网络参数

保护Linux主机网络活动也非常重要,从来没有希望防火墙能够帮助您完成所有的任务。 打开/etc/sysctl.conf文件并进行以下设置:

  • 将net.ipv4.ip_forward参数设置为0。

  • 将net.ipv4.conf.all.sendredirects和net.ipv4.conf.default.sendredirects参数设置为0。

  • 将net.ipv4.conf.all.acceptredirects net.ipv4.conf.default.acceptredirects参数设置为0。

  • 将net.ipv4.icmpignoreboguserrorresponses参数设置为1。

13 - 密码政策

人们通常在不同的地方使用相同的密码,这是一个非常糟糕的习惯。 旧密码存储在/ etc / security / opasswd文件中,我们需要使用PAM模块来管理Linux主机中的安全策略。

在Debian版本中,您可以打开/etc/pam.d/common-password文件,并添加以下信息,以防止用户重复使用最近使用的四个密码:

auth      sufficient  pam_unix.so likeauthnullok

password  sufficient  pam_unix.so remember=4

另一个密码策略是强制用户使用强大的密码。

PAM模块提供了一个库(pam_cracklib),可以帮助您的服务器进行字典攻击和爆破攻击。

打开/etc/pam.d/system-auth文件并添加以下信息:

/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8lcredit=–1 ucredit=–2 dcredit=–2 ocredit=–1

Linux是密码哈希,所以你想确保系统使用SHA512哈希算法。

另一个有趣的功能是“五次锁定帐户后的密码输出错误”。打开/etc/pam.d/password-auth文件并添加以下数据:

auth required pam_env.so

auth required pam_faillock.so preauth audit silent 
deny=5unlock_time=604800

auth [success=1 default=bad] pam_unix.so

auth [default=die] pam_faillock.so authfail audit 
deny=5unlock_time=604800

auth sufficient pam_faillock.so authsucc audit 

deny=5unlock_time=604800

auth required pam_deny.so

然后打开/etc/pam.d/system-auth文件并添加以下信息:

auth required pam_env.so

auth required pam_faillock.so preauth audit silent deny=5 unlock_time=604800

auth [success=1 default=bad] pam_unix.so

auth [default=die] pam_faillock.so authfail audit 
deny=5unlock_time=604800

auth sufficient pam_faillock.so authsucc audit 
deny=5unlock_time=604800

auth required pam_deny.so

密码错误五次后,只有管理员可以解锁帐号,解锁命令如下:

# /usr/sbin/faillock –user <userlocked> –reset

另一个好习惯就是设置“密码到期后的90天”。

  • 将/etc/login.defs中的PASSMAXDAYS参数设置为90。

  • 修改当前用户的密码到期时间:

    #chage –maxdays 90 <user>
    

现在,我们必须限制对su命令的访问。 打开/etc/pam.d/su文件,然后设置pam_wheel.so参数:

 auth required pam_wheel.so use_uid

最后一步是禁止非root用户访问系统帐户。 可以使用以下bash脚本完成此步骤:

 #!/bin/bash

 for user in `awk –F: ‘($3 < 500) {print $1 }’/etc/passwd`; do

 if [ $user != “root” ]

 then

 /usr/sbin/usermod –L $user

 if [ $user != “sync” ] && [ $user !=“shutdown” ] && [ $user != “halt” ]

 then /usr/sbin/usermod –s /sbin/nologin $user

 fi

 fi

 done

14 - 许可和验证

毫无疑问,如果要确保Linux主机的安全性,那么权限当然是最重要的。

使用以下命令为/ etc / anacrontab,/ etc / crontab和/etc/cron.*设置适当的权限:

 #chown root:root /etc/anacrontab

 #chmod og-rwx /etc/anacrontab

 #chown root:root /etc/crontab

 #chmod og-rwx /etc/crontab

 #chown root:root /etc/cron.hourly

 #chmod og-rwx /etc/cron.hourly

 #chown root:root /etc/cron.daily

 #chmod og-rwx /etc/cron.daily

 #chown root:root /etc/cron.weekly

 #chmod og-rwx /etc/cron.weekly

 #chown root:root /etc/cron.monthly

 #chmod og-rwx /etc/cron.monthly

 #chown root:root /etc/cron.d

 #chmod og-rwx /etc/cron.d

为/ var / spool / cron分配适当的权限:

 #chown root:root <crontabfile>

 #chmod og-rwx <crontabfile>

为“passwd”,“group”,“shadow”和“gshadow”文件分配适当的权限:

 #chmod 644 /etc/passwd

 #chown root:root /etc/passwd

 #chmod 644 /etc/group

 #chown root:root /etc/group

 #chmod 600 /etc/shadow

 #chown root:root /etc/shadow

 #chmod 600 /etc/gshadow

 #chown root:root /etc/gshadow

作者:DO SON,由悬镜安全xmirror编译,如需转载请标注:http://www.xmirror.cn/

备注:悬镜服务器卫士专注Linux服务器防黑加固安全,永久免费,欢迎您体验。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值