欢迎访问陈同学博客原文
开发运维一体的小团队,初始化新服务器也是家常便饭,本文分享几个简单的小技巧。
防止意外删除重要数据
墨菲定律告诉我们,无论概率多小,只要有可能,就一定会发生。
无论在哪台机器手抖执行了 rm -rf /
都将是灾难(其他目录也不能乱删呀),测试机可以重装,生产机就 Game Over。
借助于 Safe-rm 工具,防止意外,安装 safe-rm 亲测效果如下:
$ 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 站点手动下载或通过以下命令下载。
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登录。
生成一对公钥、私钥。私钥下载到本地妥善保管,然后删除服务器私钥,公钥可随意公开。
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服务
service sshd restart
如果需要直接禁用 root 登录,修改:
PermitRootLogin no
时间校准
执行以下命令校准时间以避免各种幺蛾子。
# 设置时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 校准时间
ntpdate cn.pool.ntp.org
然后将 ntpdate cn.pool.ntp.org
以cron任务每天运行一次。
欢迎关注陈同学的公众号,一起学习,一起成长