セキュリティ対策として OpenSSHを導入します。
これは、インターネットサーバを将来、リモートでメンテナンスする前提があるからです。
一般にリモートログインしてターミナル操作するには Telnetを使いますが、この Telnetの伝文は平文となりモニターされるとミエミエなのです。
これはセキュリティ上、非常にまずいです。
OpenSSHを導入すると伝文を秘文化することができます。
幸い WebminにもOpenSSHを管理する仕組があります。
OpenSSHを導入しよう
OpenSSHを導入するには OpenSSLが導入済みであることが必須条件になりますが、既に Webminをインストールした時に導入済みなので条件クリアです。
-
OpenSSHサイト
から最新版の openssh-3.6.1p2.tar.gz をダウンロードして /usr/local/src ディレクトリに入れます。
-
カレントディレクトリを /usr/local/src にし、次のコマンドを実行します。
# tar xvzf openssh-3.6.1p2.tar.gz
# cd openssh-3.6.1p2
# ./configure
# make
# make install
これで OpenSSHのインストールは完了です。
WebminからOpenSSHを管理しよう
WebminからOpenSSHサーバを管理できるように設定します。
呪文のような設定ファイルをエディタで書き換えるより Webminでやったほうが楽です。
なんと言うか見易いのです。
ヘルプもありますし。
-
SSH Server
Webmin から
サーバ
をクリックし、そこに表示される
SSH Server
アイコンをクリックします。
-
モジュール設定
モジュール設定
をクリックするとこのような画面が表示されるので、設定内容はこの通りに入力して
保存
をクリックします。
-
サーバ / SSH Server
にある6個の設定アイコンの内容を以下のように設定します。
これが OpenSSHサーバを動作させる最低限の設定ということで参照ください。
あとはセキュリティの度合いと好みによって設定を変えれば良いと思います。
設定を変えたら各設定画面の下側にある
保存
を必ずクリックします。
Authentication
認証方法の設定です。
この設定ではIDとパスフレーズで認証します。
セキュリティを高めるにはRSA認証を有効にすると良いでしょう。
Networking
どのネットワークからの通信を可能にするかなどの設定です。
この設定ではどのネットワークからも通信でき、SSH v1, SSH v2とも可能にします。
Access Control
通信を可能にするユーザーと拒否するユーザーを設定します。
この設定では全てのユーザーとの通信が可能です。
Miscellaneous Options
その他のオプション設定です。
Client Host Options
少なくともこのような設定クライアントホストを1つは設定しておかないと、SSH通信ができません。
User SSH Key Setup
直訳すると以下のように書いてあります。
このページは、ユーザーがあなたの制度で作った新しいUnixのためにあなたにSSHの自動セットアップを形成させます。
形成されたなら、新しいユーザーは、SSHを使う前にssh-keygenを走らせる必要がないでしょう。
以上で OpenSSH の設定としては問題ありません。
しかし、OpenSSH 3.3 以降のバージョンより sshd というユーザーを設定しておかないと OpenSSH が起動できません。
sshdユーザーを設定しないで起動した場合は
Failed to start SSH server : Privilege separation user sshd does not exist
というエラーが出ます!!!
ここではサラリと書いていますが、これが判るのに半日かかりました。
エラーメッセージは英語的には理解できるのですが、何が原因かを表していないので・・・
Webminで sshdユーザーを作成しよう
-
ユーザおよびグループ
Webmin から
システム
をクリックし、そこに表示される
ユーザおよびグループ
アイコンをクリックします。
-
ローカルユーザ
メニューにある
新しいユーザを作成
をクリックすると
ユーザの詳細
が表示されます。
-
ユーザの詳細
設定を左の画像のように設定します。
ホームページも何にも必要ありませんから、この設定で十分でしょう。
そして
作成
をクリックします。
これだけで sshdユーザーができました。
こういうところって、Webminは楽です。
バカになってしまいそう・・・
-
OpenSSHの起動
サーバ / SSH Server
を開き
Start Server
をクリックします。
何のエラーも表示されなくて、先程の
Start Server
のところが
Apply Changers
に変われば OpenSSHの立ち上げ成功です!!!
OpenSSHをブート自動起動に設定しよう
OpenSSHは無事に立ち上がったのですが、Linuxをリブートすると OpenSSHは起動していません。
これでは不便なので、ブートで自動起動するように設定します。
-
システム / 起動およびシャットダウン
にある
新規の起動またはシャットダウン アクションを作成
をクリックすると
アクションの詳細
が表示されます。
-
アクションの詳細
設定を左の画像のように設定します。
結構適当な設定ですが間違いではありません。
ちゃんと動作します。
この設定で /etc/rc.d/init.d/ ディレクトリに sshd という名前のスクリプトが作成され、/etc/rc.d/rc*.d/ ディレクトリに「Sなんたら」とか「Kなんたら」いう Linux特有の起動/停止記述もしてくれます。
この辺り、Webminは楽です。
そして
作成
をクリックします。
これで完了です。
OpenSSHは次のブートからは自動起動するようになっています。
Telnetを無効にします
OpenSSHは無事に立ち上がったので、Telnetは無効化します。
元々の
セキュリティポリシーとして一般ユーザにはシェルの使用を禁止する
ので、OpenSSHを利用するのは限られた root になれる人だけです。
そうすると Telnet は不要なのです。
-
Internet Services and Protocols
Webmin から
ネットワーク
をクリックし、そこに表示される
Internet Services and Protocols
アイコンをクリックします。
-
Inetd インターネット サービス
にある
telnet(tcp)
をクリックすると
インターネット サービスの編集
画面が表示されます。
-
インターネットサービスの編集画面
プログラム無効
をチェックして
保存
をクリックします。
これで Telnet が無効になりました。
(この設定は /etc/inetd.conf に反映されます。)
-
リブートしてチェック
リブートして sshが使え、telnetが使えないことを確認します。
これまでで OpenSSH に関する設定は全て完了しました。
SSHクライアントソフト
SSHサーバを使うには、SSHクライアントソフトが必要です。
Windowsの世界では一般的に
Tera Term (Pro)
と
TTSSH
の組み合わせを使います。
Tera Term (Pro)は Telnetやシリアル接続の端末エミュレータソフトですが、これに TTSSHを被せると SSHクライアントにもなります。
インストール方法や細かい設定は各ソフトのページを参照ください。
TTSSH導入済みの Tera Term (Pro)アイコンです。
これをクリックして SSHを選択すると下のウィンドウが表示されます。
これが認証画面です。
SSHサーバの認証方式設定によりアクティブな項目が変わります。
この例はパスフレーズ認証の場合の表示例です。
高度なセキュリティを求める場合は RSA認証がお奨めです。
(OpenSSHサーバの設定と認証キーの作成が必要です。)
SSHではログインの段階から暗号化されるので、何にも対策していない Telnetよりかなり安全と言えます。
Webminで SSHログインする方法
実は Webminにも端末エミュレータソフトが付いています。
このエミュレータはJavaスクリプトで動作します。
この機能があるので、別に TTSSHを使わなくても SSHログインできます。
標準では Telnet設定になっていますが、簡単な変更で SSH対応できます。
-
SSH/Telnet ログイン
Webminの
その他
からこの
SSH/Telnet ログイン
をクリックします。
-
SSH/Telnet ログイン に設定可能なオプション
モジュール設定
を開くとこの画面が表示されるので、
Connection type
を
Secure Shell
に変更し
保存
をクリックします。
設定変更はこれだけです。
-
SSH Authorization required
以降、Webminの
その他
から
SSH/Telnet ログイン
をクリックすると、このような認証画面が表示され SSHログインできます。