Linux系统在设计上是安全的,并且提供了健壮的管理工具。但无论系统设计得多么好,其安全性都取决于用户。
初学者通常需要几年的时间来为他们的机器找到最好的安全策略。这就是为什么我们要为像你这样的新用户分享这些基本的Linux强化技巧。试试看。
密码是大多数系统的主要身份验证方法。无论您是家庭用户还是专业人士,强制执行可靠的密码都是必须的。首先,禁用空密码。你不会相信有多少人还在用它们。
awk -F: '($2 == "") {print}' /etc/shadow以root用户身份运行上述命令以查看哪些帐户的密码为空。如果发现有人密码为空,请立即锁定该用户。您可以使用以下方法来实现这一点。
passwd -l USERNAME您还可以设置密码老化,以确保用户不能使用旧密码。使用chage命令从终端执行此操作。
chage -l USERNAME此命令显示当前过期日期。要在30天后设置密码过期,请使用以下命令。用户可以使用Linux密码管理器来保证在线帐户的安全。
chage -M 30 USERNAME如果你对你的数据很认真,那就定期备份。这样,即使系统崩溃,也可以快速恢复数据。但是,选择正确的备份方法对于Linux的加固是至关重要的。
如果您是家庭用户,将数据克隆到硬盘驱动器就足够了。然而,企业需要提供快速恢复的复杂备份系统。
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-serverSSH协议是Linux远程通信的推荐方法。确保您的OpenSSH服务器(sshd)配置安全。您可以在这里了解有关设置SSH服务器的更多信息。
编辑/etc/ssh/sshd_config文件以设置ssh的安全策略。下面是一些常见的安全策略,任何人都可以使用。
PermitRootLogin no # disables root loginMaxAuthTries 3 # limits authentication attemptsPasswordAuthentication no # disables password authenticationPermitEmptyPasswords no # disables empty passwordsX11Forwarding no # disables GUI tran**issionDebianBanner no # di**ales verbose bannerAllowUsers *@XXX.X.XXX.0/24 # restrict users to an IP rangeCRON是一个健壮的Linux作业调度程序。它允许管理员使用crontab在Linux中调度任务。因此,限制谁可以运行CRON作业是至关重要的。您可以使用以下命令找出用户的所有活动cronjob。
crontab -l -u USERNAME检查每个用户的作业以确定是否有人在利用CRON。您可能希望阻止除您之外的所有用户使用crontab。运行以下命令以执行此操作。
echo $(whoami) >> /etc/cron.d/cron.allow# echo ALL >> /etc/cron.d/cron.denyLinux-PAM(Pluggable Authentication Modules)为应用程序和服务提供了强大的身份验证功能。您可以使用各种PAM策略来保护系统的登录。例如,以下命令限制密码重用。
# CentOS/RHELecho 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >> \> /etc/pam.d/system-auth# Ubuntu/Debianecho 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >> \> /etc/pam.d/common-password他们限制使用过去五周内使用过的密码。还有许多PAM策略提供了额外的安全层。
移除未使用的包可以减少对机器的攻击。因此,我们建议您删除很少使用的包。您可以使用以下命令查看当前安装的所有软件包。
yum list installed # CentOS/RHEL apt list --installed # Ubuntu/Debian假设要删除未使用的包vlc。可以通过以root用户身份运行以下命令来实现这一点。
yum remove vlc # CentOS/RHELapt remove vlc # Ubuntu/DebianLinux强化的另一个有效方法是保护内核参数。您可以使用sysctl或通过修改配置文件来配置这些参数。下面是一些常见的配置。
kernel.randomize_va_space=2 # randomnize address base for mmap, heap, and stackkernel.panic=10 # reboot after 10 sec following a kernel panicnet.ipv4.icmp_ignore_bogus_error_resp***es # protects bad error messagesnet.ipv4.ip_forward=0 # disables IP forwardingnet.ipv4.icmp_ignore_bogus_error_resp***es=1 # ignores ICP errors这些只是一些基本的配置。您将根据经验学习不同的内核配置方法。
Linux内核通过netfilterapi为网络包提供了健壮的过滤方法。您可以使用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 connecti***-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您可以利用日志来更好地理解您的Linux机器。您的系统为应用程序和服务存储多个日志文件。我们在这里概述一些基本的。
保护Linux系统并不像你想象的那么难。您可以通过遵循本指南中提到的一些提示来加强安全性。随着经验的积累,您将掌握更多保护Linux的方法。
...ux USB驱动器;使用哪种Linux并不重要,但Ubuntu和Mint是两个初学者友好的选择。 ...
...档很全面,但它确实假定对Linux的熟悉程度适中。新手和初学者在初始安装时可能会遇到一些问题。 ...
...自动化框架。它由命令行shell和基于.NET的脚本语言组成。管理员使用PowerShell作为管理Windows、Linux和网络客户端的一种手段。 ...
... 你可以在Linux中做这些事情,但这只是个开始。对于初学者,您可以尝试从资源相对密集的默认Ubuntu桌面切换到资源相对较少的替代桌面。有数百种其他发行版可供选择,而且有相当多的发行版针对的是RAM少得多的旧机器。...
...都应该使用Ubuntu。特别是,Ubuntu和它的大多数派生版本对初学者非常友好,所以我向任何进军Linux的人推荐这个。我第一次使用Linux是在一个古老的航天飞机XPC系统上安装Lubuntu。 ...
...对Linux感兴趣的人的必去之地。从经验丰富的专业人士到初学者,所有经验级别的Linux爱好者都可以从中受益。 ...
... 尽管如此,如果你是一个初学者,这可能不是你的应用程序。fman主要针对软件开发人员和其他精通技术的专业人士。 ...
...流行的Linux发行版之一。它很受各种Linux用户的欢迎,从初学者到经验丰富的Linux专业人士。对于开发人员和程序员来说,ubuntults(长期支持)提供了额外的稳定性。 ...
...代方案,OpenBSD for Raspberry Pi更适合用作网络服务器。许多管理员认为OpenBSD是最安全的服务器操作系统。 ...