上个月入手的小鸡VIR圣何塞节点,装的debian9,懒癌晚期除了富强放了个小博客啥也没干,今天闲着没事加强一点安全性吧
计划完成修改SSH默认端口为8899,使用私钥连接

  1. SSH端口修改

编辑配置文件

vi /etc/ssh/sshd_config

默认端口为 22,去掉 #Port 22 前面的 # 号,并在其下添加一行 Port 8899,如下:

Port 22
Port 8899
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::  

检查防火墙是否安装了IPTABLES

whereis iptables

如下输入则为已经安装

iptables: /sbin/iptables /etc/iptables.rules /usr/share/iptables /usr/share/man/man8/iptables.8.gz

检查iptables的状态

iptables -L -n

此时有一条记录对应如下

ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

我们的目标是将22修改为8899
首先添加一条防火墙记录,允许8899通过iptables

iptables -A INPUT -p tcp --dport 8899 -j ACCEPT
//这个意思是,-A 增加,INPUT 入方向, -p 什么协议 后面跟协议名称,这里是tcp,--dport 8899允许tcp 8899端口
// -j 什么操作比如ACCEPT是允许,如果是DROP / REJECT就是拒绝了。
//所以这句意思是:允许访问主机的8899端口

先不要着急删除22端口,测试没问题了再删除

保存IPTABLES的设置

iptables-save > /etc/iptables.up.rules
echo -e '#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules' > /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables

重启ssh服务

/etc/init.d/ssh restart

这会可以测试一下8899端口能不能正常连接,如果正常了就可以在iptables和ssh的配置文件当中删除22
端口了

iptables -D INPUT -p tcp --dport 22 -j ACCEPT

再保存一次iptable的设置

iptables-save > /etc/iptables.up.rules
echo -e '#!/bin/bash\n/sbin/iptables-restore < /etc/iptables.up.rules' > /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables

修改ssh的配置文件

vi /etc/ssh/sshd_config

Port 22前面的#号去掉

#Port 22
Port 8899
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

重启ssh服务

/etc/init.d/ssh restart

至此,第一步 修改SSH默认端口号的任务完成

  1. SSH 配置使用密匙登录

生成秘钥 root登录后

ssh-keygen -t rsa -b 4096

会输入保存密匙文件路径,默认 /root/.ssh/id_rsa
接着会提示输入加密密匙文件密码,可以留空,不过建议还是加个密码。再回车,密匙文件就生成完。文件保存在 /root/.ssh/ 目录下,id_rsa 为私钥,id_rsa.pub 为公钥。私钥自己下载到本地电脑妥善保存,公钥可以任意公开。
可以使用 FlashFXP 通过 SFTP 方式或者 WinSCP 登录 VPS 下载私钥文件到本地,保存好记得把服务端私钥文件删除。
导入公钥

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

修改SSH登录方式,同时允许私钥和密码登录(测试没问题后在关闭密码登录),还是那个熟悉的配置文件

vi /etc/ssh/sshd_config

找到下面这行 ,去掉前面的#号注释

#PubkeyAuthentication yes

重启SSH服务

/etc/init.d/ssh restart

Putty使用Linux OpenSSH生成的ida私钥连接时,提示unable to use key file xxx (openssh ssh-2 private key)
原因:openssh的私钥格式与putty的私钥格式不同。
解决方法:使用puttygen进行格式的转换,相关工具在putty工具包当中都有。
具体步骤:打开puttygen把openssh生成的私钥load进去,save private key,再putty里重新导入private key,就可以了。

微信截图_20190211094329.png

测试使用密钥能否登录ssh,配置putty
2.png
3.png
1.png

测试一下是不是能登录
4.png
这个密码就是生成私钥时生成的,输入就可以,如果出现下图就是登录成功了
5.png

私钥登录成功了,可以删除密码登录了,还是老朋友,ssh的配置文件

vi /etc/ssh/sshd_config

找到下面的内容

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

将PasswordAuthentication yes的注释取消,并将yes改为no
保存退出

重启ssh服务

/etc/init.d/ssh restart

至此,修改 SSH 端口,禁用 22 端口;使用密匙登录 SSH,禁用密码登录修改完成。谢谢观赏

vi的简单使用方法,有这4点简单修改配置文件足够了
i进入编辑状态
esc键 退出编辑状态
:wq 保存退出
:q! 不保存退出

参考了以下文章
https://cyhour.com/843/
http://www.vrcms.com/html/27.html
http://www.itlogger.com/system/2181.html

所需软件
PUTTY 直接官网下载的安装包,包括puttygen,也有纯绿色版本的
WinSCP(5.11)绿色便携版,开源SCP/SFTP客户端 下载地址:https://pan.baidu.com/s/1geTxOqv