第1部 構築編
本番運用に向けて
SSH サーバ構築
Linux に限らず、本番運用の始まった UNIX 系 OS はサーバマシン本体の場所に行って直接いじることはほとんど無い。
普通は端末からリモートでログインして操作するのである。
お試しでは telnet を利用してログインしたが、本番運用に向けてよりセキュリティのしっかりしたリモートログインである SSH を利用することにする。
SSH は Secure SHell の略で、telnet ではプレーンテキストで回線を流れていた送受信データを暗号化して、セキュリティを高めたリモートアクセス方法である。
今回選択したインストールパッケージには SSH は含まれていないので、Red Hat Linux のインストールパッケージからインストールしてしまおう。
Red Hat Linux のインストール CD の 2 枚目を挿入して以下のように操作する。
mount /mnt/cdrom/
rpm -ihv /mnt/cdrom/Red Hat/ROMS/openssh-server-3.1p1-3.i386.rpm
そうすると SSH サーバのインストールが完了する。
取り敢えず CD-ROM はアンマウントしてしまおう。
umount /mnt/cdrom/
chkconfig コマンドで見てみると sshd はランレベル 3 で自動的に起動するようになっているのが確認出来る。
んが、取り敢えず今はコマンドを叩いて起動してしまおう。
/sbin/services sshd start
これで実行出来る。
Windows から SSH 対応化した Tera Term Pro で接続してみる。
取り敢えず今はユーザを作っていないので、root でリモートログインしてみたが正常にログイン出来ることを確認。
しかしここでセキュリティを考えたい。
リモートで、しかも root がイキナリログイン出来るというのは避けなければならない。
どうもここでログイン出来てしまったと言うことは標準設定では root のログインを許可してしまっているということらしい。
これはマズイ。
と言うことで、セキュリティ強化をする。
SSH サーバの設定ファイルは /etc/ssh/sshd_config にあるので、これを vi で開いて、
#PermitRootLogin yes
と書いてある行を、
PermitRootLogin no
と書き換える。
これで root のログインを禁止した。
更に、
#PermitEmptyPasswords no
という行もあるので、これもコメントアウトを外して以下のように書き換える。
PermitEmptyPasswords no
これで、パスワード設定されていないユーザでのログインを禁止した。
この設定を有効にするため、SSH サーバを再起動する。
/sbin/services sshd restart
試しに再び root でログインしてみると、今度は認証に失敗した。
これで標準的な SSH リモートログインの設定になっただろう。
ただ、どちらにせよ一般ユーザを作らないとリモートでサーバを操作出来ない、つまりいちいちキーボードを持ち替えないといけない。
なので、手っ取り早くユーザを作って、さっさとリモート操作に切り替えよう。
と言うわけで、
adduser -g users -G wheel ********
この時“********”はユーザ名だ。
一応、本番運用に際してユーザ名を公開するのはセキュリティ低下を招くので、“********”で代用する。
パスワードは“????????”で代用するので、この日記を読みつつ Linux に挑戦している人は読み替えてほしい。