Linux VPS SSH的一些安全建议

方法

  • 修改默认端口
  • FirewallD 限制部分外网访问
  • 安装一个 Google Authenticator 「谷歌身份验证器」

博主以CentOS7为例演示
配合 Google Authenticator APP一起使用
请先安装该APP 用于获取动态验证码

修改默认端口

1
2
# 修改控制SSH访问端口文件
vim /etc/ssh/sshd_config
  • 将 # Port=22 字段前的#符号去掉
  • 在 Port = 22 下新增一行 Port = xxx为你想修改的端口号
  • 重启ssh服务 service sshd restart

注意:

  • 如开启了防火墙 记得允许新增端口通信
  • 云主机的安全组也记得允许新增端口哦
  • 确认能使用新端口ssh连接VPS后 可以将原有的22端口删除哦 「禁止先删除 否则配置不生效 估计只能重装VPS了哟」

FirewallD 限制部分外网访问

这一部分 我在另一篇文章讲述相对详细了
这里放个跳转链接 大家可以移步去瞅瞅
https://lkc.im/archives/b79f.html

Google Authenticator 「谷歌身份验证器」

这个是今天的重头戏了喂
实现的效果就类似
我曾经沉迷的游戏 梦幻西游中的将军令
在你登录「远程连接VPS」的时候需要输入动态验证码
再输入密码

编译安装

1
2
3
4
5
6
7
8
9
# 安装所需扩展
yum install -y gcc make pam-devel libpng-devel libtool wget git autoconf automake qrencode
# 下载源码包
git clone https://github.com/google/google-authenticator-libpam.git
# 编译安装
cd google-authenticator-libpam
./bootstrap.sh
./configure
make && make install

配置验证器

1
2
# 配置验证器
google-authenticator
  • Do you want authentication tokens to be time-based (y/n) y shell输出的内容 输入y回车确认 「可扫二维码或者输入账号and密钥绑定」
    WX20190426-233241.png
  • 会让你先输入一次App中的动态验证码 进行验证

WX20190426-234643.png

  • 生成数个临时验证码 手机不在身边可以使用 不过一个码只能用一次

WX20190426-234746.png

  • 接着 Shell中会输出需要你确认的信息只需输入 y 再回车确认 使用默认配置当然你可以去谷歌翻译下 进行自定义配置

配置PAM文件

1
2
# 在/etc/pam.d/sshd 文件相应位置添加 auth required pam_google_authenticator.so 代码段
sed -i "/auth[ ]*substack[ ]*pass*/a\auth required pam_google_authenticator.so" /etc/pam.d/sshd

添加软连接

1
ln -fs /usr/local/lib/security/pam_google_authenticator.so /lib64/security/

修改ssh文件

1
sed -i -r 's#(ChallengeResponseAuthentication) no#\1 yes#g' /etc/ssh/sshd_config

同步时间

1
2
3
4
# 查看下服务器时间
date
# 如果时区不一样 再使用命令修改为本地时间
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

关闭SELINUX

1
2
3
4
# 使用命令查看状态
getenforce
# 如果输出disabled则为关闭 反之开启 使用命令关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

重启ssh服务

1
service sshd restart

现在远程连接服务器的时候
除了输入ssh密码 还需要App中的动态验证码
WX20190427-001030.png
WechatIMG2.jpeg

Done
安全感上升了不少😁

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×