Home > Archives > 2008年08月

2008年08月

つまりのところ

残った点の解決法.

Match Address を sshd_config に書くのが一番スマートな解決法にみえる.ただ,サブネットマスクのビット長が25というのがちょっと引っかかる.OpenSSHのバージョンが 5.1であれば

Match Address xxx.xxx.xxx.128/25
    PasswordAuthentication yes

とかのアドレス/マスクのビット数というマッチングが効いてくれるのだけど,残念なことにサーバに入ってるのは5.1未満で上の表記が使えない.サブネットが/24だったらワイルドカードを使ったxxx.xxx.xxx.*の表記で問題ないけど/25だとうまく書くすべがない気がする….

別の手法としては,別ポートで内部向けのsshdを立ち上げておいて,iptablesで内側からのssh接続要求をそのポートに回してしまう方法がある.たとえば内向きのsshdが2222で待っているとして

iptables -t nat -A PREROUTING -p tcp -s xxx.xxx.xxx.128/25 -d xxx.xxx.xxx.yyy --dport 22 -j DNAT --to-destination xxx.xxx.xxx.yyy:2222

とか追加してみるとできる(xxx.xxx.xxx.yyyをサーバとして).んで,内部向けのsshdはxinetdで立ち上げるのが設定ファイルの記述量やらの点で一番楽そうな気がする./etc/services に

ssh_internal	2222/tcp

とか追加して, /etc/xited.d/ssh_internal を

service ssh_internal
{
        only_from       = xxx.xxx.xxx.128/25
        disable         = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/sshd
        server_args     = -i -f /etc/ssh/sshd_config.internal
        log_on_success  += DURATION USERID
        log_on_failure  += USERID
        nice            = 10
}

とか書いて,内向きのsshd_config を /etc/ssh/sshd_config.internal として

PasswordAuthentication yes

と書いてみる. …あほか?

まあ,内側からパスワードで入らなきゃならん機会ってのは共用マシンからのログイン時だけ&そんなことをする人間も少ないので,内側からのパスワード認証を許可しなくても問題ない気配.

Home > Archives > 2008年08月

Search
Feeds

Page Top