VPS基本设置(Centos)

最近又双叒叕买了一个VPS,费用:700¥/年,来来来,我要罗列一下博客的搬迁记录:

  1. 2009年9月-2011年3月 优智科技 虚拟空间 110¥/年
  2. 2011年3月-2012年10月 瑞豪开源 美国VPS 68¥/月
  3. 2012年11月-2013年10月 Linode VPS 19.95$/月
  4. 2013年10月-2014年7月 百度云虚拟空间 免费
  5. 2014年7月-2016年1月 Linode 10$/月
  6. 2016年1月-2016年11月 衡天小张 VPS 99¥/月
  7. 2017年5月-2018年7月 优智科技 虚拟空间 110¥/年
  8. 2018年7月- 现在 衡天小张 VPS 700¥/年


我了个擦,差不多一年迁移一次的节奏,so,so 为了避免每次迁移到VPS需要重新搭建站点环境,终于下了一个很艰难的决定,在博客上详细记录一下VPS的基本设置和站点环境搭建步骤,之前每次都是记录在印象笔记上,感觉笔记上记录的东西太杂乱,所以整理以前的笔记到博客上以正视听,方便以后参阅。

本文以Centos 7为例,

cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core) 

VPS配置如下:

  • 1024 MB RAM
  • 2 CPU (1x priority)
  • 20 GB Storage
  • 300 GB Transfer
  • 1 ipv4
  • 禁止搭建任何代理服务

一、基本设置

登录VPS

首先在你的VPS面板上找到你的VPS的IP地址,通过如下命令凭你设置好的密码登录VPS:

ssh root@103.251.90.140

输入密码后即可登录VPS

Installing Software Updates(安装软件更新)

yum update

Setting the Hostname(设置主机名)

echo “HOSTNAME=sobird" >> /etc/sysconfig/network
hostname “sobird”

如果你在安装VPS前已经通过面板设置了,可以不用再次设置

Setting the Timezone(设置时区)

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

二、Securing Your Server(服务器安全设置)

Adding a New User(添加一个新用户)

adduser sobird
passwd sobird

给sobird添加sudo权限

vi /etc/sudoers

加入下面一行

sobird ALL=(ALL) ALL

Using SSH Key Pair Authentication(使用SSH密钥对认证)

默认情况下,我们都使用密码来登录ssh,但是加密的密钥对更加安全,因为私钥代替了密码,更难被破解

ssh-keygen -b 4096

如果你客户端目录下 ~.ssh/已经存在了id_rsa ,则不需要再次生成,可以直接使用。

将客户端的id_rsa.pub文件发送的VPS主机上

scp ~/.ssh/id_rsa.pub sobird@103.251.90.140:~/.ssh/authorized_keys

设置ssh服务,打开秘钥登录功能

vi /etc/ssh/sshd_config

去掉注释

RSAAuthentication yes #Centos7 没有了此选项
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

// 重启sshd服务

sudo service sshd restart

重新登录ssh

ssh sobird@103.251.90.140

如果没有提示输入密码就登入,说明配置成功

然后就可以禁用密码登录了

PasswordAuthentication no

再次重启sshd服务

sudo service sshd restart

配置防火墙

查看VPS默认的防火墙配置

sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

创建防火墙规则文件

sudo vi /etc/iptables.firewall.rules

输入下面规则

*filter

# Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

# Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

# Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

# Allow SSH connections
#
# The -dport number should be the same port number you set in sshd_config
#
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

# Allow ping
-A INPUT -p icmp -j ACCEPT

# Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

# Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT

上面的规则将允许对以下服务和端口的流量:HTTP(80)、HTTPS(443)、SSH(22)和ping

应用防火墙规则

sudo iptables-restore < /etc/iptables.firewall.rules

再次查看

sudo iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere loopback/8 reject-with icmp-port-unreachable
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT icmp -- anywhere anywhere
LOG all -- anywhere anywhere limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: '
DROP all -- anywhere anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination
DROP all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere

参考

http://library.linode.com/getting-started

这篇文章目前没有评论

Leave a Reply

(必填项)

(必填项)

(可选)