登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 674|回复: 0

运维快速入门必备的Linux服务器安全简明指南,速收! ...

[复制链接]

173

主题

173

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2019-2-14 11:54:00 | 显示全部楼层 |阅读模式 来自 江苏徐州
o7823VbECE4EnBv9.jpg


本文导航

  • -
    常常升级体系00%

  • -
    主动安全更新02%

  • -
    添加一个受限用户账户07%


    • -
      CentOS / Fedora11%

    • -
      Ubuntu13%

    • -
      Debian15%


  • -
    加固 SSH 访问21%


    • -
      创建验证密钥对23%

    • -
      SSH 保卫历程选项43%

    • -
      利用 Fail2Ban 掩护 SSH 登录54%


  • -
    删除未利用的面向网络的服务58%


    • -
      查明运行的服务59%

    • -
      查明该移除哪个服务80%

    • -
      卸载监听的服务87%


  • -
    设置防火墙90%

  • -
    接下来95%


如今让我们强化你的服务器以防止未授权访问。



常常升级体系
将软件更新到最新版本通常是任何操纵体系所必须的安全防备步伐。软件在更新时通常会在大到关键毛病补丁、小到bug修复的范围内举行,许多毛病现实上在被公布时就已经被修复了。



主动安全更新
你可以调治服务器关于主动更新的的参数。Fedora 的 Wiki页面上有一篇文章对主动更新举行了深入解读,文章里提到我们可以通过调解参数为安全更新会把主动更新的风险低落至最少。


固然,是否选择主动更新必须由你本身决定,由于这取决于你将要在你的服务器上举行何种工作。主动更新只能通过堆栈里的包才气举行,你本身编译的步伐可不能用。你会必要一个与生产情况同等的测试情况,在举行终极摆设之前,肯定要在测试情况确认无误才行。

  • CentOS 利用 yum-cron 举行主动更新。
  • Debian 和 Ubuntu 利用 无人值守更新。
  • Fedora 利用 dnf-automatic 。


添加一个受限用户账户
我们假定你已经利用 root 权限进入了服务器中,你此时拥有服务器的至高权限,一个不警惕就会把服务器搞瘫痪。以是,你应该有一个受限定账户而不是不停利用 root 账户。这不会给你的操纵带来多大贫苦,由于你可以通过 sudo来举行任何你想要的操纵。



有的发行版大概并不把 sudo设为默认选项,不外你照旧可以在软件包堆栈中找到。假如你得到的提示是 sudo:command not found,请在继承之前安装 sudo。


记着,添加新用户你要通过 SSH 登录服务器才行。


CentOS / Fedora
1、 创建用户,用你想要的名字更换 example_user,并分配一个暗码:

y0batuydfkauZntT.jpg
2、 将用户添加到具有 sudo 权限的 wheel 组:
fmz3zY30a38EYE38.jpg


Ubuntu
1、 创建用户,用你想要的名字更换 example_user。你将被要求输入用户暗码:

ZMdqqNkyfyMdMkMM.jpg
2、 添加用户到 sudo 组,如许你就有管理员权限了:
mqqhM5XhhMiiq76L.jpg


Debian
1、 Debian 默认的包中没有 sudo, 利用 apt-get 来安装:

duz9PeJDAayv7uP1.jpg
2、 创建用户,用你想要的名字更换 example_user。你将被要求输入用户暗码:
Q6RPZG4sG1stgGOj.jpg
3、 添加用户到 sudo 组,如许你就有管理员权限了:
AibR1GMLazrcsIkI.jpg
创建完有限权限的用户后,断开你的服务器毗连:
aipMttHH5rkM4e45.jpg
重新用你的新用户登录。用你的用户名取代 example_user,用你的服务器 IP 地点取代例子中的 IP 地点:
q2P9QfEFK81ye2Pj.jpg
如今你可以用你的新用户帐户管理你的服务器,而不是 root。 险些全部超等用户下令都可以用 sudo(比方:sudo iptables -L -nv)来实行,这些下令将被记载到 /var/log/auth.log中。


加固 SSH 访问
你可以利用暗码认证登录服务器。但是更安全的方法是通过加密的密钥对。你将彻底放弃暗码,用私钥可以防止暴力破解。我们将告诉你怎样创建密钥对。



创建验证密钥对
1、创建密钥对可以在你本身的电脑上完成,如今我们开始创建一个 4096 位的 RSA 密钥对。纵然有了密钥,你仍旧可以通过暗码方式加密你的私钥,如许除非你把暗码存在密钥管理器里,否则就必须通过输入精确的暗码利用你的私钥。用了暗码能有一个双重保险,不想用的话你直接把暗码字段留空就可以了。



Linux / OS X
如今我们开始第一步,请留意:假如你之前已经创建过 RSA 密钥对,则这个下令将会覆盖它,带来的效果很大概是你不能访问别的的操纵体系。假如你已创建过密钥对,请跳过此步调。要查抄现有的密钥,请运行 ls〜/ .ssh / id_rsa *。
tzDzMdi2A6U55mYu.jpg
在输入暗码之前,按下 回车利用 /home/your_username/.ssh 中的默认名称 id_rsa 和 id_rsa.pub。


