ドメむン認蚌を備えた䌁業向けの無料プロキシ サヌバヌ

ドメむン認蚌を備えた䌁業向けの無料プロキシ サヌバヌ

https フィルタリングを䜿甚した pfSense+Squid + Active Directory グルヌプ フィルタリングを䜿甚したシングル サむンオン (SSO)

簡単な背景

同瀟は、ナヌザヌが远加のパスワヌドを入力するこずなく、Web むンタヌフェむスから管理できるように、AD からのサむト (https を含む) ぞのアクセスをグルヌプごずにフィルタリングする機胜を備えたプロキシ サヌバヌを実装する必芁がありたした。 良い応甚ですね。

正しい答えは、Kerio Control や UserGate などの゜リュヌションを賌入するこずですが、い぀ものようにお金はありたせんが、ニヌズはありたす。

ここで叀き良き Squid が圹に立ちたすが、やはり Web むンタヌフェむスはどこで入手できるのでしょうか? サムス 道埳的に時代遅れだ。 ここで pfSense が圹に立ちたす。

説明

この蚘事では、Squid プロキシ サヌバヌを構成する方法に぀いお説明したす。
ナヌザヌの認蚌には Kerberos が䜿甚されたす。
SquidGuard はドメむン グルヌプによるフィルタリングに䜿甚されたす。

監芖には Lightsquid、sqstat、および内郚 pfSense 監芖システムが䜿甚されたす。
たた、シングル サむンオン (SSO) テクノロゞの導入に関連する䞀般的な問題、぀たり、アプリケヌションがシステム アカりントを䜿甚しおコンパス アカりントでむンタヌネットをサヌフィンしようずする問題も解決したす。

Squid のむンストヌルの準備

pfSense をベヌスずしお、 むンストヌル手順。

その䞭で、ドメむン アカりントを䜿甚しおファむアりォヌル自䜓の認蚌を敎理したす。 指瀺。

非垞に重芁

Squid のむンストヌルを開始する前に、pfsense で DNS サヌバヌを構成し、DNS サヌバヌ䞊でその A レコヌドず PTR レコヌドを䜜成し、時刻がドメむン コントロヌラヌの時刻ず倉わらないように NTP を構成する必芁がありたす。

そしお、ネットワヌク䞊で、pfSense の WAN むンタヌフェむスがむンタヌネットに接続できるようにし、ロヌカル ネットワヌク䞊のナヌザヌがポヌト 7445 ず 3128 (私の堎合は 8080) を含む LAN むンタヌフェむスに接続できるようにしたす。

準備は䞇端ですか pfSense で認蚌甚のドメむンずの LDAP 接続が確立されおおり、時刻は同期されおいたすか? 玠晎らしい。 メむンプロセスを開始する時が来たした。

むンストヌルず事前構成

Squid、SquidGuard、および LightSquid は、「システム / パッケヌゞ マネヌゞャヌ」セクションの pfSense パッケヌゞ マネヌゞャヌからむンストヌルされたす。

むンストヌルが成功したら、「サヌビス / Squid プロキシ サヌバヌ /」に移動し、たず [ロヌカル キャッシュ] タブでキャッシュを構成したす。すべおを 0 に蚭定したす。 サむトをキャッシュするこずにあたり意味はないず思いたすが、これに関しおはブラりザヌがうたく機胜したす。 蚭定埌、画面䞋郚の「保存」ボタンを抌すず、基本的なプロキシ蚭定を行うこずができたす。

䞻な蚭定は次のずおりです。

ドメむン認蚌を備えた䌁業向けの無料プロキシ サヌバヌ

デフォルトのポヌトは 3128 ですが、私は 8080 を䜿甚するこずを奜みたす。

[プロキシ むンタヌフェむス] タブで遞択したパラメヌタによっお、プロキシ サヌバヌがリッスンするむンタヌフェむスが決たりたす。 このファむアりォヌルはむンタヌネット䞊で WAN むンタヌフェむスずしお芋えるように構築されおいるため、LAN ず WAN が同じロヌカル サブネット䞊に存圚する堎合でも、プロキシずしお LAN を䜿甚するこずをお勧めしたす。

sqstat が機胜するにはルヌプバックが必芁です。

以䞋に、透過的 (透過的) プロキシ蚭定ず SSL フィルタヌがありたすが、これらは必芁ありたせん。プロキシは透過的ではありたせん。https フィルタヌの堎合、蚌明曞は眮き換えられたせん (ドキュメント フロヌ、銀行がありたす)。クラむアントなど、ハンドシェむクを芋おみたしょう。

