提高Linux安全性:14项检查建立安全的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
  • /家
  • / tmp
  • / var
  • /选择

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

5. 锁定引导目录

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

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

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


  1. #chown root:root /etc/fstab 

那么您需要设置一些权限来保护启动设置:-以root身份设置/etc/grub.com的所有者和组:


  1. #chown root:root /etc/grub.conf 

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


  1. #chmod og-rwx /etc/grub.conf 

-单用户模式需要认证:


  1. #sed -i “/SINGLE/s/sushell/sulogin/”/etc/sysconfig/init 
  2.  
  3. #sed -i “/PROMPT/s/yes/no/” /etc/sysconfig/init 

6. 禁用USB存储设备

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

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


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

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


  1. blacklist usb_storage 

然后打开rc.local文件,添加以下两行数据:


  1. modprobe –r usb_storage 
  2.  
  3. exit 0 

7. 系统更新

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


  1. 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远程登录:


  1. PermitRootLogin no 

-允许某些特殊用户:


  1. AllowUsers [username] 

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

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

  • 协议2
  • IgnoreRhosts为yes
  • Hostbase验证无
  • PermitEmptyPasswords no
  • 打开X11Forwarding 没有
  • MaxAuthTries 5
  • 密码aes128-ctr,aes192-ctr,aes256-ctr
  • ClientAliveInterval 900
  • ClientAliveCountMax 0
  • UsePAM 是的

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


  1. #chown root:root etc/ssh/sshd_config 
  2.  
  3. #chmod 600 /etc/ssh/sshd_config 

11 – 启用SELinux

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

  • 禁用:关闭
  • 允许:打印警告
  • 执法:政策是强制执行

打开配置文件:


  1. #nano /etc/selinux/config  

确保SELinux已打开:


  1. SELINUX=enforcing 

12. 网络参数

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

  • 将net.ipv4.ip_forward参数设置为0。
  • 将net.ipv4.conf.all.send_redirects和net.ipv4.conf.default.send_redirects参数设置为0。
  • 将net.ipv4.conf.all.accept_redirects和net.ipv4.conf.default.accept_redirects参数设置为0。
  • 将net.ipv4.icmp_ignore_bogus_error_responses参数设置为1。

13. 密码政策

人们通常在不同的地方使用相同的密码,这是一个非常糟糕的习惯。旧密码存储在/ etc / security /
opasswd文件中,我们需要使用PAM模块来管理Linux主机中的安全策略。在Debian版本中,您可以打开/etc/pam.d/common-password文件,并添加以下信息,以防止用户重复使用最近使用的四个密码:


  1. auth      sufficient  pam_unix. so likeauthnullok 
  2.  
  3. password  sufficient  pam_unix.so  remember=4 

另一个密码策略是强制用户使用强大的密码。PAM模块提供了一个库(pam_cracklib),可以帮助您的服务器进行字典攻击和爆破攻击。打开/etc/pam.d/system-auth文件并添加以下信息:


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

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

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


  1. auth required pam_env.so 
  2.  
  3. auth required pam_faillock.so  preauth audit silent deny= 5unlock_time =604800 
  4.  
  5. auth [success=1 default =bad] pam_unix.so 
  6.  
  7. auth [default=die]  pam_faillock.so authfail audit  deny =5unlock_time=604800 
  8.  
  9. auth sufficient pam_faillock.so  authsucc audit deny=5unlock_time = 604800 
  10.  
  11. auth required pam_deny.so 

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


  1. auth required pam_env.so 
  2.  
  3. auth required pam_faillock.so  preauth audit silent deny= 5  unlock_time=604800 
  4.  
  5. auth [success=1 default =bad] pam_unix.so 
  6.  
  7. auth [default=die]  pam_faillock.so authfail audit  deny =5unlock_time=604800 
  8.  
  9. auth sufficient pam_faillock.so  authsucc audit deny=5unlock_time = 604800 
  10.  
  11. auth required pam_deny.so 

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


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

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

  • 将/etc/login.defs中的PASS_MAX_DAYS参数设置为90。
  • 修改当前用户的密码到期时间:

  1. #chage –maxdays 90 <user>  

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


  1. auth required pam_wheel.so     use_uid  

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


  1. #!/bin/bash 
  2.  
  3. for user in `awk – F: ‘($3 < 500) {print $1 }’/etc / passwd`; do 
  4.  
  5. if [ $user != “root”  ] 
  6.  
  7. then 
  8.  
  9. /usr/sbin/usermod  –L $user 
  10.  
  11. if [ $user != “sync”  ] && [ $user  != “shutdown” ] && [  $ user  != “halt” ] 
  12.  
  13. then /usr/sbin/ usermod –s /sbin/ nologin  $user 
  14.  
  15. fi 
  16.  
  17. fi 
  18.  
  19. done 