Windows
这可以利用 PuTTY 完成,在我们指南中已有形貌:利用 SSH 公钥验证。
2、将公钥上传到您的服务器上。 将 example_user 更换为你用来管理服务器的用户名称,将 203.0.113.10 更换为你的服务器的 IP 地点。


Linux
在本机上:
ftr8zJcG3oOzq8jJ.jpg


OS X
在你的服务器上(用你的权限受限用户登录):
k8b556Bb58UM56mM.jpg


在本机上:
j2Pkj8aM2mqZE1Jn.jpg
假如相对于 scp 你更喜好 ssh-copy-id 的话,那么它也可以在 Hemebrew 中找到。利用 brew install ssh-copy-id 安装。


Windows

  • 选择 1:利用 WinSCP 来完成。 在登录窗口中,输入你的服务器的 IP 地点作为主机名,以及非 root 的用户名和暗码。单击“登录”毗连。
  • 一旦 WinSCP 毗连后,你会看到两个重要部门。 左边表现本机上的文件,右边表现服务区上的文件。 利用左侧的文件欣赏器,导航到你已生存公钥的文件,选择公钥文件,然后点击上面工具栏中的“上传”。
    体系会提示你输入要将文件放在服务器上的路径。 将文件上传到 /home/example_user/.ssh /authorized_keys,用你的用户名更换 example_user。
  • 选择 2:将公钥直接从 PuTTY 键天生器复制到毗连到你的服务器中(作为非 root 用户):
ujjCpJYk69P39vx3.jpg

  • 上面下令将在文本编辑器中打开一个名为 authorized_keys 的空文件。 将公钥复制到文本文件中,确保复制为一行,与 PuTTY 所天生的完全一样。 按下 CTRL + X,然后按下 Y,然后回车生存文件。


末了,你必要为公钥目次和密钥文件自己设置权限:
tuFF447uqbQ2rcwR.jpg
这些下令通过制止其他用户访问公钥目次以及文件自己来提供额外的安全性。有关它怎样工作的更多信息,请参阅我们的指南怎样修改文件权限。


3、 如今退出并重新登录你的服务器。假如你为私钥指定了暗码,则必要输入暗码。


SSH 保卫历程选项
1、 不答应 root 用户通过 SSH 登录。 
这要求全部的 SSH 毗连都是通过非 root 用户举行。当以受限用户帐户毗连后,可以通过利用 sudo 或利用 su - 切换为 root shell 来利用管理员权限。

nWAUZ006qGauX8A9.jpg


2、 禁用 SSH 暗码认证。 
这要求全部通过 SSH 毗连的用户利用密钥认证。根据 Linux 发行版的差别,它大概必要添加 PasswordAuthentication 这行,大概删除前面的 # 来取消解释。
mqJtdIm70f0fJYJ7.jpg
假如你从很多差别的盘算机毗连到服务器,你大概想要继承启用暗码验证。这将答应你利用暗码举行身份验证,而不是为每个装备天生和上传密钥对。


3、 只监听一个互联网协议。
 在默认环境下,SSH 保卫历程同时监听 IPv4 和 IPv6 上的传入毗连。除非你必要利用这两种协议进入你的服务器,否则就禁用你不必要的。 这不会禁用体系范围的协议,它只用于 SSH 保卫历程。
利用选项:

  • AddressFamily inet 只监听 IPv4。
  • AddressFamily inet6 只监听 IPv6。
默认环境下,AddressFamily 选项通常不在 sshd_config 文件中。将它添加到文件的末端:
Qy9PUgFpctUgUPPq.jpg


4、 重新启动 SSH 服务以加载新设置。
假如你利用的 Linux 发行版利用 systemd(CentOS 7、Debian 8、Fedora、Ubuntu 15.10+)
blyJElJe0oSkF4O4.jpg
假如您的 init 体系是 SystemV 或 Upstart(CentOS 6、Debian 7、Ubuntu 14.04):
UFIdi7DyY13xd19b.jpg


利用 Fail2Ban 掩护 SSH 登录
Fail2Ban是一个应用步伐,会把频仍出现登岸失败的IP地点举行主动封禁。一样平常环境下,人们都不会一连三次以上输错暗码(假如利用 SSH 密钥,那不会凌驾一个),因此假如服务器布满了登录失败的哀求那就表现有恶意访问。



这个软件的监听范围很广,包罗我们熟知的 SSH、HHTP大概SMTP。不外在默认仅监督 SSH,而且由于 SSH 保卫步伐通常设置为连续运行并监听来自任何长途 IP 地点的毗连,以是对于任何服务器都是一种安全威慑。


删除未利用的面向网络的服务
大部门 Linux 发行版都可以利用网络服务,你可以选择把不再必要的那部门删撤除,如许可以淘汰被攻击的概率。



查明运行的服务
要检察服务器中运行的服务:

vCSsrXMRVVI32myY.jpg
假如默认环境下 netstat 没有包罗在你的 Linux 发行版中,致意装软件包 net-tools 或利用 ss -tulpn下令。


