陈同学
微服务
Accelerator
About
# 15min运维之新服务器安全设置 开发运维一体的小团队,初始化新服务器也是家常便饭,本文分享几个简单的小技巧。 ## 防止意外删除重要数据 墨菲定律告诉我们,无论概率多小,只要有可能,就一定会发生。 无论在哪台机器手抖执行了 `rm -rf /` 都将是灾难(其他目录也不能乱删呀),测试机可以重装,生产机就 Game Over。 借助于 [Safe-rm](https://launchpad.net/safe-rm) 工具,防止意外,安装 safe-rm 亲测效果如下: ```bash $ rm -rf / /bin/rm: 在"/" 进行递归操作十分危险 /bin/rm: 使用 --no-preserve-root 选项跳过安全模式 $ rm -rf /var safe-rm: skipping /var ``` Safe-rm 替换了 **rm** 命令,可以设置受保护的文件或目录白名单。 Ubuntu 可直接通过 `apt install safe-rm` 一键安装,会把系统rm命令改成指向safe-rm的软链接。 其他OS可在 https://launchpad.net/safe-rm 站点手动下载或通过以下命令下载。 ```bash wget https://repo.or.cz/safe-rm.git/snapshot/c6817ae6df4f507ee192cc62c6564bf3fd8b6e99.tar.gz ``` 解压后参考 INSTALL 和 README 两个说明文件,将 **safe-rm** 脚本拷贝到 **/usr/local/bin** 并重命名为 **rm** 即可,同时确保 **/usr/local/bin** 在 **$PATH** 中。 **safe-rm** 脚本中有很全的受保护默认目录,想加目录可以直接改脚本或者新建 **/etc/safe-rm.conf** 配置文件。 注意:一旦创建 **/etc/safe-rm.conf**,默认设置就失效了,一定要设置全。 ## 修改常见端口 将常见端口修改为高位端口能有效的避免端口扫描,例如: * 将 ssh 22 改为 29527 * 将 3306 为为23207 ## 安全组设置 如果购买了云服务器,需要设置安全组。 首先,添加一条规则拒绝所有端口。然后,逐一开放需要用到的端口。 ## 核心机器使用key文件登录 这是可选项,可禁用root用户使用密码登录,采用使用SSH Key登录。 生成一对公钥、私钥。**私钥下载到本地妥善保管,然后删除服务器私钥,公钥可随意公开。** ```shell ssh-keygen -t rsa ``` 创建过程中可以设置私钥文件名和密码,假设以 id_rsa_root 命名私钥,如果不需要修改,保持默认即可 ``` Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): id_rsa_root Enter passphrase (empty for no passphrase): ... ``` 此时 **/root/.ssh/** 目录下生成了私钥(id_rsa_root),公钥(id_rsa_root.pub). 将公钥文件导入信用库中。 ``` cat /root/.ssh/id_rsa_root.pub >> /root/.ssh/authorized_keys ``` 接着,设置允许使用SSH Key文件登录,修改 `/etc/ssh/sshd_config` 文件: 放开以下三个配置项的注释 ``` #RSAAuthentication yes #PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys ``` 将 **PasswordAuthentication** 改为 *no* 来禁用密码登录 ``` #PasswordAuthentication yes PasswordAuthentication no ``` 重启SSH服务 ```shell service sshd restart ``` 如果需要直接禁用 root 登录,修改: ``` PermitRootLogin no ``` ## 时间校准 执行以下命令校准时间以避免各种幺蛾子。 ```bash # 设置时区 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 校准时间 ntpdate cn.pool.ntp.org ``` 然后将 `ntpdate cn.pool.ntp.org` 以cron任务每天运行一次。
本文由
cyj
创作,可自由转载、引用,但需署名作者且注明文章出处。
文章标题:
15min运维之新服务器安全设置
文章链接:
https://chenyongjun.vip/articles/105
扫码或搜索 cyjrun 关注微信公众号, 结伴学习, 一起努力