CentOS 6.x 64およびWin2008ADからの認証付きのSquid

Win2008ADからの許可 、グループ配布、 MACアドレスへのバインド、ファイル拡張子および禁止サイトのフィルターを使用して、 SquidCentOS 6.x 64にインストールします。

Win2008AD自体のインストールについては説明しません。 コントローラーが既にインストールおよび構成されていることを意味します。 最初のタスクは、将来特定の権限を持つユーザーの分布のためのグループ構造を作成することです。

私たちはsquidユーザーを作成します。彼は、パスワードとグループ所属のユーザーのリストを受け取る責任があります。 これらの機会に彼の代表団を割り当てます。

ドメインのルートを右クリックし、[ 制御の委任]を選択します。 セットアップウィザードが表示されます。 次へをクリックします。 追加をクリックします。 ドメインからの読み取り権限を持つsquidユーザーを作成しています。 OKをクリックします。 ユーザーが追加されました。 次へをクリックします。 すべてのユーザー に関する情報の読み取りとintOrgPersonのすべての情報の読み取りをオンにします。 次へをクリックします。 完了をクリックします。

ドメインツリーのルートにプロキシ ユニットを作成します。 ドメインのルートを右クリックして、[ 作成]を選択し、[ 部門]を選択します 。 名前プロキシを記述します。 OKをクリックします。 名前プロキシを持ついわゆる組織単位がドメインのルートに表示されます。

この部門では、ユーザーを配布してSquidを介して異なるアクセス権を受け取るためのグループ構造を作成します。 admins-proxyおよびusers-proxyグループを作成します。

プロキシを右クリックして、[ 作成 ]を選択し、[ グループ ]を選択しますadmins-proxyグループの名前を書きます。 OKをクリックします。 users-proxyグループに対して繰り返します

最初のグループにはフルアクセスがあり、2番目のグループには制限があります。 既存のユーザーを各グループに追加します。 ユーザーpadminsをadmins -proxy グループに、ユーザーpusersを以前に作成したとし、 ユーザープロキシグループに追加します。 グループの名前をダブルクリックします。 [ グループのメンバー ]タブを選択します。 追加をクリックします。 適切なユーザーを作成しています。 OKをクリックします。 他のユーザーとグループに対して繰り返します。

Squidパッケージをインストールします。

yum install squid

インストールが成功したら、 squidの自動実行を規定します。

上のchkconfig squid

LDAPに基づくsquidの 認証を使用します 。 これを行うには、まずSquidに組み込まれているWin2008AD LDAPメカニズムとの接続を確認する必要があります

ドメインからのログインpadminsとパスワードVzRGI5xSユーザーの束を確認します。

私たちは実施します:

echo "padmins VzRGI5xS" | / usr / lib64 / squid / squid_ldap_auth -R -D squid@developer.com -w 3zdjK2H9 -b "dc = developer、dc = com" -f "sAMAccountName =%s" -h 192.168.151.2

padmins#/ドメインユーザー/
VzRGI5xS#/ドメイン内のユーザーpadminsのパスワード/
squid@developer.com#/パスワードのユーザーのリストとそれらに関するすべてのデータを表示する権限を持つドメインユーザー/
3zdjK2H9#/委任されたユーザーパスワードsquid /
dc =開発者、dc = com#/ドメインコントローラー/
192.168.151.2#/ドメインIPアドレス/


したがって、これが正しく行われると、 OK応答が返されます。 これは、ユーザーpadminsがドメイン内で見つかり、 VzRGI5xSパスワードに対して検証されることを意味します。 一致するものがない場合、 エラーERR Successが返されます。

次に、ユーザーが属するドメインからのpadminsログインとadmins -proxyグループ接続を確認します。

私たちは実施します:

echo "padmins admins-proxy" | / usr / lib64 / squid / squid_ldap_group -R -D squid@developer.com -w 3zdjK2H9 -b "dc = developer、dc = com" -f "(&(objectclass = person)(sAMAccountName =%v)(memberof = cn =%a、ou =プロキシ、dc =開発者、dc = com)) "-h 192.168.151.2