以下是 netstat 的输出示例。 请留意,由于默认环境下差别发行版会运行差别的服务,你的输出将有所差别:
kUPOooPso2D9L36q.jpg
netstat 告诉我们服务正在运行 RPC(rpc.statd 和 rpcbind)、SSH(sshd)、NTPdate(ntpd)和Exim(exim4)。


TCP
请参阅 netstat 输出的 Local Address 那一列。历程 rpcbind 正在侦听 0.0.0.0:111 和 :::111,外部地点是 0.0.0.0:* 大概 :::* 。这意味着它从任何端口和任何网络接口担当来自任何外部地点(IPv4 和 IPv6)上的别的 RPC 客户端的传入 TCP 毗连。 我们看到雷同的 SSH,Exim 正在侦听来自回环接口的流量,如所示的 127.0.0.1 地点。


UDP
UDP 套接字是无状态的,这意味着它们只有打开或关闭,而且每个历程的毗连是独立于前后发生的毗连。这与 TCP 的毗连状态(比方 LISTEN、ESTABLISHED和 CLOSE_WAIT)形成对比。
我们的 netstat输出阐明 NTPdate :1)担当服务器的公网 IP 地点的传入毗连;2)通过当地主机举行通讯;3)担当来自外部的毗连。这些毗连是通过端口 123 举行的,同时支持 IPv4 和 IPv6。我们还看到了 RPC 打开的更多的套接字。


查明该移除哪个服务
假如你在没有启用防火墙的环境下对服务器举行根本的 TCP 和 UDP 的 nmap 扫描,那么在打开端口的效果中将出现 SSH、RPC 和 NTPdate 。通过设置防火墙,你可以过滤掉这些端口,但 SSH 除外,由于它必须答应你的传入毗连。但是,抱负环境下,应该禁用未利用的服务。


  • 你大概重要通过 SSH 连接受理你的服务器,以是让这个服务必要保存。如上所述,RSA 密钥和 Fail2Ban 可以资助你掩护 SSH。
  • NTP 是服务器计时所必须的,但有个替换 NTPdate 的方法。假如你喜好不开放网络端口的时间同步方法,而且你不必要纳秒精度,那么你大概有爱好用 OpenNTPD 来取代 NTPdate。
  • 然而,Exim 和 RPC 是不须要的,除非你有特定的用途,否则应该删除它们。
本节针对 Debian 8。默认环境下,差别的 Linux 发行版具有差别的服务。假如你不确定某项服务的功能,请实验搜刮互联网以相识该功能是什么,然后再实验删除或禁用它。


卸载监听的服务
怎样移除包取决于发行版的包管理器:


Arch
eU0Uj6iu5jj86PVN.jpg


CentOS
hev8pU8j44uzTd3u.jpg


Debian / Ubuntu
hUuDJhKK3526xu2e.jpg


Fedora
egZFpzM0Nn77QdFA.jpg
再次运行 sudo netstat -tulpn,你看到监听的服务就只会有 SSH(sshd)和 NTP(ntpdate,网络时间协议)。


设置防火墙
利用防火墙制止不必要的入站流量能为你的服务器提供一个高效的安全层。 通过指定入站流量,你可以制止入侵和网络测绘。 最佳做法是只答应你必要的流量,并拒绝统统其他流量。请参阅我们的一些关于最常见的防火墙步伐的文档:


  • iptables 是 netfilter 的控制器,它是 Linux 内核的包过滤框架。 默认环境下,iptables 包罗在大多数 Linux 发行版中。
  • firewallD 是可用于 CentOS/Fedora 系列发行版的 iptables 控制器。
  • UFW 为 Debian 和 Ubuntu 提供了一个 iptables 前端。


接下来
这些是加固 Linux 服务器的最根本步调,但是进一步的安全层将取决于其预期用途。 其他技能可以包罗应用步伐设置,利用入侵检测大概安装某个情势的访问控制。



如今你可以按你的需求开始设置你的服务器了。
编译自: http://www.linode.com/docs/security/securing-your-server/ 
作者: Phil Zona,译者: geekpi

Y4jLYGJjrycUaCQA.jpg 云盘算免费课程火热开讲中,5天运维经典课程免费学,会云盘算的运维人才到底必要把握哪些技能,将来远景发展怎么样?跟随行业大咖一起剖根究底,点击文末“阅读原文”长按下方二维码即可报名免费课程捉住免费学习的时机,逆袭2019~~
  ne4Cz2cws2cSIIE6.jpg

PS:记得查收小编送你的免费大礼包呦~
福利 | 一万多套PPT模板等你免费来拿!无条件领取!
免费送 | 1000多套简历模板免费拿,附赠简历制作教程!
免费领 | 《Shell脚本 100例》电子书免费拿,运维必备干货~
LzYy363NFBay4wzm.jpg QZFTrs000T00t0K2.jpg ▼▼点击【阅读原文】,5天运维免费课程,开讲在即!




上一篇:Centos7二进制安装设置MariaDB数据库
下一篇:步伐员恋人节必备脱单秘笈!
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-7 19:07 , Processed in 0.083413 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表