2009年1月4日日曜日

Subversionで22番ポート以外にsvnsshする方法

SSHサーバを22番ポートで運用していると,海外を中心にあちこちからブルートフォースアタックが飛んでくるため,/var/log/secureがひどいことになる
Jan 4 05:42:51 www sshd[26460]: Invalid user postgres from ::ffff:121.96.42.157
Jan 4 05:42:51 www sshd[26461]: input_userauth_request: invalid user postgres
Jan 4 05:42:51 www sshd[26460]: reverse mapping checking getaddrinfo for 121.96.42.157.bti.net.ph failed -
POSSIBLE BREAKIN ATTEMPT!
Jan 4 05:42:53 www sshd[26460]: Failed password for invalid user postgres from ::ffff:121.96.42.157 port 5
7258 ssh2
Jan 4 05:42:53 www sshd[26461]: Received disconnect from ::ffff:121.96.42.157: 11: Bye Bye
Jan 4 05:42:55 www sshd[26462]: Invalid user pilarova from ::ffff:121.96.42.157
Jan 4 05:42:55 www sshd[26463]: input_userauth_request: invalid user pilarova
Jan 4 05:42:55 www sshd[26462]: reverse mapping checking getaddrinfo for 121.96.42.157.bti.net.ph failed -
POSSIBLE BREAKIN ATTEMPT!
....
そのため,sshd自体を22番以外のポートで運用するという対策がある.CentOS,FedoraといったRedhat系Linuxでは/etc/sshd/sshd_configに
Port 222
としてやればいい(222番ポートの場合).

ただ,こうするとsubversionのサーバとして使っているサーバの場合,svnコマンドで「svn+ssh://〜〜」といった指定をしてもアクセスできなくなってしまう.これはsvnがsshは22番ポートで動作している事を前提としているからである.

これを回避するには,~/.subversion/configを開いて,[tunnel]というセクションがあるので,その後ろの行に
[tunnels]
p222=ssh -p222
という行を追加してやり「svn+ssh://〜〜」としていた部分を「svn+p222://〜〜」といった形に直してリポジトリにアクセスすれば良い.
後ろのsshオプション部分をいじってやれば,指定した公開鍵でログインといったこともできる(はず).

コンフィグファイルを編集せずに,コマンドラインオプションで設定する方法を探したのだが,見つからなかったので今はこんな形で対応している.

0 件のコメント:

コメントを投稿