赞
踩
这并不是一个全面的安全指南。它可以帮助你防止近90%的流行后端攻击,例如尝试登录暴力破解和DDoS。最好是你可以在一两个小时内实现它们。
要访问远程服务器,要么使用密码登录,要么使用SSH密钥。密码的问题在于它们很容易被暴力破解(你将在后面学习如何防止这种情况)。此外,在需要访问服务器时,您必须使用键盘输入。
为了避免上述缺点,你可以设置SSH密钥验证。它比密码更安全,因为黑客无法暴力破解它们。由于不需要输入密码,连接到服务器也更容易、更快。
以下是如何为服务器设置SSH身份验证。
ssh - keygen
上面的命令会带你完成几个步骤来生成SSH密钥。注意存储密钥的文件。
ssh-copy-id username@remote_host
确保将 username 和 remote_host 替换为你的真实用户名和服务器的IP地址。系统将提示您输入密码。
ssh username@remote_host
别忘了把 username 和 remote_host 替换成你服务器的信息。您应该注意到,这一次不会提示您输入密码。
许多安全协议利用您的系统时间来运行定时任务、记录日志和执行其他关键任务。
如果您的系统时间不正确,可能会对服务器产生负面影响。为了防止这种情况发生,你可以安装一个NTP客户端。此客户端将使您的系统时间与网络时间协议Network Time Protocol(NTP)保持同步。
使用下面的命令安装NTP客户端:
sudo apt install ntp
这样你就再也不用担心系统时间不同步了。
服务器上的应用程序公开某些端口,以便网络中的其他应用程序可以访问它们。黑客也可以在你的服务器上安装后门并暴露一个端口,通过这个端口他们可以控制服务器。
出于这个原因,我们不希望你的服务器监听我们不知道的端口。
使用如下命令查看活动端口:
sudo ss -lntup
看一下输出,并研究一下您不熟悉的端口或进程。尝试发现并跟踪潜在的有害服务和进程。
首先,看看这个"Bad" TCP/UDP Ports List。
你可以通过防火墙设置停止/允许服务器上特定端口的进行通信。为此,我通常使用UFW(uncomplicated firewall).
UFW的工作原理是让你配置以下规则:
sudo apt-get install ufw
sudo ufw default deny outgoing comment 'deny all outgoing traffic'
sudo ufw default allow outgoing comment 'allow all outgoing traffic'
sudo ufw default deny incoming comment 'deny all incoming traffic'
sudo ufw limit in ssh comment 'allow SSH connections in'
# 允许流量出53端口 -- DNS
sudo ufw allow out 53 comment 'allow DNS calls out'
# 允许流量出123端口 -- NTP
sudo ufw allow out 123 comment 'allow NTP out'
# 放开 HTTP, HTTPS, or FTP
# apt可能需要这些,这取决于你使用的资源
sudo ufw allow out http comment 'allow HTTP traffic out'
sudo ufw allow out https comment 'allow HTTPS traffic out'
sudo ufw allow out ftp comment 'allow FTP traffic out'
# 允许域名查询服务
sudo ufw allow out whois comment 'allow whois'
# 允许流量出68端口 -- the DHCP client
# 只有在使用DHCP时才需要这个
sudo ufw allow out 68 comment 'allow the DHCP client to update'
sudo ufw deny 99
sudo ufw enable
sudo ufw status
有两个工具可以防止大多数自动攻击:
我们了解了端口可以访问服务器上的应用程序。
攻击者可能会扫描你的服务器,寻找他们可以用来访问服务器的开放端口。
PSAD可以监控网络活动,以检测并有选择地阻止此类扫描和其他类型的可疑流量,如DDoS或操作系统指纹尝试。
Fail2Ban会扫描各种应用程序(如FTP)的日志文件,并自动禁止显示恶意迹象的ip地址,如自动登录尝试。
服务器上的应用程序通常会将日志消息保存到日志文件中。除非你想手动监控日志文件,否则需要安装logwatch。
Logwatch扫描并汇总系统日志文件。
您可以直接从命令行运行它,也可以将它安排为按定期计划运行。例如,您可以配置logwatch,以电子邮件向您发送日志文件的每日摘要。请注意,您的服务器需要能够发送电子邮件才能工作。
Logwatch使用服务文件来了解如何读取和汇总日志文件。你可以在/usr/share/logwatch/scripts/services
目录中看到所有的服务文件。
Logwatch的配置文件/usr/share/ Logwatch /default.conf/ Logwatch .conf
指定了默认选项。你可以通过命令行参数来覆盖它们。
要在Ubuntu或Debian上安装logwatch,请执行以下命令:
apt-get install logwatch
对于使用其他Linux发行版的用户,请查看Linode的epic指南。
您可以尝试直接运行logwatch,以便查看它收集的内容的示例。
sudo /usr/sbin/logwatch --output stdout --format text --range yesterday --service all
最后,告诉logwatch每天给我们发送一封包含日志文件摘要的电子邮件。为此,打开文件_/etc/cron。并找到execute行,然后将其更改为以下内容:
/usr/sbin/logwatch --output mail --format html --mailto root --range yesterday --service all
在确保Linux服务器的安全之后,您应该执行安全审计,以便发现您可能错过的任何安全漏洞。你可以使用Lynis,这是一个开源软件,它可以执行:
首先,通过克隆Lynis的Github仓库来安装它。这可以确保你安装最新版本的Lynis。
git clone https://github.com/CISOfy/lynis
切换到我们克隆Lynis的目录:
cd lynis
最后,使用以下命令运行Lynis:
lynis audit system
你可以在他们的官方网站了解更多关于Lynis的信息。
恭喜你阅读了另一篇加固Linux服务器的指南。我希望你学到了新东西。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。