VPSをとりあえず設定してみる
さくらVPSに申し込んでみる
ConoHaに申し込んでみる
ServersMan@VPSに申し込んでみる
の続き
各VPSをとりあえず設定してみる。
最新にアップデート
sshでサーバーにログインし、
とりあえず最新の状態にしておく。
# yum update
さくらVPSとConoHaは、デフォルトでepelのリポジトリが入っていて、有効になっている。 ServersManではデフォルトでvzというリポジトリが入ってる。これは何?
ユーザー作成
ユーザーを作成し、sudoできるようにする。
今回は「hoge」というユーザーを作成する。
# adduser hoge # passwd hoge # usermod -G wheel hoge # visudo %wheel ALL=(ALL) ALL
これで、hogeユーザーでログインできるようになる。
mac$ ssh hoge@サーバーのアドレス
ServersManの場合は mac$ ssh -p 3843 hoge@サーバーのアドレス
鍵認証の設定
鍵が無い場合は、作成しておく。
mac$ ssh-keygen
鍵をサーバーに転送する。
mac$ scp ~/.ssh/id_rsa.pub hoge@サーバーのアドレス:
ServersManの場合は mac$ scp -P 3843 ~/.ssh/id_rsa.pub hoge@サーバーのアドレス:
サーバーにログインし、
mac$ ssh hoge@サーバーのアドレス
鍵の設定をする。
$ mkdir .ssh $ mv id_rsa.pub .ssh/authorized_keys $ chmod 700 .ssh $ chmod 600 .ssh/authorized_keys
これで、サーバーにパスワード無しでログインできるようになる。
mac$ ssh hoge@サーバーのアドレス
SSHの設定
ポート番号を変更し、パスワードによるログインを禁止するよう設定する。
今回はポート番号は「19999」に変更する。
※ssh_configと間違えないように
$ sudo vi /etc/ssh/sshd_config
・・・
Port 19999
・・・
PermitRootLogin no
・・・
PasswordAuthentication no
・・・
$ sudo service sshd restart
ConoHaの場合は、iptablesで22番ポートが設定されているので19999に書き換える。
$ sudo vi /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT ↓ -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 19999 -j ACCEPT
$ sudo service iptables restart
これで、19999番ポートじゃないとログインできなくなる。
mac$ ssh -p 19999 hoge@サーバーのアドレス
iptablesの設定
今回は、SSHの19999番ポートとHTTPの80番ポートだけ開けるよう設定する。
さくらVPS/ServersManの場合
デフォルトの状態は、すべて受け入れる状態になっている。
$ 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
以下の記事を参考にして作成する。
ウェブ開発者のための、1時間でできるLAMP環境構築術(CentOS編) - さくらインターネット創業日記 http://tanaka.sakura.ad.jp/2011/05/centos-linux-apache-php-perl-mysql-lamp.html
さくらVPSの場合は、iptablesのファイルがないので新規に作成する。
ServersManは既にiptablesがあるが、OUTPUTより下の部分を下記のように修正する。
上15行と最後の2行はお決まりの記述のようで、その間の行に通したいポートを指定している。
$ sudo vi /etc/sysconfig/iptables *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 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 19999 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
$ sudo service iptables restart
改めてiptablesの状態を見てみると、下記のように表示される。
$ sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain RH-Firewall-1-INPUT (2 references) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere icmp any ACCEPT esp -- anywhere anywhere ACCEPT ah -- anywhere anywhere ACCEPT udp -- anywhere 224.0.0.251 udp dpt:mdns ACCEPT udp -- anywhere anywhere udp dpt:ipp ACCEPT tcp -- anywhere anywhere tcp dpt:ipp ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:dnp-sec ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
ConoHaの場合
ConoHaは既にiptablesが設定されているので、
80番ポート分を追加する。
$ sudo vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 19999 -j ACCEPT ↓ -A INPUT -m state --state NEW -m tcp -p tcp --dport 19999 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
$ sudo service iptables restart
iptablesの状態を見てみると、下記のように表示される。
$ sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:dnp-sec ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination
SELinuxを無効にする
SELinuxは使いこなせないので、無効にする。
だが確認したところ、どのVPSも既に無効になっていたので、特に設定する必要なし。
$ getenforce Disabled
もし、無効になってない場合は、下記のような感じで無効にする。
$ sudo setenforce 0 $ sudo vi /etc/selinux/config SELINUX=disabled
完了
最後に、一応、再起動しておく。(必要ないかもしれないがなんとなく)
$ sudo reboot
以上で、設定完了。(たぶん)