0%

VPS配置:基于Ubuntu 14.04

VPS

Ubuntu最新的版本是15.10,不过不是LTS长期支持版,为了省心还是选择了14.04。

大致对比了好几家VPS提供商,选择了一家进行尝试,结果发现可选的系统是好几年发行的版本debian 6,内核也是好几年前编译的……尝试更新,一堆错误,google了好一会儿,终于更新了内核系统etc……结果开机跪了,问客服,客服说不支持更新到新系统,为了不继续浪费时间果断弃之。

开始认为是价格的原因,但是看了看Digital Ocean和Vultr也是差不多价格……由于有优惠码决定试用下Vultr一个月五美元最低配(绑定paypal或信用卡),带SSD(实测速度只有一百来兆)。

测试了下日本和洛杉矶的速度,洛杉矶机房还快一点……

Vultr提供的系统镜像基本包括了主流系统甚至支持Docker和CoreOS,还可以自己上传5G以内的镜像。可以通过Console查看系统,也就是说即使没有ssh还没启动,机子刚刚启动就可以看到画面了,跟本地一样,这可比只能ssh连的一众主机好太多了……支持定期备份(要收费)。但其实可以用免费的Snapshot给系统做个快照,需要的时候整个系统恢复的方式来免费备份。到洛杉矶机房的延时白天大概150~200ms间,可以接受,基本上是物理极限了(信号传播时间)。

整体来说还是比较满意的,通过该网址注册可以得到一点优惠,或者直接搜索vultr。

安全配置

大多数VPS就是自动安装系统的,只要稍等一下等系统安装后通过ssh进行配置就可以了。

安装完成后首先要配置下ssh,先用root登录ssh并更新系统:

ssh root@your-ip
apt-get update && apt-get upgrade 

添加用户

然后第一步就是要禁用掉root,因为网络上暴力破解密码的机器人太多了。先新建一个新用户(需要root或sudo):

useradd -m username # -m 创建用户home目录
passwd username # 密码
usermod -a -G sudo username # 给用户执行sudo的权限
chsh -s /bin/bash username # 改变用户默认的bash

参考Adding a new user in Kali Linux

禁用root登录:

vi /etc/ssh/sshd_config
将 PermitRootLogin 设置为 no
将 PasswordAuthentication 设置为 no 禁用密码登录
sudo service ssh restart # 重启服务

用key登录

本机登录不需要密码,并且更安全:

ssh-keygen -t rsa -b 4096
ssh-copy-id user@your-ip

原理是将公共key传送到服务器上,以后登录都是用本机的私钥,所以私钥要保护好或者设置口令。

配置fail2ban

建议参考DO的文章how-to-protect-ssh-with-fail2ban-on-ubuntu-12-04,DO上有很多服务器配置的资源,建议多看看查查。

apt-get install fail2ban -y # 安装
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # 复制配置文件,防止更新时丢失等问题

配置文件简要介绍:

ignoreip 是白名单,多个ip用空格隔开

bantime 是指当程序发现有人在入侵主机时,禁止该ip时间

将 [ssh] 一行下的 enabled 设置为 true,假如你的ssh端口不是22还要设置port

其他的很好理解就是字面的意思

重启

sudo service fail2ban restart # 重启服务
sudo iptables -L # 查看有没有生效
sudo iptables -S # 查看已经启用的命令

查看/var/log/fail2ban.log和/var/log/auth.log可以看到有谁在扫描你的端口以及自动禁用了的ip。

iptables的配置见How To Set Up a Firewall Using Iptables on Ubuntu 14.04

基本的安全配置就这样,你还可以配置防火墙,例如自带的ufw或者第三方软件SSHGuard。

常用

  1. cat /etc/issue 查看系统版本
  2. uname -a 直接查看内核版本
  3. dpkg-reconfigure tzdata 配置时区
  4. 平常要多备份关键数据,不要以为系统不会出问题 :)
  5. last/lastb 查看登录过的用户,后者是登录不成功的用户
  6. netstat -lnptu 查看开放的端口及对应的程序
  7. nmap端口扫描
  8. How To Implement a Basic Firewall Template with Iptables on Ubuntu 14.04

关于Hexo博客搭建的下次再写