シェルへのアクセスを得るためのChroot Debianスクイーズ

シェルへのアクセスを得るためのChroot Debianスクイーズ

ユーザーは WAN 側で Ubuntu サーバーへのシェルアクセスが必要です。単純なパスワードを使用するシェルアカウントがたくさんあります。したがって、シェルポート(ポート22)はファイアウォールでブロックされます。 WAN側のユーザーのためにDebian chrootでSSHサーバーを実行し、ファイアウォールでそのポートを開く予定です。この設定が可能であれば、これを実装する最良の方法は何ですか?

ベストアンサー1

シングルSSHサーバー

chrootでSSHサーバーを実行する唯一の理由がパスワード認証を特定のユーザーに制限することである場合は、これを行う必要はありません。 sshdにホワイトリストのユーザーにのみパスワードを許可するように指示できます。存在する/etc/ssh/sshd_config,Match次のコマンドを使用します。

PasswordAuthentication No
Match User trusted_user_1,trusted_user_2
    PasswordAuthentication yes

実際には、一部のユーザーをchrootしたい場合でも、単一のsshデーモンを実行し、ChrootDirectoryディレクティブをsshd_config(指示文の範囲内でMatch)使用できます。

異なるアドレスを受信する2つのSSHサーバー

2 つの SSH デーモンが異なるアドレスをリッスンする場合は、同じポートでリッスンすることができます。各ディレクティブにListenAddressディレクティブを挿入します。/etc/ssh/sshd_config、それぞれサーバーが受信するIPアドレスがあります(受信存在する、聞かないで到着つまり、サーバーのネットワークインターフェイスアドレスです。この方法は、サーバーコンピュータがLAN / WANフィルタリングを実行するノードである場合にのみ適用が制限されます。これは、このような操作がssh localhost透過的ではないことを意味します(localhostを受け取らないデーモンへのアクセスは引き続き使用できますssh -b)。

異なるポートでリッスンする2つのSSHサーバー

Port次のディレクティブを使用して、chrootのsshデーモンが別のポートでリッスンできるようにすることができます。/etc/ssh/sshd_config。ファイアウォールの外側でポート 22 をブロックし続け、chroot sshd に対して選択した他のポートをブロックしないでください。

2つのSSHサーバー、ファイアウォールによるルーティングの実行

上記のように、2つのデーモンが異なるポートでリッスンしている場合、両方ともポート22でリッスンしているように見えます。たとえば、chrooted ssh デーモンがポート 2201 でリッスンするようにし、ポート 22 からポートeth12201 にトラフィックをリダイレクトします。

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 22 -j REDIRECT --to-ports 2201

その後、localhost または eth0 経由でポート 22 への ssh 接続は chroot ではなくサーバーに到達し、eth1 経由でポート 22 への ssh 接続は chroot サーバーに到達します。ポート2201の接続はchrootサーバーに到達します。-i ethたとえば、! -s 10.1.0.0/16 ! -s 127.0.0.0/8ソースアドレスを10.1.xyまたはループバックを除くすべてのエントリと一致させるなど、他の基準を使用できます。

おすすめ記事