したがって、これが正しく行われると、 OK応答が返されます。 これは、ユーザーpadminsがドメインのadmins -proxyグループにあることを意味します。 一致するものがない場合、 エラーERR Successが返されます。

Squidを設定するために撮影されました。

ディレクトリ/ etc / squid / rulesを作成します

mkdir / etc / squid /ルール

/ etc / squid / rulesディレクトリで、ルール用のファイルを作成します。

touch block-extension.txt

inet-mac.txtをタッチします

url-block.txtをタッチします

block-extension.txtファイルの内容(ファイル拡張子フィルター):

\ .exe $
\ .mp3 $
\ .mpg $
\ .mp4 $
\ .mpeg $
\ .flv $
\ .avi $
\ .wmv $
\ .swf $
\ .mov $
\ .mkv $
\ .wav $
\ .rar $
\ .msi $
\ .zip $
\ .tar $
\ .iso $
\ .nrg $


inet-mac.txtファイルの内容( MACアドレスフィルタが許可されています):

04:00:27:3a:45:13
10:6e:87:c4:8c
00:1f:d0:b5:c4:65


url-block.txtファイルの内容(URLフィルター):

odnoklassniki \ .ru
vk \ .com
facebook \ .com

/etc/squid/squid.conf構成ファイルを編集用に開き、 の形式にします。

squid.conf
######################################################### #################################

#通常、Squidはポート3128をリッスンします
http_port 3128

visible_hostname router-int.developer.com


#推奨される最小構成:

ACLマネージャープロトタイプcache_object
acl localhost src 127.0.0.1/32 :: 1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 :: 1

#ローカルネットワークからのアクセスを許可するルールの例。
#ブラウジング元の(内部)IPネットワークのリストに適応
#許可する必要があります
acl localnet src 10.0.0.0/8#RFC1918可能な内部ネットワーク
acl localnet src 172.16.0.0/12#RFC1918可能な内部ネットワーク
acl localnet src 192.168.0.0/16#RFC1918可能な内部ネットワーク
acl localnet src fc00 :: / 7#RFC 4193ローカルプライベートネットワーク範囲
acl localnet src fe80 :: / 10#RFC 4291リンクローカル(直接プラグイン)マシン

acl SSL_portsポート443
acl Safe_portsポート80#http
acl Safe_portsポート21#ftp
acl Safe_portsポート443#https
acl Safe_ports port 70#gopher
acl Safe_portsポート210#wais
acl Safe_ports port 1025-65535#未登録ポート
acl Safe_portsポート280#http-mgmt
acl Safe_portsポート488#gss-http
acl Safe_portsポート591#ファイルメーカー
acl Safe_ports port 777#multiling http
acl CONNECTメソッドCONNECT


#推奨される最小アクセス許可の構成:

#localhostからのcachemgrアクセス​​のみを許可
http_access allow manager localhost
http_access拒否マネージャー

#特定の安全でないポートへのリクエストを拒否
http_access deny!Safe_ports

#セキュアSSLポート以外への接続を拒否
http_access deny CONNECT!SSL_ports

#無実を保護するために、以下のコメントを外すことを強くお勧めします
#プロキシサーバーで実行されているWebアプリケーションは、
#「localhost」上のサービスにアクセスできるのはローカルユーザー
#http_access de_to_localhost


#クライアントからのアクセスを許可するために、ここに独自のルールを挿入します


######################################################### #################################
### AD2008R2に接続するためのADコマンド###
######################################################### #################################
auth_param基本プログラム/ usr / lib64 / squid / squid_ldap_auth -R -D squid@developer.com -w 3zdjK2H9 -b "dc = developer、dc = com" -f "sAMAccountName =%s" -h 192.168.151.2
auth_param基本子5
auth_param基本レルムWindows資格情報を挿入してナビゲートしてください
auth_param基本資格情報ttl 1時間
######################################################### #################################

