Linuxによる自宅サーバの構築2 - 初期設定とssh接続の公開鍵認証設定
自宅サーバを立てた時の手順を解説しています。 使用しているLinuxOSはCentOS7です。 今回はCentOSの初期設定とsshの設定までを紹介しています。
前回の記事
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冊です。