zoukankan      html  css  js  c++  java
  • centos 7 (应用知识) 安装后首要做的事

    1. 更改 root 密码

    若果你是自行安装 CentOS 7 的话,安装程序会让你自行设定 root 的密码。不过很多 VPS 服务商只会提供预先安装好的 CentOS 7 映像档,这种情况下他们会透过主控界面告诉你 root 的密码,这个密码的安全性谁也不知道,它是如何产生的呢?随机性可靠吗?复杂性足够吗?服务商的服务器是否记录了密码的副本?我们实在有必要第一时间重设这个密码。

    首先使用 ssh 登入服务器,在 Windows 可以使用 PuttyTera Term、或者在 Cygwin 环境下执行 OpenSSH。在 Mac 和 Linux 上只需在终端机 (terminal) 中执行以下指令便可以了,比 Windows 简单得多:

    由于你从来没有使用过 ssh 联系到这台服务器,你的电脑会把服务器的加密公钥下载,然后询问你是否信任它,这台新鲜安装好的 CentOS 7 应该还未引起黑客的兴趣,也不大可能在这么短的时间内被攻陷,所以可以放心接受这个加密公钥。跟着输入 root 的密码登入服务器:

    登入后立即更改 root 的密码,你需要输入新密码两次:

    好的密码应该同时包含数字、小写英文字母、大写英文字母、和标点符号,最少 15 个字符,这样的密码强度大概有 90 bit,勉强可以应付密码被“暴力破解”,当然我假设了你的密码是真正随机产生,有些人喜欢把个人资料例如名字、出生日期、车牌号码、地址、配偶和子女的名字等等崁入密码中,或者使用字典里的字词拼凑密码,这样密码的强度将会大幅下降,甚至不堪一击,这些问题我曾经在《如何管理密码?》讨论过。

    网上有很多随机密码产生器,例如 RANDOM.ORG,大都可用,但记紧必须使用 HTTPS 造访这些网站。如果你有使用“密码夹万”一类的软件,不妨使用它们内建的密码产生器。

    完成后不要登出系统,使用另一个视窗用新密码尝试登入,即使失败也可以在原来的视窗重复以上步骤。

    2. 新增一个普通帐号

    这一步连同下一步,相当于为一个城市筑起两道城墙,既可加强防卫,也建立了一道警报机制,当敌人(黑客)卒然来袭,第一道城墙被袭击和破坏,我们还有第二道城墙阻延一下,有时间部署防卫甚至反击。所以这是一个很多人忽略,但其实非常重要的步骤。

    首先我们新增一个帐号:

    这个新帐号 ahhang 没有默认密码,即是说登入 ahhang 时系统不用输入密码!所以我们立即要设定密码:

    有些人认为不应该把建立帐号和设定密码两件事分开来做,一来可能会不慎遗忘,二来也给黑客一道时间缝隙登入这个新帐号,所以他们会在 adduser 指令中一并提供加密后的默认密码,方法是加入 -p 参数,不过这样做也有风险,因为黑客可以透过列出系统的进程,得知加密了的新密码,然后把密码破解。

    3. 禁止 root 使用 ssh 登入

    CentOS 7 默认容许任何帐号透过 ssh 登入,包括 root 和一般帐号,为了不让 root 帐号被黑客暴力入侵,我们必须禁止 root 帐号的 ssh 功能,事实上 root 也没有必要 ssh 登入服务器,因为只要使用 su 或 sudo (当然需要输入 root 的密码) 普通帐号便可以拥有 root 的权限。使用 vim (或任何文本编辑器) 开启 /etc/ssh/sshd_config

    寻找:#PermitPooLogin yes

    修改为:PermitPooLogin no

    最后输入以下指令重新启动 sshd:#systemctl restart sshd.service

    这样黑客要取得 root 的权限,必须破解 root 和一个普通用户的密码,难度增加了。

    完成后不要登出系统,使用另一个视窗尝试登入 root 和普通帐号,测试无误便可进行下一步。

    4. 使用非常规的 ssh 端口

    Ssh 默认使用端口 22,这是在 IANA 注册的官方端口,但没有人说 ssh 不能使用其他端口,很多黑客专门向服务器的 22 端口发动攻击,即使你的服务器固若金汤、牢不可破,但是要系统日以继夜接受攻击,消耗的系统资源(网络、处理器、内存等等)也不会少,何况它是否真的牢不可破还说不定呢!所以有必要让 ssh 使用其他端口,只让有权使用 ssh 的用户知道。

    使用 vim  (或任何文本编辑器) 开启 /etc/ssh/sshd_config

    寻找:#port 22

    修改为:1024-65535

    你可以把 10837 改为任何 1024 – 65535 之间的任何数字,若果怕与某些系统服务发生冲突,可以参考一下这里

    跟着重新启动 sshd:#systemctl restart sshd.service

    然后是设定防火墙,CentOS 7 的内核已经有防火墙 netfilter,但你的系统未必安装了用户界面,较前版本的 CentOS 默认使用 iptables,但 CentOS 7 开始使用效能更高、稳定性更好的 firewalld,若果服务器尚未安装 firewalld,可以使用以下指令安装,不确定是否已经安装的话也可以输入这个指令,它会告诉你已经安装然后退出。

    跟着启动:#sestemctl start firewalld

    设定 firewalld 的方法有两个,第一个是修改 firewalld 有关 sshd 的设定,把端口 22 改为 10837,这是正统的做法,但步骤比较多;第二个是要求 firewalld 开启端口 10837,不指定它属于哪一个服务,这个做法通常处理临时的端口开启/封锁,步骤简单,但是日后你要是忘记了这个端口为什么开启了呢?什么时候开启的呢?为了哪一项服务开启呢?可能有点麻烦。我两种方法都会介绍一下,但作为专业的系统管理员(即使不是真正的专业,也应该具备这样的心态),我推荐使用第一种方法。

    设定防火墙方法一:

    复制 firewalld 有关 sshd 的设定档案:#cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/

    使用 vim  (或任何文本编辑器) 开启 /etc/firewalld/services/ssh.xml,寻找:<port protocaol="tcp" port="22"/>

    修改为:<port protocaol="tcp: port="10837"/>

    储存后重新加载 firewalld

  • 相关阅读:
    java中的 equals 与 ==
    String类的内存分配
    SVN用命令行更换本地副本IP地址
    npoi 设置单元格格式
    net core 微服务框架 Viper 调用链路追踪
    打不死的小强 .net core 微服务 快速开发框架 Viper 限流
    net core 微服务 快速开发框架 Viper 初体验20201017
    Anno 框架 增加缓存、限流策略、事件总线、支持 thrift grpc 作为底层传输
    net core 微服务 快速开发框架
    Viper 微服务框架 编写一个hello world 插件02
  • 原文地址:https://www.cnblogs.com/baiquan/p/8472347.html
Copyright © 2011-2022 走看看