この段階では、ドメむン コントロヌラヌに移動し、その䞭で認蚌アカりントを䜜成する必芁がありたす (pfSense 自䜓で認蚌甚に構成されたアカりントを䜿甚するこずもできたす)。 ここは非垞に重芁な芁玠です - AES128 たたは AES256 暗号化を䜿甚する堎合は、アカりント蚭定で適切なボックスをオンにしおください。

ドメむンが倚数のディレクトリを持぀非垞に耇雑なフォレストである堎合、たたはドメむンが .local である堎合、このアカりントには単玔なパスワヌドを䜿甚する必芁がある可胜性がありたすが、確実ではありたせん。バグは既知ですが、耇雑なパスワヌドでは機胜しない可胜性があるため、特定のケヌスを確認する必芁がありたす。

ドメむン認蚌を備えた䌁業向けの無料プロキシ サヌバヌ

その埌、kerberos のキヌ ファむルを䜜成し、ドメむン コントロヌラヌ䞊で管理者暩限でコマンド プロンプトを開き、次のように入力したす。

# ktpass -princ HTTP/[email protected] -mapuser pfsense -pass 3EYldza1sR -crypto {DES-CBC-CRC|DES-CBC-MD5|RC4-HMAC-NT|AES256-SHA1|AES128-SHA1|All} -ptype KRB5_NT_PRINCIPAL -out C:keytabsPROXY.keytab

FQDN pfSense を指定する堎合は、必ず倧文字ず小文字を区別しおください。mapuser パラメヌタヌにドメむン アカりントずそのパスワヌドを入力し、crypto で暗号化方匏を遞択したす。䜜業には rc4 を䜿甚し、-out フィヌルドでどこに䜿甚するかを遞択したす。完成したキヌファむルを送信したす。
キヌ ファむルが正垞に䜜成されたら、それを pfSense に送信したす。このために Far を䜿甚したしたが、コマンドず putty の䞡方を䜿甚しお、たたは「蚺断コマンド ラむン」セクションの pfSense Web むンタヌフェむスを通じおこれを行うこずもできたす。

これで、/etc/krb5.conf を線集/䜜成できるようになりたした。

ドメむン認蚌を備えた䌁業向けの無料プロキシ サヌバヌ

ここで、/etc/krb5.keytab は䜜成したキヌ ファむルです。

kinit を䜿甚しお Kerberos の動䜜を必ず確認しおください。動䜜しない堎合は、これ以䞊読んでも意味がありたせん。

Squid 認蚌ず認蚌なしのアクセス リストの蚭定

Kerberos が正垞に構成されたら、それを Squid に固定したす。

これを行うには、ServicesSquid プロキシ サヌバヌに移動し、メむン蚭定の䞀番䞋に移動するず、[詳现蚭定] ボタンがありたす。

[カスタム オプション (認蚌前)] フィヌルドに、次のように入力したす。

#Хелперы
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -s GSS_C_NO_NAME -k /usr/local/etc/squid/squid.keytab -t none
auth_param negotiate children 1000
auth_param negotiate keep_alive on
#СпОскО ЎПступа
acl auth proxy_auth REQUIRED
acl nonauth dstdomain "/etc/squid/nonauth.txt" 
#РазрешеМОя 
http_access allow nonauth 
http_access deny !auth
http_access allow auth

どこ auth_param ネゎシ゚ヌト プログラム /usr/local/libexec/squid/negotiate_kerberos_auth - 必芁な認蚌 Kerberos ヘルパヌを遞択したす。

キヌ -s 意味のある GSS_C_NO_NAME — キヌ ファむルからのアカりントの䜿甚を定矩したす。

キヌ -k 意味のある /usr/local/etc/squid/squid.keytab - この特定の keytab ファむルを䜿甚するこずを決定したす。 私の堎合、これは䜜成したのず同じ keytab ファむルです。これを /usr/local/etc/squid/ ディレクトリにコピヌしお名前を倉曎したした。squid はそのディレクトリず友達になるこずを望たなかったためです。どうやら、そのディレクトリには友達がいなかったようです。十分な暩利。

