SOCKS Danteサーバーの設定時にlibpamを使用する

すべての良い一日。 SOCKS5を設定する必要性に直面して、インターネット上、特にHabr上で、ユーザー名メソッドがdante-serverの承認を設定するために使用されることがわかりました。

この方法は決して安全ではありません。 これは複数回( たとえば )記述されており、認証に別のパスワードファイルを使用する3proxyと多くの比較が行われています。 Danteでこの機能を実装することに興味がある人は、猫をお願いします。

インストールと基本的なセットアップについては説明しませんが、これらの記事は巨大であり、一般に複雑なことはありません。 別のパスワードファイルのトピックについてのみ言及します。 Ubuntuにはすべてのコマンドが提供されますが、他のディストリビューションで同じことを行うことも難しくありません。

この機能のdanteをPAMサポートでコンパイルする必要があることを予約する必要があります。インストールの記事では、ソースの構成ステータスの次の行で示されています。

PAM: Enabled 


リポジトリからパッケージをインストールする場合、PAMはすでに依存関係にあります。

したがって、まず最初に、追加のコンポーネントが必要です。

 aptitude install libpam-pwdfile 

libpam-pwdfileパッケージは、/ etc / passwd形式の別のファイルに対して認証する機能を提供します。

インストール後、ファイル/etc/pam.d/sockdを編集します

 nano /etc/pam.d/sockd 


ファイルに次を入力します。

 auth required pam_pwdfile.so pwdfile ${DIR_FOR_PASSWD_FILE}/sockd.passwd account required pam_permit.so 


ここで、サービスのパスワードファイルを設定します。 $ {DIR_FOR_PASSWD_FILE}をパスワードファイルがあるディレクトリ(たとえば、/ opt / dante)に置き換えます。

パスワードファイル自体のファイル形式は/ etc / passwdです。これは、コロンで区切られたパラメーターの形式でユーザーごとに個別の行を意味します。 最初のパラメーターはユーザー名で、2番目は暗号化されたパスワードです。

 SomeUser:$1$1bhzkYnM$cfYSzS9Vx17AypWYAnnhn0 


暗号化されたパスワードは、次のようにwhoisパッケージからmkpasswdユーティリティを使用して取得できます。

 mkpasswd --method=md5 SomeStrongPassword 


すべてを準備したら、Danteで適切な認証方法を有効にするだけです。 これを行うには、/ etc / sockd.confファイルを編集して次の行を変更します

 socksmethod: username 


これに

 socksmethod: pam.username 


Danteをプリロードし、別のパスワードファイルの承認を取得します。

PS

Danteがデフォルトで使用するサービスPAM名はsockdです。 また、設定済みの別のサービスからlibpam_pwdfile設定ファイルを使用する場合、または複数の設定を使用する場合は、Dante設定ファイルでpamservicenameディレクティブを使用できます。 使用例:

 client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 #the servicename should differ from the servicename in socks-rules pamservicename: pam_host } 

このディレクティブの使用をより完全に理解するために、Danteのドキュメントを参照することをお勧めします。Danteのドキュメントへのリンクは以下にあります。

使用した材料:

Danteのドキュメント。 PAM認証

GitHubのlibpam-pwdfileモジュールの説明

Source: https://habr.com/ru/post/J354274/


All Articles