はじめに
さくらのVPSへUbuntuをインストールしたので、その初期設定です。
Ubuntu 14.04 LTSの初期設定項目
一般ユーザ/グループ作成
グループを作成します。ここではグループ名:hoge、gid:10000としています。
# groupadd -g 10000 hoge
一般ユーザを作成します。ユーザ名:hoge、uid:10000、所属グループ:hogeで作成しています。
# useradd -u 10000 -g hoge -d /home/hoge -m -s /bin/bash hoge
パスワードを設定します。
# passwd hoge
公開鍵作成
先ほど作成したユーザのssh鍵ペアを作成します。
# su - hoge
$ ssh-keygen -t rsa ←RSA暗号方式の鍵を作成 Generating public/private rsa key pair. Enter file in which to save the key (/home/hoge/.ssh/id_rsa): ←[Enter]キーを押す Enter passphrase (empty for no passphrase): ←パスフレーズを入力 Enter same passphrase again: ←もう一度同じパスフレーズを入力 Your identification has been saved in id_rsa. Your public key has been saved inid_rsa.pub. The key fingerprint is: 1c:4b:4b:81:3b:66:54:d2:2b:26:c3:c6:52:28:fe:3b hoge@XXXXXXXX.sakura.ne.jp The key's randomart image is: +--[ RSA 2048]----+ | . .+o | |. . . o... | |.. + . .+. | | .. * B+.+ | | .o * oS | | . | | . | | E | | . | +-----------------+
公開鍵id_rsa.pubをauthorized_keysという名称に変更して、パーミッションを600(所有者のみ読み書き可能)にします。
$ cd ~/.ssh $ mv id_rsa.pub authorized_keys $ chmod 600 authorized_keys
sudo設定
hogeグループでsudo可能なように設定します。
# vim /etc/sudoers.d/hoge %hoge ALL=(ALL) ALL
# chmod 600 /etc/sudoers.d/hoge
sshの設定
まずはsshの設定をします。
# vim /etc/ssh/sshd_config : ### sshdのポートを22から別ポートへ変更します。 ### 以下は10022にしてますがなんでも構いません。 Port 10022 : ### sshプロトコルバージョン2のみ許可します。 Protocol 2 : ### rootユーザでの外部からのログインを拒否します。 ### デフォルトでは鍵認証でのログインのみ許可(without-password)されています。 PermitRootLogin no : ### パスワード認証でのログインを拒否します。 PasswordAuthentication no : ### sshバージョン1でのRSA認証を拒否します。 RSAAuthentication no : ### SSH公開鍵認証を許可します。 PubkeyAuthentication yes
sshdを再起動します。
# service ssh restart
秘密鍵を使って外部からログインできるか確認します。
localeの設定
デフォルトではシステムの言語設定が英語になっています。 これは環境変数LANGUAGEがen_USになっているためです。
# cat /etc/default/locale LANG="en_US.UTF-8" LANGUAGE="en_US:"
このままですとユーザの環境変数に ja_JP.UTF-8を設定してもうまく日本語で表示されません。
ja_JP.UTF-8 自体がUbuntu 14.04 LTSでサポートされているかを確認します。
# grep ja /usr/share/i18n/SUPPORTED ja_JP.EUC-JP EUC-JP ja_JP.UTF-8 UTF-8
# locale -a locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_COLLATE to default locale: No such file or directory C C.UTF-8 POSIX en_US.utf8
ja_JP.UTF-8 は登録されていません。
そこで、システムで利用可能なロケールに新たな値を locale-gen コマンドを使って登録します。
# locale-gen ja_JP.UTF-8 Generating locales... ja_JP.UTF-8... done Generation complete.
再度登録されているロケールを確認します。
# locale -a C C.UTF-8 POSIX en_US.utf8 ja_JP.utf8
これでja_JP.UTF-8が利用可能になりました。
最後に update-locale コマンドを使って、デフォルトのロケール設定をja_JP.UTF-8に設定します。
# update-locale LANG=ja_JP.UTF-8 *** update-locale: Warning: LANGUAGE ("en_US:") is not compatible with LANG (ja_JP.UTF-8). Disabling it.
LANGUAGEがコメントアウトされ、LANG環境変数がja_JP.UTF-8へと変更されました。
# cat /etc/default/locale LANG=ja_JP.UTF-8 #LANGUAGE="en_US:"
Postfixの設定
Postfixの設定を行います。 外部へメール送信可能なように設定します。
# ホスト名の設定 myhostname = xxxxxxxx.sakura.ne.jp : # メール送信時に利用するドメインの設定 mydomain = xxxxxxxx.sakura.ne.jp : # 外部からのメール受信許可設定 inet_interfaces = all : # 利用プロトコルをipv4に変更 inet_protocols = ipv4 : # 宛先の設定(自ホストが最終的な宛先になるようドメイン名を指定) mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain : # 自ホストのアドレスのみSMTP接続を許可 mynetworks_style = host : # mynetworks_styleに変わって以下でも良い mynetworks = さくらのVPSのIPアドレス : # リレーを許可するアドレスの指定 relay_domains = $mydestination : # telnetなどで接続された時にメールソフトの情報を非表示 smtpd_banner = $myhostname ESMTP unknown
設定できたらPostfixを再起動します。
# service postfix restart
ntpの設定
NTPの設定を行います。 既存の設定を全て削除して、下記のような設定を行います。
# vim /etc/ntp.conf restrict default ignore restrict -6 default ignore restrict -4 ntp1.sakura.ad.jp kod nomodify notrap nopeer noquery restrict -6 ntp1.sakura.ad.jp kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict -6 ::1 server -4 ntp1.sakura.ad.jp iburs server -6 ntp1.sakura.ad.jp iburs
リゾルバの設定
リージョンに合ったネームサーバを指定します。
# vim /etc/resolv.conf nameserver xxx.xxx.xxx.xxx nameserver xxx.xxx.xxx.xxx search sakura.ne.jp
iptablesの設定
細かく設定する場合はiptablesコマンドで頑張る必要がありますが、ここではufwを使います。 ufwでは外部から内部への通信制御ができます。 ひとまずここまでで必要なssh(10022), smtp(25)くらいを開けておきます。
ufwを起動します。
# ufw enable
まず外部からの全ての通信を拒否します。
# ufw default DENY
ログの記録を有効にします。
# ufw logging on
外部からのssh(10022)の通信を許可します。
# ufw allow 10022
外部からのsmtpのポート(25)への通信を許可します。
# ufw allow 25
設定を確認します。
# ufw status