CentOSでパスワードベースの認証を使用してSSH経由でSOCKSプロキシをセットアップするにはどうすればよいですか?


10

を使用して簡単なプロキシを設定する方法を知っていますが、ssh -Dこの場合はユーザー名とパスワードに基づく認証を使用したいと思います。何か方法はありますか?

回答:


5

動的なアプリケーションレベルのポート転送(ssh -D)は、この機能をサポートしていません。代わりにDanteを見てください:

[I] net-proxy/dante
     Available versions:  1.1.19-r4 (~)1.2.3 (~)1.3.0 (~)1.3.1 (~)1.3.1-r1 (~)1.3.2 {debug kerberos pam selinux static-libs tcpd}
     Installed versions:  1.3.2(04:14:03 PM 11/08/2011)(pam static-libs tcpd -debug -kerberos -selinux)
     Homepage:            http://www.inet.no/dante/
     Description:         A free socks4,5 and msproxy implementation

ただし、パスワードはクリアテキストで送信されることに注意しください。

ユーザー名ベースの認証を構成するには、/etc/sockd.confファイルを開き、以下を追加/変更します。

logoutput: syslog /var/log/dante.log

# methods for socks-rules.
method: username #rfc931

# when doing something that can require privilege, 
# it will use the userid "sockd".
user.privileged: root

# when running as usual, 
# it will use the unprivileged userid of "sockd".
user.notprivileged: sockd

pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    protocol: tcp udp
    command: bind connect udpassociate
    log: error
    method: username
}

開始後にリスニングソケットを確認します。

# netstat -nlp | grep sockd
tcp        0      0 127.0.0.1:1080          0.0.0.0:*               LISTEN      5463/sockd          
tcp        0      0 192.168.15.36:1080      0.0.0.0:*               LISTEN      5463/sockd        

何か問題が発生した場合は、ログファイル(/var/log/messagesまたは/var/log/dante.log)を確認してください。

PS:システムパスワードファイル(/etc/passwd)は、ユーザー名とパスワードの組み合わせを確認するために使用されます。


4

ssh -Dアクセスにパスワードを要求する必要はなく、現在の実装ではパスワードを要求することはできません。必要に応じて、既存のhttpサーバー(apacheなど)を使用してマルチステージプロキシを設定し、アウトバウンド接続にsshトンネルを使用することもできます。

繰り返しになりますが、それでも雑草の中にいる場合は、おそらく間違った道を進んでいるため、達成しようとしていることを再考する必要があるかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.