Linux服务器是现代互联网的支柱。https://www.lenovohs.com/几乎所有可以通过 Web 浏览器访问的网站和服务都运行在Linux发行版上。在这里,我们向您展示如何保护您的Linux服务器。
注意:本教程是基于Ubuntu系统服务器的,但它也应该适用于其他 Linux 发行版,包括您的本地 Web 服务器。
1、删除root账号的SSH访问
保护Ubuntu服务器的最快方法之一是通过禁用Root账号的SSH 访问来保护 SSH 守护程序。默认情况下,OpenSSH 服务器允许任何传入连接以 root 用户身份登录。
例如,在不安全的服务器中运行以下命令将提供登录提示:
ssh root@服务器ip地址
这会使您的服务器处于打开状态并容易受到密码暴力攻击。要解决此问题,请登录您的 Linux 服务器并更新 SSH 守护程序的配置文件。
进入Linux服务器后,编辑 SSH配置文件:
sudo nano /etc/ssh/sshd_config
通过按Ctrl+W并输入PermitRootLogin,在GNU Nano中搜索PermitRoot Login变量。
将 PermitRootLogin 的值从“yes”更改为“no”,然后按Ctrl+o,再按Ctrl+x保存文件。
要应用新设置,请通过以下方式重新加载服务器的 SSH 守护程序systemctl:
sudo systemctl restart ssh
2、使用公共密钥进行SSH访问
保护Linux服务器的另一种快速方法是在本地和 SSH 用户帐户之间创建一个公钥对。这种方法跳过密码登录过程并自动向您的远程服务器验证您的身份。
要创建公钥对,您需要首先在本地机器上运行以下命令:
ssh-keygen
keygen程序将要求您提供有关您要制作的密钥的许多详细信息。按Enter键三次,可以安全的将这些选项保留为默认值。
ssh-copy-id使用该程序将新的公钥对导出到远程服务器。这是一个简单的实用程序,可以让本地和远程机器准备好通过 SSH 进行公钥认证。
ssh-copy-id ramces@服务器ip地址
通过运行以下命令登录到远程计算机:
ssh ramces@服务器ip地址
还可以通过删除 SSH 中的登录提示来进一步保护您的 Linux 服务器。使用以下命令打开守护程序的配置文件:
sudo nano /etc/ssh/sshd_config
找到PasswordAuthentication变量并将其值从“yes”更改为“no”。
通过运行以下命令重新加载 SSH 守护程序:
sudo systemctl restart sshd
3. 加固 Linux 服务器的防火墙
除了限制 SSH 访问之外,您还可以通过配置防火墙来提高 Linux 服务器的安全性。默认情况下,新的 Linux 机器将接受来自任何端口的所有传入连接。
它会使您的服务器更容易受到端口扫描攻击。例如,攻击者可以扫描您的机器以查找任何不安全的端口,并使用它来找到合适的漏洞利用。
解决此问题的一种方法是安装 ufw,这是一个简单的防火墙客户端,可以控制外部世界可用的端口和地址。
运行以下命令在 Ubuntu 中安装 ufw:
sudo apt install ufw
设置 ufw 的默认规则。这些是您的防火墙将为您未自定义的任何端口遵循的策略。确保阻止所有传入连接是一种很好的做法:
sudo ufw default deny incoming
sudo ufw default allow outgoing
为您想要在您的机器上运行的服务配置您的防火墙。例如,运行以下命令将允许您通过 SSH 登录并托管 Web 服务器:
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
最后,您需要通过运行来启用新的防火墙配置sudo ufw enable。此外,您可以通过运行以下命令检查您的防火墙是否在线:
sudo ufw status
4.为每项服务创建一个新用户
默认情况下,Linux 系统中的每个文件和程序都属于特定的用户和组。要修改系统,您需要对正确的文件夹具有正确的权限。
提高 Linux 服务器安全性的一种方法是为每个新服务创建一个新用户帐户。这种方法允许您将每个服务的权限包含到他们自己的用户帐户中。
为此,请运行以下命令:
sudo useradd -s /bin/bash -d /home/new-service -m -G sudo new-service
sudo passwd new-service
该-s标志设置新用户帐户的系统外壳。就我而言,我的新帐户使用 Bash 作为其外壳。
-d和标志都-m设置了新帐户的默认用户目录。
-G另一方面,该标志将新帐户添加到您指定的任何辅助组。例如,将新帐户添加到 sudo 组将允许它运行超级用户命令。
该passwd命令允许您为新用户帐户设置新密码。
完成后,您可以通过注销当前帐户或运行su new-service.
5. 强化服务器内核
内核是 Linux 系统中最重要的部分之一,是连接机器硬件和软件的粘合剂。例如,编译您自己的 Linux 内核允许您启用对奇异硬件和功能的支持。
除此之外,内核还充当操作系统的根进程。保护内核是保护 Linux 服务器最重要的部分之一。
保护内核的最快方法之一是通过sysctl,这是一个内置实用程序,可让您调整 Linux 内核的运行时选项。
但是,重要的是要注意这sysctl不会涵盖整个内核强化过程,因为保护内核在很大程度上取决于您从中需要什么。
知道了这一点,您可以运行以下命令来防止内核报告任何诊断信息:
sudo sysctl kernel.kptr_restrict= 2
sudo sysctl kernel.dmesg_restrict = 1
sudo sysctl kernel.kexec_load_disabled= 1
您还可以运行以下命令来告诉您的内核放弃对您的服务器发出的任何虚假连接请求:
sudo sysctl net.ipv4.tcp_syncookies= 1
sudo sysctl net.ipv4.tcp_rfc1337= 1
另一方面,这些命令将强制内核验证与机器的每个传入连接:
sudo sysctl net.ipv4.conf.all.rp_filter= 1
sudo sysctl net.ipv4.conf.default.rp_filter= 1
最后,以下命令集将阻止任何传入连接将网络流量重定向到不同的网关。这样做可以防止您的机器因中间人攻击。
sudo sysctl net.ipv4.conf.all.accept_redirects= 0
sudo sysctl net.ipv4.conf.default.accept_redirects= 0
sudo sysctl net.ipv4.conf.all.secure_redirects= 0
sudo sysctl net.ipv4.conf.default.secure_redirects = 0
sudo sysctl net.ipv6.conf.all.accept_redirects= 0
sudo sysctl net.ipv6.conf.default.accept_redirects= 0
sudo sysctl net.ipv4.conf.all.send_redirects= 0
sudo sysctl net.ipv4.conf.default .send_redirects= 0
除了以上技巧之外,您还可以利用一些开源工具来保护您的 Linux 服务器。
成都联想服务器代理【公司名称】成都鸿盛广达科技有限公司
【代理级别】成都联想服务器总代理
【销售经理】成都鸿盛广达科技有限公司
【联系方式】座机:028-85952921 手机:13981931555
【公司地址】成都市武侯区人民南路四段一号时代数码广场A座17楼