• <fieldset id='l7f3k'></fieldset>
      <i id='l7f3k'><div id='l7f3k'><ins id='l7f3k'></ins></div></i>
    1. <acronym id='l7f3k'><em id='l7f3k'></em><td id='l7f3k'><div id='l7f3k'></div></td></acronym><address id='l7f3k'><big id='l7f3k'><big id='l7f3k'></big><legend id='l7f3k'></legend></big></address>

        <span id='l7f3k'></span>

        <code id='l7f3k'><strong id='l7f3k'></strong></code>
        <ins id='l7f3k'></ins>
      1. <tr id='l7f3k'><strong id='l7f3k'></strong><small id='l7f3k'></small><button id='l7f3k'></button><li id='l7f3k'><noscript id='l7f3k'><big id='l7f3k'></big><dt id='l7f3k'></dt></noscript></li></tr><ol id='l7f3k'><table id='l7f3k'><blockquote id='l7f3k'><tbody id='l7f3k'></tbody></blockquote></table></ol><u id='l7f3k'></u><kbd id='l7f3k'><kbd id='l7f3k'></kbd></kbd>
      2. <i id='l7f3k'></i>

            <dl id='l7f3k'></dl>

            如何使Linux服务器变得更安全

            • 时间:
            • 浏览:4
            • 来源:124软件资讯网

                切记以下这七点会让你的Linux服务器变得更宁静

                图1:运行中的服务  。

                安装所需的服务

                若是你计划运行一台服务器  ,可能会想“我有来自Linode的40GB固态硬盘(SSD)存储系统  ,于是我可以安装想要安装的任何服务 。”没错  ,你的土地你作主:可以在服务器上安装恣意软件  。不外 ,别犯想固然的偏差  。连最坚如盘石的服务器也会因有人钻了在该服务器上运行的任何未打补丁或易受攻击的软件组件的空子而被挟制  。

                以是  ,头一条规则就是让你的服务器只管精简  。只安装你确实需要的那些法式包 。要是有不需要的法式包 ,那就扫除  。法式包数目越少  ,代码没打上补丁的可能性就越小  。在安装任何软件和依赖法式包(好比ownCloud)之前  ,你应该读一下ownCloud的说明文档 ,只安装它需要的那些法式包  。

                运行所需的服务

                第二条规则就是只运行需要的那些服务  。许多刊行版或法式包可能会开启某些服务  ,在差别的端口上运行  。这可能会带来宁静风险 。于是  ,打开终端  ,运行下列下令:netstat -npl

                输出效果会显示哪些服务在哪些端口上运行  。若是你发现任何不应该运行的服务 ,制止它  。你还应该亲近关注已被启用、系统启动时运行的服务  。只要在运行systemd的系统上运行下列下令 ,就可以来检查这方面:systemctl list-unit-files --type=service | grep enabled

                视系统而定 ,你会获得如上图1中所示的输出效果  。要是你发现任何不需要的服务  ,可以使用强盛的systemct1下令来禁用它:systemctl disable service_name

                限制对服务器的会见

                就好比你不会把自家钥匙随随便便交给熟悉的人 ,也不会将会见服务器的权限交随随便便授予熟悉的人 。一旦明确了这个规则  ,就可以限制对服务器的会见 。要切记这点:这一切取消不了决意要破损你服务器的坏人的念头  。不外 ,其作用在于为你的服务器增添了多一层的宁静  ,提防只是捡漏的非法分子  。

                万万不要以根用户的身份登录

                以超级用户的身份通过ssh进入到服务器不是一个好做法  。我们后面会克制以根用户身份通过ssh进入到服务器 ,不外在这么做之前 ,不妨建立一个拥有sudo权限的用户  ,那样你就能通过ssh进入到服务器  ,执行治理员使命了  。一旦你登录进入到服务器  ,总是可以将用户切换成根用户 ,若是需要的话  。若是你已经在系统上有了用户  ,就跳过几步;否则 ,随着我走  。

                差别的刊行版使用差别的要领来添加新用户;Red Hat/CentOS使用useradd  ,Ubuntu/Debian使用user adduser  。

                在Fedora/CentOS上建立新用户:useradd swapnil

                然后 ,为该用户建立密码:passwd swapnil

                它会要求你为它提供用户的新密码  。现在  ,你需要为该用户授予sudo权限  。运行下列下令:EDITOR=nano visudo

                寻找下面这一行(见图2):# %wheel ALL=(ALL) ALL

                图2:为用户授予sudo权限  。

                去掉该行的注释(#符号意味着该行被注释;只要去掉这个符号  ,即可去掉注释)  ,那样它看起来就像这样:%wheel ALL=(ALL) ALL

                现在 ,生存并关闭文件  。若是用户不属于wheel组  ,你只要运行下面这个下令 ,就可以将它轻松添加到组:# usermod -aG wheel swapnil

                在Ubuntu系统上 ,你可以添加新用户  ,为此运行下列下令:adduser swapnil

                回覆系统提出的一些问题  ,包罗为该用户建立密码 。一旦建立完毕  ,为用户授予sudo权限:gpasswd -a swapnil sudo

                打开另一个终端窗口  ,试着以刚建立的用户的身份登录进入到服务器 ,试着以sudo权限执行一些治理员使命  。要是一切正常  ,进入到下一步  。

                禁用根用户登录

                我们现在要禁用根用户登录  ,这意味着没人能够以根用户的身份通过ssh或登录进入到服务器  。为此  ,打开sshd设置文件:nano /etc/ssh/sshd_conf

                下一步  ,寻找显示下列内容的这一注释行:#PermitRootLogin no

                然后生存并关闭该文件  ,重启服务:service ssh restart或者systemctl restart sshd

                主要提醒:这时切莫退出服务器  。你要测试能不能使用刚建立的用户乐成地通过ssh进入到服务器  。打开终端的另一个实例 ,以之前建立的用户通过ssh进入到服务器  。你不希望完全被锁在服务器外面 。要是一切都正常  ,你可以以根用户身份宁静地注销退出服务器  。

                变换端口

                我们对sshd设置文件要举行的第二个转变就是更改默认端口 。这主要是增添一层隐匿性  ,让你的服务器确保宁静  ,而不是给服务器果真增添任何现实的宁静机制 。这就好比保安服务公司派一样的车辆来运送主要人物  ,那样攻击者就不知道该攻击哪些车了 。

                打开sshd_config文件(这回以sudo权限打开 ,由于你再也不能以根用户身份登录进入到服务器了):sudo nano /etc/ssh/sshd_conf

                然后 ,找到这一注释行:#Port 22

                去掉该行注释  ,选择一个端口号 。在选择端口时 ,务须要确保它没有被你系统上的其他任何服务所使用  ,我为服务器选择了端口1977:Port 1977

                下一步  ,生存并关闭文件  ,重启sshd服务  。再一次  ,注销退出服务器之前  ,检查一下设置  ,为此可以打开另一个终端窗口 ,然后使用该模式登录进去:ssh -p{port_number}@server_IP

                示例:

                ssh -p1977

                swapnil@10.14.190.118

                若是你能乐成登录进去  ,就搞定了  。

                无密码登录

                你可以通过无密码登录更容易通过ssh进入到服务器  ,而且完全禁用密码验证 ,增添另一层宁静  。务须要切记一点:你只能够从建立ssh密钥的那台机械登录进入到你的服务器  。

                不妨使用下列下令  ,在当地系统上建立ssh密钥(见图3):ssh-keygen - t rsa

                图3:建立ssh密钥  。

                它会提出一些问题;你不用更改密钥位置  ,保留其默认值 ,为它提供一个难以猜中的通行码 。下一步  ,你需要将这些密钥拷贝到服务器上  ,那样两台机械就能使用密钥与对方举行联系了 。

                cat ~/.ssh/id_rsa.pub | ssh -p 1977 swapnil@remote-server ";mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

                现在  ,试着从另一个终端通过ssh进入到服务器;要是一切正常  ,它不会要求你输入密码  。

                这一步主要是为了利便  ,而不是增添一些实着实在的宁静  。不外你也可以增添一点宁静  ,只要禁用服务器的密码验证  。只需打开sshd设置文件 ,寻找这注释的一行:#PasswordAuthentication yes

                去掉该行注释  ,将它从yes改成no 。生存并关闭文件  。然后 ,重启sshd服务 。再一次  ,切莫从当前窗口关闭服务器毗连  。打开另一个窗口 ,登录进入到服务器(确保它没有要求输入密码)  。

                这个设置的另一个方面在于  ,你现在只能从建立ssh密钥的那一台机械通过ssh进入到服务器  。若是你经常从差别的机械登录进入到服务器  ,万万不要使用这一要领 。

                这些是试图自行运行服务器的新用户需要思量的一些基本方面 。切记一点:黑客总是先行一步;他们不停寻找进而突入你服务器的任何毛病  。因而  ,最佳实践就是对你的服务器做一套始终最新的备份 。我建议你在对站点做任何转变前后都应该举行备份  。那样一来  ,万一你的服务器中了招  ,总是能够从上一套备份恢复过来  。