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モジュールの説明



All Articles