给初级系统管理员的 10 个 Linux 强化技巧

Linux 系统在设计上是安全的,并提供强大的管理工具。 但无论系统设计得多么好,其安全性都取决于用户。

初学者通常需要数年时间才能为他们的机器找到最佳的安全策略。 这就是为什么我们要为像您这样的新用户分享这些重要的 Linux 强化技巧。 试一试。

1. 执行强密码策略

密码是大多数系统的主要身份验证方法。 无论您是家庭用户还是专业人士,都必须强制执行可靠的密码。 首先,禁用空密码。 你不会相信有多少人还在使用它们。

awk -F: '($2 == "") {print}' /etc/shadow

以root身份运行上述命令,查看哪些账户的密码为空。 如果您发现某人的密码为空,请立即锁定该用户。 您可以使用以下方法执行此操作。

passwd -l USERNAME

您还可以设置密码时效以确保用户无法使用旧密码。 使用 chage 命令从您的终端执行此操作。

chage -l USERNAME

此命令显示当前到期日期。 要在 30 天后设置密码过期,请使用以下命令。 用户可以使用 Linux 密码管理器来保证在线帐户的安全。

chage -M 30 USERNAME

2.备份基本数据

如果您对数据很认真,请设置定期备份。 这样,即使您的系统崩溃,您也可以快速恢复数据。 但是,选择正确的备份方法对于 Linux 加固至关重要。

如果您是家庭用户,将数据克隆到硬盘驱动器就足够了。 然而,企业需要能够提供快速恢复的复杂备份系统。

3.避免传统的沟通方式

Linux 支持许多远程通信方法。 但是,telnet、rlogin 和 ftp 等传统 Unix 服务可能会带来严重的安全问题。 所以,尽量避免它们。 您可以完全删除它们以减少与它们相关的安全问题。

apt-get --purge remove xinetd nis tftpd tftpd-hpa telnetd 
> rsh-server rsh-redone-server

此命令从 Ubuntu/Debian 机器中删除一些广泛使用但过时的服务。 如果您使用的是基于 RPM 的系统,请改用以下内容。

yum erase xinetd ypserv tftp-server telnet-server rsh-server

4. 安全的 OpenSSH

SSH 协议是推荐的 Linux 远程通信方法。 确保保护您的 OpenSSH 服务器 (sshd) 配置。 您可以在此处了解有关设置 SSH 服务器的更多信息。

编辑 /etc/ssh/sshd_config 为 ssh 设置安全策略的文件。 以下是任何人都可以使用的一些常见安全策略。

The specified language : markup does not exist'
Code generation failed!!

'

5. 限制 CRON 使用

CRON 是一个强大的 Linux 作业调度程序。 它允许管理员使用 crontab 在 Linux 中安排任务。 因此,限制谁可以运行 CRON 作业至关重要。 您可以使用以下命令找出用户的所有活动 cronjobs。

crontab -l -u USERNAME

检查每个用户的作业,看看是否有人在利用 CRON。 您可能希望阻止除您之外的所有用户使用 crontab。 对此运行以下命令。

echo $(whoami) >> /etc/cron.d/cron.allow
# echo ALL >> /etc/cron.d/cron.deny

6. 实施 PAM 模块

Linux PAM (Pluggable Authentication Modules) 为应用程序和服务提供了强大的身份验证功能。 您可以使用各种 PAM 策略来保护系统的登录。 为了 example,以下命令限制密码重用。

# CentOS/RHEL
echo 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >>
> /etc/pam.d/system-auth
# Ubuntu/Debian
echo 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >>
> /etc/pam.d/common-password

他们限制使用过去五周内使用过的密码。 还有更多的 PAM 策略可以提供额外的安全层。

7.删除未使用的包

删除未使用的包可以减少机器上的攻击面。 因此,我们建议您删除很少使用的软件包。 您可以使用以下命令查看所有当前安装的软件包。

yum list installed           # CentOS/RHEL 
apt list --installed # Ubuntu/Debian

假设您要删除未使用的包 vlc。 您可以通过以 root 身份运行以下命令来执行此操作。

yum remove vlc              # CentOS/RHEL
apt remove vlc # Ubuntu/Debian

8. 安全内核参数

Linux 加固的另一种有效方法是保护内核参数。 您可以使用配置这些参数 系统控制 或者通过修改配置文件。 下面是一些常见的配置。

kernel.randomize_va_space=2          # randomnize address base for mmap, heap, and stack
kernel.panic=10 # reboot after 10 sec following a kernel panic
net.ipv4.icmp_ignore_bogus_error_responses # protects bad error messages
net.ipv4.ip_forward=0 # disables IP forwarding
net.ipv4.icmp_ignore_bogus_error_responses=1 # ignores ICP errors

这些只是一些基本配置。 您将通过经验学习不同的内核配置方式。

9.配置iptables

Linux 内核通过其 Netfilter API 为网络数据包提供强大的过滤方法。 您可以使用 iptables 与此 API 交互并为网络请求设置自定义过滤器。 下面是一些针对安全用户的基本 iptables 规则。

-A INPUT -j REJECT              # reject all inbound requests
-A FORWARD -j REJECT # reject traffic forwarding
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT # allow traffic on localhost
# allow ping requests
-A OUTPUT -p icmp -j ACCEPT # allow outgoing pings
# allow established/related connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow DNS lookups
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
# allow http/https requests
-A OUTPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
# allow SSH access
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT

10. 监控日志

您可以利用日志更好地了解您的 Linux 机器。 您的系统为应用程序和服务存储了多个日志文件。 我们在这里概述了重要的内容。

  • /var/log/auth.log — 记录授权尝试
  • /var/log/daemon.log — 记录后台应用程序
  • /var/log/debug — 记录调试数据
  • /var/log/kern.log — 记录内核数据
  • /var/log/syslog — 记录系统数据
  • /var/log/faillog — 记录失败的登录

适合初学者的最佳 Linux 强化技巧

保护 Linux 系统并不像您想象的那么难。 您可以按照本指南中提到的一些提示来加强安全性。 随着经验的积累,您将掌握更多保护 Linux 的方法。