目次
個人で借りていた Amazon EC2 から、さくらVPS へお引っ越しした際のメモ
CentOS7 での利用したかったので、OSの再インストール実行した。
最初は HTML5版のコンソールから普通にGUIでインストールを行おうとしたが、解像度の問題でうまくいかなかった。結局ブート後、CentOSロゴが表示された段階で [TAB] キーを押し、ブートフラグに"text"を追加、テキストモードでのインストールを行った。
パッケージは "minimal" で導入した。
OS再インストールが完了し、仮想ゲストが起動した段階で HTML5版コンソール を利用して以下の作業を行った。
SELinuxを設定するためのパッケージ "policycoreutils-python" をインストール
# yum install policycoreutils-python
リモートからアクセスするためのユーザを作成し、SSH公開鍵を設置する。
# groupadd <groupname>
# useradd -g <groupname> <username>
# passwd <username>
Password: ********
# ssh <username>@localhost
Password: ********
$ cd .ssh
$ vi authorized_keys
->公開鍵を登録
$ chmod 600 authorized_keys
$ exit
SSH鍵を作成した端末から、ログイン出来る事を確認
"/etc/ssh/sshd_config" に対し、下記項目の変更を行った。
# cd /etc/ssh/sshd_config
# cp sshd_config{,.orig}
# vi /etc/ssh/sshd_config
項目 | 説明 |
---|---|
Port xxxx | Listenポートの変更 (22 -> 任意のポートへ) |
AddressFamily inet | IPv4系のみリッスン |
ListenAddress | ListenするIPアドレスの指定 |
Protocol 2 | ssh2 でのアクセスのみ許可 |
LoginGraceTime 30s | ログインまでの待ち時間を30秒に |
PermitRootLogin no | "root"ユーザによるログインを拒否 |
StrictModes yes | ホームディレクトリのパーミッション確認 |
MaxAuthTries 1 | 認証の試行回数を"1"に(1回の失敗で切断) |
MaxSessions 4 | セッション数の制限(自分が利用するだけなので少なくした) |
PubkeyAuthenticationyes | 公開鍵認証を行う |
PasswordAuthentication no | パスワード認証を拒否 |
AllowUsers <userid>@<password> | 接続元ユーザの制限 |
"sshd" のポート設定を変更したので、SELinuxのポリシーも変更する(末尾は"sshd"に設定したポートを指定)
# semanage port -a -t ssh_port_t -p tcp <sshd_openport>
SSHを再起動し、指定したポートでListenしている事を確認する
# systemctl restart sshd
# ss -t -l
firewalld にポート変更した "sshd" の設定と、アクセス元IPの制限を設定する。
既存のルールを複製/追加する。
# cd /etc/firewalld/service
# sudo cp /usr/lib/firewalld/services/ssh.xml ./ssh-cm.xml
# sudo vi ssh-cm.xml
5c5
< <port protocol="tcp" port="22"/>
---
> <port protocol="tcp" port="<sshd_openport>"/>
デフォルトの"ssh"と、追加した"ssh-cm"を入れ替える。
# firewall-cmd --permanent --remove-service='ssh' --zone=public
# firewall-cmd --permanent --add-service='ssh-cm' --zone=public
"firewalld"をリロードし、デフォルトの"ssh"が消えて、"ssh-cm"に入れ替わっている事を確認
# firewall-cmd --reload
# firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh-cm #<-"ssh"が消え、"ssh-cm" が増えている
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
既知のIP以外 "ssh-cm" にアクセス出来ないよう設定する。削除したい場合は "--remove-rich-rule" で削除出来る(2016/02/18追記)
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<ipaddress>/32" invert=true service name="ssh-cm" log prefix="ssh connection " level="info" drop'
"firewalld"をリロードし、設定が反映されている事を確認
# firewall-cmd --reload
# firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh-cm
ports:
masquerade: no
forward-ports:
icmp-blocks: destination-unreachable echo-reply echo-request
rich rules:
rule family="ipv4" source NOT address="<ipaddress>/32" service name="ssh-cm" drop
"ssh-cm" のアクセス設定で、ログを出力するようにしたが、そのままだと "messages" に大量に書き込まれることになるので、必要に応じて以下の設定を行う。 "dmesg" は諦め(ry
# vi /etc/rsyslog.conf
...
#### RULES #### #<-"#### RULES ####"の直下に追記する
## Firewalld
# ssh-cm
if ( $msg contains 'ssh connection' ) then /var/log/firewalld-logs/ssh-cm.log
& ~
ローテーションの設定 と 確認
# vi /etc/logrotate.d/syslog
...
"/var/log/firewalld-logs/ssh-cm.log" を追記
# logrotate -d /etc/logrotate.conf
ログ出力先の作成 と rsyslog の再起動
# mkdir /var/log/firewalld-logs
# systemctl restart rsyslog
あとはアクセス許可外の端末からアクセスを試み、ログが生成される事、"messages"に出力されていない事などを確認
独自ドメインの取得は "ムームードメイン" を利用した。
ドメイン取得後、さくらインターネットの会員メニューへログインし、"ドメインメニュー" からドメインの登録などDNSサーバの利用登録を行う。
※契約した最安プランでも5ゾーンまで無料で利用出来る。
※ドメインに紐付けるサーバのIPアドレスは、VPSのIPアドレスを設定
ドメインの登録が完了したら"ゾーン情報"から、NSレコードを確認する。
例)
ns1.dns.ne.jp.
ns2.dns.ne.jp.
ムームードメイン のコントロールパネルにログインし、[ネームサーバ設定変更] を選択 さくらVPS へ登録したドメインを選択し、"GMOペパボ以外 のネームサーバを使用する" という項目に上記ネームサーバの設定を行う。
※必要に応じてさくらVPSコントロールパネルを開き、VPSの設定にて、逆引きホスト名を紐付けたドメイン名に変更する。
以後、24時間程度様子を見ながら、正引き/逆引きが可能となっている事を確認する。
Zoho (http://www.zoho.jp/) を利用し、独自ドメインのメール環境を整理する。