本介绍性文章将向您介绍Linux服务器安全性的基本知识。尽管主要用于Debian/Ubuntu,但是您可以将此处描述的所有内容应用于其他Linux发行版。我也鼓励您学习此材料并在适当的地方进行扩展。
只需七个简单步骤即可增强Linux服务器。
1.更新您的服务器
保护服务器的第一件事是通过应用最新的修补程序来更新本地存储库并更新操作系统和已安装的应用程序。
在Ubuntu和Debian中:
$ sudo apt更新sudo apt upgrade -y
在Fedora,CentOS或RHEL中:
$ sudo dnf更新
2,创建一个新的特权用户
接下来,创建一个新的用户帐户。切勿以root用户身份登录服务器,而是创建自己的帐户(用户),授予sudo特权并使用它来登录服务器。
首先创建一个新用户:
$ adduser
通过将(-a)sudo组(-G)添加到用户的组成员身份,向新的sudo用户帐户授予权限:
$ usermod -a -G sudo
3.上传您的SSH密钥
您必须使用SSH密钥登录到新服务器。您可以使用ssh-copy-id命令在新服务器上加载预先生成的SSH密钥:
$ ssh-copy-id @ip_address
现在,您无需输入密码即可登录新服务器。
4,SSH安全加固
然后进行以下三个更改:
禁用SSH密码认证
限制远程root登录
限制对IPv4或IPv6的访问
使用您选择的文本编辑器打开/etc/ssh/sshd_config,并确保以下行:
密码验证是
PermitRootLogin是
更改为此:
密码认证
PermitRoot登录否
然后,通过修改AddressFamily选项将SSH服务限制为IPv4或IPv6。要更改它并仅使用IPv4(对大多数人来说应该没问题),请进行以下更改:
家庭住宅重新启动SSH服务以启用您的更改。请注意,在重新启动SSH服务之前,建立与服务器的两个活动连接是一个好主意。通过这些附加连接,您可以解决所有问题,包括重新启动SSH服务的错误。
在Ubuntu中:
$ sudo服务sshd重新启动
在Fedora或CentOS或任何使用Systemd的系统中:
$ sudo systemctl重新启动sshd
5,启用防火墙
现在,您需要安装防火墙,启用防火墙并将其配置为仅允许您指定的网络流量通过。简单防火墙(UFW)(Ubuntu)是一个易于使用的iptables界面,可大大简化防火墙的配置过程。
您可以通过以下方式安装UFW:
$ sudo apt安装ufw
默认情况下,UFW拒绝所有传入连接,并允许所有传出连接。这意味着服务器上的任何应用程序都可以访问Internet,但是您无法连接任何尝试访问服务器的内容。
首先,确保您可以通过启用对SSH,HTTP和HTTPS的访问来登录:
$ sudo ufw允许ssh
$ sudo ufw允许http
$ sudo ufw允许https
然后启用UFW:
$ sudo ufw启用
您可以通过以下方式查看允许和拒绝哪些服务:
$ Sudo状态ufw
如果要禁用UFW,可以通过键入以下内容禁用它:
$ sudo ufw禁用
您还可以使用已经安装并集成在某些发行版中的firewall-cmd(在RHEL/CentOS中)。
6,安装Fail2ban
Fail2ban是用于检查服务器日志中是否存在重复或自动攻击的应用程序。如果发现攻击,请更改防火墙以永久或特定时间段阻止攻击者的IP地址。
您可以通过键入以下命令来安装Fail2ban:
$ sudo apt安装fail2ban -y
然后复制附件的配置文件:
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
重新启动Fail2ban:$ sudo服务fail2ban重新启动
这将起作用软件将不断检查日志文件是否受到攻击。一段时间后,该应用程序将创建一个相当大的禁止IP地址列表。您可以通过以下方式检查SSH服务的当前状态来查看此列表:
$ sudo fail2ban-client status ssh
7,消除无用的网络服务
几乎所有Linux服务器操作系统都启用了一些面向网络的服务。您可能希望保留其中的大多数,但是,有些可能需要删除。您可以使用ss命令查看所有正在运行的网络服务:(LCTT:应仅维护一小部分,并且应禁用或删除所有不相关且无用的服务)。
$ sudo ss -atpu
ss的输出取决于您的操作系统。以下示例显示SSH(sshd)和Ngnix(nginx)服务正在网络上侦听并准备连接:
Tcp LISTEN 0128 * :http * : * users:(('nginx',pid=22563,fd=7))
Tcp LISTEN 0128 * :ssh * : * users:(('sshd',pid=685,fd=3))
删除未使用的服务的方式因您的操作系统和所使用的程序包管理器而异。
要在Debian/Ubuntu中删除未使用的服务:
$ sudo apt清除
要删除Red Hat/CentOS中未使用的服务:
$ sudo yum删除
再次运行ss -atup以验证这些未使用的服务未安装并正在运行。
总结
本教程介绍了增强Linux服务器所需的最少步骤。您必须根据服务器的使用方式启用其他安全层。这些安全层可以包括诸如单个应用程序设置,入侵检测软件(IDS)之类的内容,并启用访问控制(例如,两因素身份验证)。
上海IT外包服务网 链接:http://www.linemore.com