按这篇文章申请了免费的Oracle Cloud、配置了子网的安全规则。
配置VPS
免费的只支持 Ubuntu、CentOS、Oracle Linux,因为 CentOS 似乎前途暗淡,只能选 Ubuntu(20.04) 了。
创建实例后直接用 Windows Terminal 通过 SSH 登录。
Windows Terminal的快捷键:
alt+shift++
:竖直分割窗口alt+shift+-
:水平分割窗口alt+↑/↓/←/→
:在窗口间移动焦点alt+shift+↑/↓/←/→
:调整窗口大小
# 用SSH登录
ssh ubuntu@168.138.33.146
# 安装 tldr、zsh、NodeJS、npm:
sudo apt install tldr zsh nodejs npm
安装 oh-my-zsh、rvm、Ruby、Rails、Yarn。
因为没有root密码,并且改root密码后不能用,所以无法用chsh
命令把zsh设置成默认的shell。不过可以参考chsh -s 到底修改了哪里直接改。
按Getting Started with Rails操作到"4.1 Starting up the Web Server"这一步。启动服务器的命令要改为rails server --binding=0.0.0.0
,否则只能本地访问。
配置防火墙
现在这个系统默认带了两个iptables的前端,即netfilter-persistent和ufw,而且默认两个都是enable的。
# 查看所有service的状态
service --status-all
iptables的规则是有顺序的,用 ufw 的话,因为规则是添加在 netfilter-persistent 添加的规则(就是/etc/iptables/rules.v4)后面,会被后者的规则先匹配到而起不到作用。
又 ufw.service 启动还有问题1,所以不用 ufw。
# 这个命令能看到当前的配置
iptables -L -n
# 这个能导出iptables
iptables-save > iptables.bak
# 这个能导入iptables
iptables-restore < iptables.bak
# 编辑iptables的规则。netfilter-persistent操作的就是这个。
vim /etc/iptables/rules.v4
按下面注释说明的修改
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [463:49013]
:InstanceServices - [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p udp --sport 123 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 3000 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
# 在这添加下面这句,开放puma的默认端口3000
-A INPUT -p tcp --dport 3000 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -d 169.254.0.0/16 -j InstanceServices
...
# 使修改不重启就生效
iptables-restore < /etc/iptables/rules.v4
SSL
用Let’s Encrypt的免费证书。用acme.sh配置。
acme.sh --issue --dns dns_ali -d bitichong.tech -d '*.bitichong.tech'
acme.sh --install-cert -d bitichong.tech \
--key-file /etc/nginx/ssl/bitichong.tech.key \
--fullchain-file /etc/nginx/ssl/fullchain.cer \
--reloadcmd "service nginx force-reload"
修改nginx配置:http跳转、ssl证书地址等。
iptables 开放443端口。
可能用到的其他命令
# 切换成root
sudo -s
scp ubuntu@168.138.33.146:/home/ubuntu/iptables.txt .
# 当前shell
echo $0
其他
配置好后在Oracle Clould的控制台中创建快照: “More Actions-Create Custom Image”。