14. 许可和验证

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

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


  1. #chown root:root /etc/anacrontab 
  2.  
  3. #chmod og-rwx /etc/anacrontab 
  4.  
  5. #chown root:root /etc/crontab 
  6.  
  7. #chmod og-rwx /etc/crontab 
  8.  
  9. #chown root:root /etc/cron.hourly 
  10.  
  11. #chmod og-rwx /etc/cron.hourly 
  12.  
  13. #chown root:root /etc/cron.daily 
  14.  
  15. #chmod og-rwx /etc/cron.daily 
  16.  
  17. #chown root:root /etc/cron.weekly 
  18.  
  19. #chmod og-rwx /etc/cron.weekly 
  20.  
  21. #chown root:root /etc/cron.monthly 
  22.  
  23. #chmod og-rwx /etc/cron.monthly 
  24.  
  25. #chown root:root /etc/cron.d 
  26.  
  27. #chmod og-rwx /etc/cron.d 

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


  1. #chown root:root <crontabfile> 
  2.  
  3. #chmod og-rwx <crontabfile> 

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


  1. #chmod 644 /etc/passwd 
  2.  
  3. #chown root:root /etc/passwd 
  4.  
  5. #chmod 644 /etc/group 
  6.  
  7. #chown root:root /etc/group 
  8.  
  9. #chmod 600 /etc/shadow 
  10.  
  11. #chown root:root /etc/shadow 
  12.  
  13. #chmod 600 /etc/gshadow 
  14.  
  15. #chown root:root /etc/gshadow 

作者:Enming0924
来源:51CTO

时间: 2024-09-23 23:23:38

提高Linux安全性:14项检查建立安全的Linux服务器的相关文章

win xp使用数据加密来提高系统安全性

在windows xp系统中使用数据加密可以把你的电脑的安全系数加大和更好的保存和保密文件.所以当你想要加固你的系统来阻止未经授权的访问和不幸的灾难的发生,那么对于数据加密就能很好的当你的护身符哦!所以现在我们就来看看那些预防的措施吧! 1.使用安全系数高的密码 提高安全性的最简单有效的方法之一就是使用一个不会轻易被暴力攻击所猜到的密码. 什么是暴力攻击?攻击者使用一个自动化系统来尽可能快的猜测密码,以希望不久可以发现正确的密码.使用包含特殊字符和空格,同时使用大小写字母,避免使用从字典中能找到

WindowsXP提高账户密码安全性的方法

WindowsXP提高账户密码安全性的方法   平时我们定义更安全的密码规则用到的是系统的"本地安全设置"工具,可以在"开始→运行"中输入"secpol.msc"激活它.在主窗口的左侧目录树依次展开"账户策略→密码策略",我们要定义的密码规则就是在右侧面板显示的选项了! 设置密码复杂性 首先双击"密码必须符合复杂性要求",将安全设置设为"已启用",此时用户在"控制面板→用户账户

如何用移动应用评估来提高企业安全性?

移动应用市场正在高速发展,截至2017年3月,Android用户可使用280万款应用,同时苹果App Store则提供220万款应用. 面对如此海量的应用,对企业来说,确定哪些应用用于企业用途是十分困难的.即使是最有用的应用都可能会增加企业安全风险,因此,安全团队需要将移动应用评估作为其工作的一部分. 应用评估可帮助安全团队了解应用的功能以及它如何与移动设备中的数据进行交互.根据评估的结果,安全团队可确定应用是否适合在其业务环境中使用. 评估应用的运作方式可让安全团队主动识别潜在的风险.在这样做

