さくらのVPS
自分のノートPCが重すぎて、ブラウザで検索+開発が成り立たないので開発を外部でやろうという試み
はじめに
コマンドなどの細かい説明は省きます。
また、正直なところiptablesはよく分かっていません。
契約する
2週間はお試し期間で無料なので使いにくかったらやめることも出来る。
OSインストール
標準インストールでUbuntu16.04を選択
パスワードは適当に設定
(ここで、root
ユーザパスワードを設定と書いてあるが、実際は ubuntu ユーザなので注意)
インストールが終わるまで待つ
ログイン
まずは標準ユーザにログイン
sshの設定などができていないはずなので、VNCコンソールからログイン
user: ubuntu
passwd: さっき設定したやつ
先ほども書いたが、ユーザはroot
ではなくubuntu
なので注意
(自分は気が付かずに30分くらい引っかかった)
rootログイン
以下のコマンドでrootにログイン
$ sudo su -
パスワードはubuntuユーザのやつ
OSのアップデートをかける
ソフトウェアが古い場合があるので、以下のコマンドで更新しておく
# apt update
# apt upgrade -y
ついでの設定
sudo
するときにいちいちパスワードを聞かれる
割と手間なので聞かれないように変える
visudo
して変更
-%sudo ALL=(ALL:ALL) ALL
+%sudo ALL=(ALL:ALL) NOPASSWD: ALL
ちなみに visudo で起動するエディタは nano なので別のエディタに変えたい人は以下を参照
Ubuntuのvisudoエディタが変nanoになる
sshの設定
まずはsshサーバをインストール
# apt install openssh-server
22番は有名すぎるのでをとりあえず変えておく
/etc/ssh/sshd_config
を編集
-Port 22
+Port xxxxx
sshサーバを再起動
# systemctl restart ssh
iptables(firewall)の設定
よく見かける方法だと、iptables
コマンドで設定した内容をiptables-persistent
を使って保存しておくようだが、さくらのVPSの標準では/etc/iptables/iptables.rule
というファイルにiptablesの設定が記述されているみたい
この設定は/etc/network/if-pre-up.d/iptables
の記述内でiptables-restore
を使って取り込まれているっぽい
/etc/network/if-pre-up.d/*
はネットワークの起動時に読み込まれるらしい(らしい)
なのでそのファイルを変更して設定を反映した
先ほど設定したsshのポートの部分だけ修正
/etc/iptables/iptables.rule
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
--A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
+-A INPUT -m state --state NEW -m tcp -p tcp --dport xxxxx -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
更新したiptables.rule
を取り込み
# iptables-restore < /etc/iptables/iptables.rule
本当はufwを使って設定しようと思ったのだが、良くわからなかった...
sshで接続する
ローカルのターミナルなどからssh
コマンドによってログインする
さくらのVPSコントロールパネルからipもしくはホスト名を取得しておく
$ ssh ubuntu@{$hostname}
ログインできれば成功