######################################################### #################################
### AD2008R2グループに接続するためのADコマンド###
######################################################### #################################
external_acl_type ldap_group%LOGIN / usr / lib64 / squid / squid_ldap_group -R -D squid@developer.com -w 3zdjK2H9 -b "dc = developer、dc = com" -f "(&(objectclass = person)(sAMAccountName =%v )(memberof = cn =%a、ou = proxy、dc = developer、dc = com)) "-h 192.168.151.2
######################################################### #################################

######################################################### #################################
### AD2008R2からのグループによるリストへのアクセスとロック###
######################################################### #################################

#(AD2008R2にあるadmins-proxyグループのユーザーのアクセスシート)
acl admins-proxy external ldap_group admins-proxy

#(AD2008R2にあるユーザープロキシグループのユーザーアクセスシート)
acl users-proxy external ldap_group users-proxy

#(MACアドレス別ユーザーアクセスシート)
acl inet-mac arp "/etc/squid/rules/inet-mac.txt"

#(URLブロックリスト)
acl url-block url_regex "/etc/squid/rules/url-block.txt"

#(ファイル拡張子リストによるブロックリスト)
acl block-extension url_regex -i "/etc/squid/rules/block-extension.txt"

#(ブロッキングストリームストリーム)
acl media rep_mime_type -i ^オーディオ/.*$
acl media rep_mime_type -i ^ video /.*$
acl media rep_mime_type -i ^ video / x-flv $
acl media rep_mime_type -i ^ application / x-shockwave-flash $
acl media rep_mime_type -i ^ application / octet-stream $

#(macsアドレスにバインドするadmins-proxyグループのすべてを許可します)
http_access allow admins-proxy inet-mac
#(users-proxyグループのURLブロックリストを無効にする)
http_access deny users-proxy url-block

#(ブロック拡張子リストをusers-proxyグループに禁止)
http_access deny users-proxy block-extension

#(ユーザープロキシグループのメディアリストを無効にする)
http_reply_accessは、ユーザープロキシメディアを拒否します

#(すべてのユーザープロキシグループを許可)
http_access allow users-proxy

######################################################### #################################

#そして最後に、このプロキシへの他のすべてのアクセスを拒否します
http_accessすべて拒否

#少なくとも次の行を使用することをお勧めします。
hierarchy_stoplist cgi-bin?

#次のコメントを外して調整し、ディスクキャッシュディレクトリを追加します。
#cache_dir ufs / var / spool / squid 100 16 256

#最初のキャッシュディレクトリにコアダンプを残す
coredump_dir / var / spool / squid

#これらの上に独自のrefresh_patternエントリを追加します。
refresh_pattern ^ ftp:1440 20%10080
refresh_pattern ^ gopher:1440 0%1440
refresh_pattern -i(/ cgi-bin / | \?)0 0%0
refresh_pattern。 0 20%4320

######################################################### #################################

指定された設定は100%動作しています。

イカの起動:

サービスイカスタート

どのように機能しますか?

ブラウザの設定 、プロキシサーバーのアドレスとポート3128を指定します。 サイトページに移動し、ユーザー名とパスワードを入力するための招待状を受け取ります。

ユーザーpadminsがパスワードを正しく入力した場合、 squidはそれを渡し、指定されたグループのルールが適用されます。 configから、 admins-proxyグループに制限がないことがわかります。 リストからのMACアドレスへのバインドのみがあります。

ユーザーpusersがパスワードを正しく入力した場合、 squidはそれをスキップし、指定されたグループのルールが適用されます。 設定から、 users-proxyグループがurl-block (ブロッキングURLのリスト)、 block-extension (ブロッキング拡張のリスト)、およびmedia (ブロッキングストリームストリームのリスト)フィルターを使用していることがわかります。

また、ポートが閉じている場合は、ポートを開くことを忘れないでください。

iptables -A INPUT -p tcp -m state -m tcp -s 192.168.0.0/16 --dport 3128 --state NEW -j ACCEPT

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


All Articles