さくらの VPS を使う - 1. 初期設定

自分用のメモとしての意味合いが大きいので、これのとおりに設定して不利益があっても私は知りません。というか「この設定やばいよ」とかあったら教えてください。

root パスワード変更・ユーザー作成・公開鍵認証の設定・公開鍵認証のみを利用することにする

事前にクライアント側で RSA 鍵を作っておく(既にある場合はそれでもおk)

$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub
# passwd
# useradd hoge
# passwd hoge
# su hoge
2016-07-16 追記:公開鍵を貼り付ける作業は ssh-copy-id コマンドを利用するとパーミッションも含めてよしなに行ってくれるらしい。
$ mkdir ~/.ssh
$ chmod 700 .ssh
$ vi ~/.ssh/authorized_keys
公開鍵を貼り付ける
$ chmod 600 .ssh/authorized_keys 
$ su -
# vi /etc/ssh/sshd_config
PermitRootLogin を no に変更
PasswordAuthentication を no に変更
# service sshd restart
# usermod -G wheel hogehoge
# visudo
%wheel  ALL=(ALL)       ALL  の行のコメントアウトを解除
# exit
$ vi ~/.bash_profile  次のパスを追加
PATH=$PATH:/sbin
PATH=$PATH:/usr/sbin
PATH=$PATH:/usr/local/sbin

.bash_profile を読み込むために再ログインする

システムのアップデート

$ sudo yum update

_vimrc, vimfiles/ を送る

sftp クライアントでつないで送る。快適さのためには必須作業である。

tmux

$ sudo yum install tmux

SSH ポート変更

$ sudo vi /etc/ssh/sshd_config
Port XXXXX (< 65535 の大きい数) をコメントアウト 
$ sudo service sshd restart

クライアント側:

$ vi ~/.ssh/config
Host example.com
HostName example
Port XXXXX

iptables の設定

$ sudo vim /etc/sysconfig/iptables

19 行目は ssh のポートを指定する。

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH, HTTP, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport XXXXX -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT
$ sudo service iptables restart
$ sudo iptables -L (設定確認)