树莓派(6):SSH安全配置

SSH可以进行远程Shell,从而远程操作。这种功能自然是极大地方便了用户。但与此同时,如果图谋不轨者连接上了SSH,那就相当于控制了系统;然后再留下后门,后患无穷。因而SSH的安全非常重要。

一个有公网ip的服务器,常常会被世界各地的黑客尝试SSH登录。不过在ip地址极度缺乏的中国,一个普通家庭常常不会有公网ip,树莓派也常常在内网。虽然在这种环境下树莓派会安全很多,但安全配置也并非不重要。如果你通过内网穿透使外网可以SSH树莓派,那安全配置也是必不可少的。

SSH日志

SSH的日志会记录下登录的信息。它在/var/log/目录下。Raspbian(Debian)下的文件名叫auth.log,CentOS叫做secure。使用cat指令来查看文件内容,便可看到登录尝试的记录、SSH中曾运行过的指令等信息。如果它太长了以致于根本停不下来,可以改用head或者tail指令看它的首尾,或者

grep "Failed password for root" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more

来直接统计尝试登录root账户的ip以及次数。如果你发现了有一个ip尝试了很多次,可以到微步在线威胁情报社区查询。

SSH安全配置

文件/etc/ssh/sshd_config是SSH服务器的配置文件。使用vim、nano或者FlashFXP编辑这个文件。这个文件中的井号#表示注释,更改需要先去掉之。

  1. 文件中:
    Port 22

    定义了SSH监听的端口。可以更改为一个1024以上的值,例如2222。更改后,SSH登录时要加入-p 2222来指明端口。

  2. 文件中:
    ListenAddress 0.0.0.0

    指明能SSH登录的地址。如果有需要,可以更改为自己的ip地址。这样做有可能会带来不便。

  3. 如果你已经完全采用了密钥的登陆方式(上一篇文章),可以禁用密码登录:
    PasswordAuthentication no
    PermitEmptyPasswords no
    UsePAM no
  4. 禁止使用版本1协议,因为其存在设计缺陷,很容易使密码被黑掉。
    Protocol 2
  5. 修改输入密码的时间(如果开启了密码登录),并限制尝试次数:
    LoginGraceTime 30
    MaxAuthTries 3

    请注意:如果你的密码很长,或者容易输错,可以合理调整值。LoginGraceTime的默认单位是秒,还可以使用类似2m的值。

  6. 限制能登陆的账户,以防止通过其它有弱密码的账户登录。
    AllowUsers root

    注:很多地方建议禁止root账户登录,请视情况自己决定。

重启SSH

在配置结束后,要重启SSH服务来应用配置。

systemctl restart ssh

重启过程不会打断当前SSH对话。

订阅
提醒我
guest
0 评论
Inline Feedbacks
查看所有评论
0
Would love your thoughts, please comment.x