年初的时候,自己使用Shadowsocks和Bandwagon搭建了一个SS梯子,顺畅无比。前段时间登上KiviVM一看,我的VPS居然被Suspend了,原因是遭遇DDos共计,我的VPS一直向外发送请求。
又是改密码,又是改ip的,统统不行。终于没有浪费最后一次机会,Install A New OS,这下没问题了。(三次失败就被ban一年)
##一、使用SSH证书密钥登录
ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式。其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法。
使用密钥登录分为3步:
- 1、生成密钥(公钥与私钥);
- 2、放置公钥(Public Key)到服务器~/.ssh/authorized_key文件中;
- 3、配置ssh客户端使用密钥登录。
- 4、修改`sshd_config`配置
<!--more-->
###1) 生成密钥公钥(Public key)与私钥(Private Key)
打开Xshell,`tools`
--> `User Key Generation Wizard...`(密钥生成向导)
--> `Key Type` --> `DSA`公钥加密算法,`Key Length`选择为“1024”位密钥长度.
--> `Next`,等待密钥生成, --> `Key Name`中输入Key的文件名称,例如`id_dsa_1024_sherlocky`; --> `Passphrase`处输入一个密码用于加密私钥,并再次输入密码确认.
--> `Next`,密钥生成完毕(`Public key Format`选择`SSH2-OpenSSH`格式),这里显示的是公钥,我们可以复制公钥然后再保存,也可以直接保存公钥到文件,私钥这里不显示,可以在`User Key Mangager...`导出到文件.
--> `Save as file...`,将公钥(Public key)保存到磁盘,文件名为`id_dsa_1024_sherlocky.pub`,备用。
###2) 上传公钥(Public Key)到服务器
使用到Xshell登录到服务器,进入到`/root/.ssh/`目录,将`id_dsa_1024_sherlocky.pub`发送到服务器,然后运行如下命令,将公钥(Public Key)导入到`authorized_keys`文件:
```bash
cd /root/.ssh/
cat id_dsa_1024_sherlocky.pub >> authorized_keys
chmod 600 authorized_keys #修改文件的权限,否则可能会遇到问题
cat authorized_keys
```
###3) 配置Xshell使用密钥认证方式登录到服务器
打开Xshell,--> `New` --> `Authentication`切换到认证栏目,
--> `Method`选择`Public Key`认证,用户名输入`root`(公钥是放在root目录下的.ssh文件夹中),
--> `User Key`中选择我们刚才生成的私钥`id_dsa_1024_sherlocky`,`Passphrase`中输入私钥的加密密码 。。。
###4) 修改`sshd_config`配置
为了系统安全着想,要关闭密码认证的方式,还要及时更改`ssh`端口为非默认端口,同时仅允许证书登录。
```bash
vim /etc/ssh/sshd_config
```
修改下面几处:
```bash
PubkeyAuthentication yes #启用PublicKey认证
AuthorizedKeysFile .ssh/authorized_keys #PublicKey文件路径
PasswordAuthentication no #不使用密码认证登录
```
##二、配置`iptabls`
可以安装`fail2ban`来防止暴力破解SSH,要仔细设置`iptables`,只允许`80 443 53`端口的通信.
附上xudshen的`iptables`设置。
<script src="https://gist.github.com/y836097668/ce82285335a09e5ad424.js"></script>
本文转自[xudshen's blog](http://xudshen.info/2014/10/15/securing-vps-with-iptables/),有一些改动。
Bandwagon 被黑小记