2008年02月07日

sshdを外と内で使い分ける

こんな要件必要な人いるのかな…と思いつつ。

sshdを使うにあたって、

・インターネットからのアクセスはがっちりガードを固めたい
・ローカルネットワークからのアクセスはてきとー


と言う個人的希望を満たすために、sshdを2つ起動してみました。

同じプロセス名で2つ起動しちゃうといろいろ問題があるので、sshdの別名としてシンボリックリンクを作ります。
cd /usr/sbin
ln -s sshd sshd-out

次に2つめの起動ファイルを作ります。オリジナルの起動ファイルである /etc/rc.d/init.d/sshd/etc/rc.d/init.d/sshd-out という名前でコピーして、これを外部用としましょう。(つまりオリジナルは内部用)

外部用のファイル sshd-out を以下のように変更します。(面倒なのでdiffの結果で)
22c22
< prog="sshd"
---
> prog="sshd-out"
26c26
< SSHD=/usr/sbin/sshd
---
> SSHD=/usr/sbin/sshd-out
30c30
< PID_FILE=/var/run/sshd.pid
---
> PID_FILE=/var/run/sshd-out.pid
107c107
< initlog -c "$SSHD $OPTIONS" && success || failure
---
> initlog -c "$SSHD -f /etc/ssh/sshd_config.out" && success || failure
109c109
< [ "$RETVAL" = 0 ] && touch /var/lock/subsys/sshd
---
> [ "$RETVAL" = 0 ] && touch /var/lock/subsys/$prog
122c122
< [ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/sshd
---
> [ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/$prog
153c153
< if [ -f /var/lock/subsys/sshd ] ; then
---
> if [ -f /var/lock/subsys/$prog ] ; then
そしたら設定ファイルを作ります。オリジナルの /etc/sshd/sshd_config/etc/sshd/sshd_config.out という名前でコピーします。sshd_config.out で必須の変更は、コメントアウトされているPidFile
PidFile /var/run/sshd-out.pid

に変更すること。あとは必要な要件に合わせて、

/etc/sshd/sshd_config
 内部用なのでラフな設定でOK

/etc/sshd/sshd_config.out
 外部用なのでポート番号変更+公開鍵認証+ログインユーザ限定

とかしておくといいんじゃないかと思います。

最後にルータなりiptablesなりで、内部用のsshdに外部からアクセスできないようにすることをお忘れ無く!
posted by 月水和尚 (とも) at 14:43 | Comment(0) | TrackBack(0) | Linux(ディストリビューション固有)
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。