とある学生の技術Blog

半分くらい自分の備忘録として…

Linuxによる自宅サーバの構築2 - 初期設定とssh接続の公開鍵認証設定

自宅サーバを立てた時の手順を解説しています。 使用しているLinuxOSはCentOS7です。 今回はCentOSの初期設定とsshの設定までを紹介しています。

前回の記事

bit.ly

CentOS初期設定

まず設定した一般ユーザでログインします

login: username
Password:(入力しても画面には表示されません)
$

こんなかんじになればOKです。rootでログインしたいときはusernameにrootと入力します。
ですがrootはなんでも出来てしまうので普通はrootにしたい時以外は常に一般ユーザでログインすべきです。
また、ここではrootの場合はプロンプト(コマンドを打つ場所の左に表示されている所)を「#」、一般ユーザの場合は「$」と表記します。

一般ユーザからrootになるには

$ su -

と入力します。rootから一般ユーザになるには

# exit

次に初期設定をします。以下のように行ってください。(rootでの操作、usernameは設定したユーザ名)

# usermod -G wheel username
# vi /etc/pam.d/su

viはターミナルで必須となるテキストエディタです。操作は最初はややこしいですが、なれると強力なのでぜひ覚えましょう!
viを開いたら

#auth     required     pam_wheel.so  use_uid

の#を削除します。
次にyumコマンドで必要なパッケージをインストールします。

# yum -y update
# yum -y install yum-cron
# vi /etc/yum/yum-cron.conf

apply_updatesを以下のように変更します。/で検索すると便利です。

apply_updates = yes

有効化します。

# systemctl start yum-cron
# systemctl enable yum-cron

一括で必要な物をインストールします。

# yum -y groupinstall base "Development tools"

OP25B対策(Postfix)

プロバイダと契約した時に受け取った情報やwebに掲載されている情報を使います。

# vi /etc/postfix/main.cf

以下のように#relayhost = [an.ip.add.ress]の下辺りに追加します。

relayhost = [smtpサーバ名]:587

認証方式を確認します。

# telnet smtpサーバ名 25か587
Trying 180.37.199.142...
Connected to smtp.sirius.ocn.ne.jp.
Escape character is '^]'.
220 xxx ESMTP Postfix

と出てきたら以下を入力します。

ehlo localhost

以下のAUTH LOGINの部分が認証方式です。

250-xxx
250-SIZE 10485760
250-AUTH LOGIN PLAIN CRAM-MD5
250 AUTH=LOGIN PLAIN CRAM-MD5

続いて以下のように入力します。

quit

これでtelnetが終了します。

設定ファイルを編集します。

# vi /etc/postfix/main.cf

以下を追加します。

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/authinfo
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = 認証方式

認証方式の例: cram-md5, login, plain
認証情報の設定をします。
※プロバイダがOCNの場合は次の項目の方を見てください。

# echo [smtpサーバー名]:587 username:passward > /etc/postfix/isp_auth_info
# chmod 640 /etc/postfix/isp_auth_info
# postmap /etc/postfix/isp_auth_info

usernameはプロバイダから受け取ったメールアカウントの@より左の部分です。
パスワードもそのメールアドレスのパスワードです。 設定を適用して終了です。

# systemctl reload postfix

プロバイダがOCNの場合のOP25B対策

OCNだと若干普通の手順と異なるところがあります。
/etc/:postfix/main.cfの追加の時、

relayhost = [smtpサーバ名]:587

認証情報の設定の時、

[smtp.xxx.ocn.ne.jp]:25 username:passward

と入力します。
ここでxxxとはプロバイダメールの@xxx.ocn.ne.jpの部分です。

メールの転送

# sed -i '/^root:/d' /etc/aliases
# echo "root: hoge@example.com" >> /etc/aliases
# newaliases

hoge@example.comは転送先のメールアドレスを自由に設定してください。 できたらテストメールを送ってみます。

# mail root
Subject:  test
test
.
EOT

無事に転送されました。

ssh接続の設定

sshとはリモートでサーバのマシンへログインすることができる仕組みです。
接続してるネットワーク外ではsshはできませんが、以降の記事でできるようにする設定を紹介したいと思います。

リモートするには以下のように入力します。

ssh user@xxx.xxx.xxx.xxx

xxxにはローカルのIPアドレスが入ります。同じくuserもログインしたい一般ユーザ名にします。
するとパスワード認証を求められ、入力することでリモートできます。
しかしパスワード認証はセキュリティ的に公開鍵に認証するのが普通です。
なので公開鍵の設定を行っていきましょう。

サーバマシンの設定

# mkdir ~/.ssh
# chmod 700 ~/.ssh

操作元のマシン(ローカルマシン)の設定

Enter passphraseでパスワードを設定します。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.

公開鍵と秘密鍵が作成されました。
次に設置を行います。

$ chmod 600 ~/.ssh/id_rsa.pub
$ scp ~/.ssh/id_rsa.pub user@xxx.xxx.xxx.xxx:~/.ssh/authorized_keys

これで次回以降の接続にパスワードが不要になりました。(一回目は鍵のパスワード認証があるかもしれません。その場合は鍵作成時のパスワードを入力してください。)

おすすめの参考書

自宅サーバの勉強においてとても参考になった1冊です。

次の記事

bit.ly