3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

さくら VPS の初期設定まとめ

Posted at

少し放置していたさくらの VPS の OS を再インストールして一から環境構築したので、
その手順をまとめました。

環境

OS:Cent OS 6.8
ローカル環境:Mac

やること

セキュリティとログ監視の設定を行います。
Apache や MySQL などアプリケーションに関しては触れません。

  • 作業用ユーザの作成
  • SSH 鍵認証の設定
  • ファイアウォールの設定
  • logwatch の導入

root ログイン

サーバ契約時に送られてきたメールから、サーバの IP アドレスと root のパスワードを確認しておきます。
Mac のターミナルから SSH で接続します。
"Are you sure you want to continue connecting (yes/no)?" と聞かれたら yes と入力します。

terminal
ssh root@xx.xx.xx.xx

root パスワードの変更

まず、root のパスワードを変更します。

passwd

yum update

インストール済みのパッケージを更新します。

yum update

日本語化

vim /etc/sysconfig/i18n
i18n(変更前)
LANG="C"
i18n(変更後)
LANG="ja_JP.UTF-8"

作業用ユーザの追加

sudo できるよう wheel グループに追加してあげます。

useradd hoge
passwd hoge
usermod -G wheel hoge
visudo
visudo(変更前)
# %wheel ALL=(ALL) ALL
visudo(変更後)
%wheel ALL=(ALL) ALL

作業用ユーザでログイン

作業用ユーザでログインできることを確認します。

terminal
ssh hoge@xx.xx.xx.xx

SSH 鍵認証の設定

公開鍵を入れるディレクトリを作成します。

mkdir ~/.ssh
chmod 700 ~/.ssh

次に、ローカルのターミナルを起動します。

terminal
ssh-keygen -t rsa -v

ファイル名を聞かれるので、デフォルトで良ければそのまま Enter します。
パスフレーズを入力します。

ファイルが作成されたらパーミッションを変更します。

terminal
cd .ssh
chmod 600 id_rsa.pub

サーバに公開鍵を転送します。

terminal
scp id_rsa.pub hoge@xx.xx.xx.xx:~/.ssh/authorized_keys

SSH 鍵認証を使ったログイン

鍵認証でログインできることを確認します。

terminal
ssh hoge@xx.xx.xx.xx

SSH のセキュリティ設定

鍵認証の設定ができたところで、以下を禁止してセキュリティを高めます。

  • パスワードでのログイン禁止
  • root でのログイン禁止
  • ポート番号の変更

root 権限で作業します。

sudo -s
vim /etc/ssh/sshd_config
sshd_config(変更前)
#Port 22
sshd_config(変更後)
Port 10022

パスワードでのログインを禁止します。

sshd_config(変更前)
PasswordAuthentication yes
sshd_config(変更後)
PasswordAuthentication no

root でのログインを禁止します。

sshd_config(変更前)
#PermitRootLogin yes
sshd_config(変更後)
PermitRootLogin no

保存後、sshd を再起動します。

service sshd restart

sshd を再起動したら別のターミナルを開き、変更したポート番号でのログインを確認します。
root やパスワードでのログインができないことも確認しておきましょう。

terminal
ssh -p 10022 hoge@xx.xx.xx.xx

ファイアウォールの設定

CentOS 6.x では iptables を使用します。
今回は SSH と HTTP のみ許可していますが、必要に応じてその他のポートも開けます。

vim /etc/sysconfig/iptables
iptables
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --tcp-flags ALL NONE -j DROP
-A INPUT -p tcp --tcp-flags ALL ALL -j DROP
-A INPUT -p tcp ! --syn -m state --state NEW -j DROP
-A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 10022 -j ACCEPT

COMMIT

IPv4 は iptables で設定しますが、IPv6 は ip6tables で設定します。
設定している内容は IPv4 と同じです。

vim /etc/sysconfig/ip6tables
ip6tables
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp --tcp-flags ALL NONE -j DROP
-A INPUT -p tcp --tcp-flags ALL ALL -j DROP
-A INPUT -p tcp ! --syn -m state --state NEW -j DROP
-A INPUT -p icmpv6 --icmpv6-type echo-request -m limit --limit 1/s --limit-burst 4 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 10022 -j ACCEPT

COMMIT

logwatch の導入

logwatch はサーバのログをきれいに整形して、毎日レポートをメールで送ってくれます。
/var/log から手作業でログを確認するという作業から解放されますので、サーバ監視にはかかせませんね。

yum install logwatch

インストールが終わったら設定を行います。

cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf
vim /etc/logwatch/conf/logwatch.conf

レポートの送信先メールアドレスを設定します。
自分の環境ではデフォルトで postfix が動いていたので、メールアドレスを指定するだけで送信できました。

logwatch.conf(変更前)
MailTo=Root
logwatch.conf(変更後)
MailTo=hoge@example.com

次に、ログの詳細度を設定します。
Low、Med、High のいずれかを設定します。この辺はお好みで。

logwatch.conf(変更前)
Detail=Low
logwatch.conf(変更後)
Detail=Med

最後に、cron に設定されている conf ファイルのパスを変更します。

0logwatch(変更前)
DailyReport=`grep -e "^[[:space:]]*DailyReport[[:space:]]*=[[:space:]]*" /usr/share/logwatch/default.conf/logwatch.conf | head -n1 | sed -e "s|^\s*DailyReport\s*=\s*||"`
0logwatch(変更後)
DailyReport=`grep -e "^[[:space:]]*DailyReport[[:space:]]*=[[:space:]]*" /etc/logwatch/conf/logwatch.conf | head -n1 | sed -e "s|^\s*DailyReport\s*=\s*||"`

毎日レポートが送られてきますので、ちゃんと読みましょう!

参考リンク

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?