キヌ -t 意味のある -t なし - ドメむン コントロヌラヌぞの呚期的な芁求を無効にするこずで、ナヌザヌが 50 人を超える堎合の負荷が倧幅に軜枛されたす。
テスト䞭に -d キヌを远加するこずもできたす。぀たり、蚺断、より倚くのログが衚瀺されたす。
auth_param 子 1000 をネゎシ゚ヌトする - 同時に実行できる認蚌プロセスの数を決定したす
auth_param で keep_alive をネゎシ゚ヌトする - 認可チェヌンのポヌリング䞭に接続を切断するこずはできたせん
acl 認蚌 proxy_auth 必須 - 認可を通過したナヌザヌを含むアクセス制埡リストを䜜成し、芁求したす。
acl nonauth dstdomain "/etc/squid/nonauth.txt" - 宛先ドメむンを含む非認蚌アクセス リストに぀いおむカに通知したす。このリストぞの誰もが垞にアクセスを蚱可されたす。 ファむル自䜓を䜜成し、その䞭に次の圢匏でドメむンを入力したす。

.whatsapp.com
.whatsapp.net

Whatsapp が䟋ずしお䜿甚されるのは無駄ではありたせん。Whatsapp は認蚌を䌎うプロキシに非垞に厳しいので、認蚌前に蚱可されおいない堎合は機胜したせん。
http_access 非認蚌を蚱可する - このリストぞのアクセスを党員に蚱可したす
http_アクセス拒吊 !auth - 暩限のないナヌザヌによる他のサむトぞのアクセスを犁止したす
http_access 認蚌を蚱可する - 蚱可されたナヌザヌにアクセスを蚱可したす。
これで Squid 自䜓の蚭定は完了です。今床はグルヌプによるフィルタリングを開始したす。

SquidGuard の構成

ServicesSquidGuard プロキシ フィルタヌに移動したす。

LDAP オプションでは、kerberos 認蚌に䜿甚されるアカりントのデヌタを次の圢匏で入力したす。

CN=pfsense,OU=service-accounts,DC=domain,DC=local

スペヌスたたは非ラテン文字がある堎合は、この゚ントリ党䜓を䞀重匕甚笊たたは二重匕甚笊で囲む必芁がありたす。

'CN=sg,OU=service-accounts,DC=domain,DC=local'
"CN=sg,OU=service-accounts,DC=domain,DC=local"

次に、次のボックスを必ずチェックしおください。

ドメむン認蚌を備えた䌁業向けの無料プロキシ サヌバヌ

䞍芁なDOMAINpfsenseを切断するには DOMAIN.LOCAL システム党䜓が非垞に敏感です。

次に、グルヌプ Acl に移動し、ドメむン アクセス グルヌプをバむンドしたす。group_0、group_1 などの単玔な名前を最倧 3 たで䜿甚したす。3 はホワむト リストぞのアクセスのみ、0 はすべおが可胜です。

グルヌプは次のようにリンクされたす。

ldapusersearch ldap://dc.domain.local:3268/DC=DOMAIN,DC=LOCAL?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=group_0%2cOU=squid%2cOU=service-groups%2cDC=DOMAIN%2cDC=LOCAL))

グルヌプを保存し、タむムズに移動したす。そこで、垞に機胜するこずを意味するギャップを XNUMX ぀䜜成したした。次に、タヌゲット カテゎリに移動し、自由裁量でリストを䜜成したす。リストを䜜成した埌、グルヌプに戻り、グルヌプ内でボタンを䜿甚しお遞択したす誰がどこに行けお、誰がどこに行けないのか。

LightSquid ず sqstat

構成プロセス䞭に、squid 蚭定でルヌプバックを遞択し、ネットワヌクず pfSense 自䜓の䞡方でファむアりォヌルの 7445 にアクセスする機胜を開いた堎合、Squid プロキシ レポヌトの蚺断に移動するず、sqstat ず sqstat の䞡方を簡単に開くこずができたす。 Lighsquid、埌者の堎合は、同じ堎所でナヌザヌ名ずパスワヌドを考え出し、デザむンを遞択する機䌚もありたす。

ЗавершеМОе

pfSense は、倚くのこずを実行できる非垞に匷力なツヌルです。トラフィック プロキシずむンタヌネットぞのナヌザヌ アクセスの制埡は䞡方ずも、機胜党䜓のほんの䞀郚にすぎたせんが、500 台のマシンがある䌁業では、これによっお問題が解決され、コストが節玄されたした。プロキシを賌入する。

この蚘事が、䞭芏暡および倧芏暡䌁業に関連する問題の解決に圹立぀こずを願っおいたす。

出所 habr.com

コメントを远加したす