国家税务总局:纳税人依法享有14项权利

税务总局发布<纳税人权利与义务公告> 本报北京12月2日讯 记者蔡岩红 国家税务总局近日发布<纳税人权利与义务公告>,第一次以税收规范性文件的形式,将<中华人民共和国税收征收管理法>及其实施细则和相关税收法律.行政法规中有关纳税人权利与义务的规定进行了系统归纳和整理,列明了纳税人享有的权利和应该履行的义务. 该公告明确,纳税人在履行纳税义务的过程中,依法享有14项权利.具体包括:知情权.保密权.税收监督权.纳税申报方式选择权.申请延期申报权.申请延期缴纳税款权.申请退还

Linux mint 14下搭建个性DNS域名解析服务器

本例的DNS服务器使用powerDNS+mysql+powerAdmin搭建. 最近小编我在自己的pc上安装了linux mint 14桌面版操作系统,就像试试这个桌面版的操作系统能不能实现服务器系统的性能,整好我最近在尝试使用一种新的搭建dns服务器的方法(不使用bind),powerDns+mysql+powerAdmin,这种dns服务器易于管理,因为有web页面可一直接添加.修改.更新和删除域或者记录,于是小编我就开始动手做了. setp 1:准备工作,你需要下载相应的软件包啦,Powe

电脑中设置SAM锁定密码提高系统安全性的方法

  电脑中设置SAM锁定密码提高系统安全性的方法          1.设置SAM锁定工具后,如果SAM数据库出现问题会产生无法通过身份验证,无法进入操作系统,或者是避免用户密码丢失,不需验证直接进入操作系统等严重安全隐患,设置第一步,打开开始--运行; 2.在运行中输入Syskey后,点击确定; 3.在打开的"保证Windows账户数据库的安全"点击"更新"; 4.在出现的"启动密钥"窗口,选择"密码启动"输入需要设置的密码

Linux有问必答:如何检查PDF中使用了哪种字体

Linux有问必答:如何检查PDF中使用了哪种字体 问题:我想要知道PDF文件中使用了什么字体,或者嵌入了什么字体.Linux中有工具可以检查PDF文档中使用了哪种字体吗? 要检查PDF文件中包含了,或者使用了什么字体,你可以使用命令行工具:pdffonts,它是一个PDF字体分析工具.pdffonts是Poppler PDF工具集包中的一个部分. 安装PDF工具集到Linux 要安装Poppler到Debian,Ubuntu或Linux Mint: $ sudo apt-get install

展望2013:不能错过的14项预测

通常来说,预测未来都是蠢货们玩玩的把戏.不管你自以为自己有多聪明,事情的发展总有超出逻辑的时候,不但会使所作出的预测发生偏差,有时候甚至还会发生和预测截然相反的结果.这或许就是为什么我们拥有智能手机,而不是飞行背包的原因所在. 大家不妨在2012年行将结束之时,看看有些什么 ReadWrite团队试图用年底这个机会去凝视即将到来的2013年,并且准备好了14件在未来一年内可能会发生的事情,ReadWrite按照消费者以及企业的视角做了预测均分.事实上,这是ReadWrite第一次对范围如此广的重

Linux有问必答:如何检查Linux的内存使用状况

Linux有问必答:如何检查Linux的内存使用状况 问题:我想要监测Linux系统的内存使用状况.有哪些可用的图形界面或者命令行工具来检查当前内存使用情况? 当涉及到Linux系统性能优化的时候,物理内存是一个最重要的因素.自然的,Linux提供了丰富的选择来监测珍贵的内存资源的使用情况.不同的工具,在监测粒度(例如:全系统范围,每个进程,每个用户),接口方式(例如:图形用户界面,命令行,ncurses)或者运行模式(交互模式,批量处理模式)上都不尽相同. 下面是一个可供选择的,但并不全面的图