内容
- 1はじめに
- 2オペレーティングシステムの設定とSquidのインストール
- 2.1 Squidビルドオプション
- 2.2公式リポジトリからパッケージをインストールする
- 2.3 Squidおよびオプションパッケージの手動インストール
- 2.4 squidのスワップディレクトリにアクセス許可を設定する
- 2.5 squid構成ファイル
- 2.6 / etc / hostsファイルの構成
- 2.7 selinuxの構成
- 2.8スワップ生成
- 2.9 squidデーモンの有効化、設定ファイルの確認
- 2.10トラフィック転送
- 3 Active Directory 2012R2ドメインコントローラーとの統合
- 3.1 Kerberos構成
- 3.2 DNSレコードの作成
- 3.3ドメイン統合オプション
- 3.3.1 Windows統合
- 3.3.2 Linuxの統合
- 3.4 krb5.keytabファイルの推奨される許可
- 3.5インターネットアクセス規制のためのActive Directoryのグループ
- 3.6 krb5.keytabファイルを使用したActive Directoryでの承認の確認
- 4 WPAD
- 5トラフィック統計
- 6グループポリシー
1.1簡略化されたWPADスキーム
-Windows OS上のクライアントは、ホストwpad.example.ruへのリクエストでDNSサーバーに接続し、DNSサーバー名に対応するレコードは、どこへ行くかを示します。 次に、クライアントは、設定ファイルの要求でwpad.example.ruに連絡します。 それを受け取ると、それはその中の指示に従って行動し始めます。
1.2この技術の良いところ
長所:
-すべてのGPOを介してプロキシアドレスを登録する必要はありません。
-従業員のモビリティ(オフィス外のインターネットへのアクセス)
-このテクノロジーの使用をオフにするには、[インターネットオプション]-[設定を自動的に取得する]でオフにします。
短所:
-「設定の自動取得」はすべてのユーザーに対して無効にできるため、この機能はオンのままにしておくとGPOを介した変更を防ぐことができます
1.3 Squid Peek-n-splice-仕組み
従業員がプロキシ経由でhttpsでサイトにアクセスしようとしています。 暗号化された接続をインストールすると、「あいさつ」が発生します。これは明確な形式で送信され、プロキシサーバーはそれを傍受し、設定に基づいて、squidは接続を許可または拒否します。 つまり 「挨拶」を見るためにインターセプトされ、接続を許可またはドロップしました。
1.4ピークアンドスプライスの長所と短所
長所:
-これはMITM攻撃ではなく、銀行のクライアントには問題ありません
-https経由でリクエストされたサイトの統計でのドメイン名の表示
短所:
-残念ながら、MITM攻撃中にどのWebページが開かれたかを正確に確認することは不可能です
-この設定はCentOSでのみうまく機能しました(しばらくの間カーネルパニックが発生した後、Debianで問題が発生しました)
1.5そして、今、与えられたものに注目する価値があります
-Active Directory 2012R2(ユーザー認証方法-Kerberos)10.0.0.9のホスト
-CentOS 7(x64)のホスト(別名wpad.datアップロード用のWebサーバー、別名プロキシサーバー)10.0.0.10
-Windowsでホストをテストして、操作10.0.0.11をテストします
「行こう」ガガーリン・ユ・ア
2オペレーティングシステムの設定とSquidのインストール
CentOSのインストールプロセスを説明する意味はありません。 したがって、CentOS 7 x64を新たにインストールしたことに留意してください。 したがって、Squidがhttpトラフィックとhttpsトラフィックで同等に機能するには、次のものが必要です。
2.1このようなパラメーターを使用してSquidをコンパイルする必要があります
イカ-v
$ squid -v
Squid Cache:バージョン3.5.16
サービス名:squid
設定オプション: '--build = x86_64-redhat-linux-gnu' '--host = x86_64-redhat-linux-gnu' '--program-prefix =' '--prefix = / usr' '--exec- prefix = / usr '' --bindir = / usr / bin '' --sbindir = / usr / sbin '' --sysconfdir = / etc '' --datadir = / usr / share '' --includedir = / usr / include '' --libdir = / usr / lib64 '' --libexecdir = / usr / libexec '' --sharedstatedir = / var / lib '' --mandir = / usr / share / man '' --infodir = / usr / share / info '' --verbose '' --exec_prefix = / usr '' --libexecdir = / usr / lib64 / squid '' --localstatedir = / var '' --datadir = / usr / share / squid '' --sysconfdir = / etc / squid '' --with-logdir = $(localstatedir)/ log / squid '' --with-pidfile = $(localstatedir)/run/squid.pid '' --disable -dependency-tracking '' --enable-follow-x-forwarded-for '' --enable-auth '' --enable-auth-basic = DB、LDAP、NCSA、NIS、PAM、POP3、RADIUS、SASL、 SMB、getpwnam、fake '' --enable-auth-ntlm = smb_lm、fake '' --enable-auth-digest = file、LDAP、eDirectory '' --enable-auth-negotiate = kerberos、wrapper ''- enable-external-acl-helpers = wbinfo_group、kerberos_ldap_group、LDAP_group、delayer、file_userip、SQL _session、unix_group、session、time_quota '' --enable-cache-digests '' --enable-cachemgr-hostname = localhost '' --enable-delay-pools '' --enable-epoll '' --enable-icap -client '' --enable-ident-lookups '' --enable-linux-netfilter '' --enable-removal-policies = heap、lru '' --enable-snmp '' --enable-storeio = aufs、 diskd、ufs、rock '' --enable-wccpv2 '' --enable-esi '' --enable-ssl-crtd '' --enable-icmp '' --with-aio '' --with-default- user = squid '' --with-filedescriptors = 16384 '' --with-dl '' --with-openssl '' --with-pthreads '' --with-included-ltdl '' --disable-arch-ネイティブ '' --enable-ecap '' --without-nettle '' build_alias = x86_64-redhat-linux-gnu '' host_alias = x86_64-redhat-linux-gnu '' CFLAGS = -O2 -g -pipe -Wall- Wp、-D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector-strong --param = ssp-buffer-size = 4 -grecord-gcc-switches -m64 -mtune = generic '' LDFLAGS = -Wl、-z、relro '' CXXFLAGS = -O2 -g -pipe -Wall -Wp、-D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector-strong --param = ssp-buffer-size = 4 -grecord-gcc-switches -m64 -mtune = generic -fP IC '' PKG_CONFIG_PATH =:/ usr / lib64 / pkgconfig:/ usr / share / pkgconfig '—enable-ltdl-convenience
Squid Cache:バージョン3.5.16
サービス名:squid
設定オプション: '--build = x86_64-redhat-linux-gnu' '--host = x86_64-redhat-linux-gnu' '--program-prefix =' '--prefix = / usr' '--exec- prefix = / usr '' --bindir = / usr / bin '' --sbindir = / usr / sbin '' --sysconfdir = / etc '' --datadir = / usr / share '' --includedir = / usr / include '' --libdir = / usr / lib64 '' --libexecdir = / usr / libexec '' --sharedstatedir = / var / lib '' --mandir = / usr / share / man '' --infodir = / usr / share / info '' --verbose '' --exec_prefix = / usr '' --libexecdir = / usr / lib64 / squid '' --localstatedir = / var '' --datadir = / usr / share / squid '' --sysconfdir = / etc / squid '' --with-logdir = $(localstatedir)/ log / squid '' --with-pidfile = $(localstatedir)/run/squid.pid '' --disable -dependency-tracking '' --enable-follow-x-forwarded-for '' --enable-auth '' --enable-auth-basic = DB、LDAP、NCSA、NIS、PAM、POP3、RADIUS、SASL、 SMB、getpwnam、fake '' --enable-auth-ntlm = smb_lm、fake '' --enable-auth-digest = file、LDAP、eDirectory '' --enable-auth-negotiate = kerberos、wrapper ''- enable-external-acl-helpers = wbinfo_group、kerberos_ldap_group、LDAP_group、delayer、file_userip、SQL _session、unix_group、session、time_quota '' --enable-cache-digests '' --enable-cachemgr-hostname = localhost '' --enable-delay-pools '' --enable-epoll '' --enable-icap -client '' --enable-ident-lookups '' --enable-linux-netfilter '' --enable-removal-policies = heap、lru '' --enable-snmp '' --enable-storeio = aufs、 diskd、ufs、rock '' --enable-wccpv2 '' --enable-esi '' --enable-ssl-crtd '' --enable-icmp '' --with-aio '' --with-default- user = squid '' --with-filedescriptors = 16384 '' --with-dl '' --with-openssl '' --with-pthreads '' --with-included-ltdl '' --disable-arch-ネイティブ '' --enable-ecap '' --without-nettle '' build_alias = x86_64-redhat-linux-gnu '' host_alias = x86_64-redhat-linux-gnu '' CFLAGS = -O2 -g -pipe -Wall- Wp、-D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector-strong --param = ssp-buffer-size = 4 -grecord-gcc-switches -m64 -mtune = generic '' LDFLAGS = -Wl、-z、relro '' CXXFLAGS = -O2 -g -pipe -Wall -Wp、-D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector-strong --param = ssp-buffer-size = 4 -grecord-gcc-switches -m64 -mtune = generic -fP IC '' PKG_CONFIG_PATH =:/ usr / lib64 / pkgconfig:/ usr / share / pkgconfig '—enable-ltdl-convenience
または、アセンブルされたsquidとその依存関係を含むアーカイブをダウンロードできます。
2.2公式リポジトリから必要なパッケージをインストールする
squidをインストールするにはいくつかの依存関係が必要であることに注意してください。 残念ながら、CentOSの公式リポジトリはかなり少ないため、一部のパッケージは非公式のものからダウンロードする必要があります。 リポジトリから必要なパッケージをインストールします。
# yum install -y libtool-ltdl perl-DBI perl-Digest-MD5 cyrus-sasl-gssapi krb5-workstation
2.3 Squidおよびオプションパッケージの手動インストール
# rmp -Uvh squid-3.5.8-4.el7.centos.x86_64.rpm libecap-1.0.0-3.el7.centos.x86_64.rpm squid-helpers-3.5.8-4.el7.centos.x86_64.rpm perl-Crypt-OpenSSL-X509-1.803-4.el7.x86_64.rpm
何かが間違っている場合、不足しているものが端末に表示されます。
2.4スワップディレクトリのパーミッションを設定する
# chown squid:squid /var/spool/squid
2.5構成ファイル/etc/squid/squid.conf
squid.conf
###ケルベロスの交渉
auth_paramネゴシエートプログラム/ usr / lib64 / squid / negotiate_kerberos_auth -s HTTP/sq.example.ru@EXAMPLE.RU
auth_paramは子60をネゴシエートします
auth_paramネゴシエートkeep_aliveオフ
external_acl_type inet_medium ttl = 300 negative_ttl = 60%LOGIN / usr / lib64 / squid / ext_kerberos_ldap_group_acl -g Internet-medium@EXAMPLE.RU
external_acl_type inet_full ttl = 300 negative_ttl = 60%LOGIN / usr / lib64 / squid / ext_kerberos_ldap_group_acl -g Internet-full@EXAMPLE.RU
external_acl_type inet_low ttl = 300 negative_ttl = 60%LOGIN / usr / lib64 / squid / ext_kerberos_ldap_group_acl -g Internet-low@EXAMPLE.RU
acl localnet src 10.0.0.0/24
acl localnet src 192.168.0.0/24
acl my_full外部inet_full
acl my_medium外部inet_medium
acl my_low外部inet_low
acl auth proxy_auth必須
#デフォルトの443に加えて、オンラインビジネスでは追加が必要です。 ポート9443
acl SSL_portsポート443 9443
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
#この構成では、ホワイトリストはユーザーグループInternet-low@EXAMPLE.RUの許可されたサイトのリストです(whitelist.txtにあるサイトのみにアクセスできます)
#また、blocked_http.txt-Internet-medium@EXAMPLE.RUグループの禁止サイトのリスト(blocked_http.txt内のサイトを除くすべてのサイトにアクセスできます)
acl white_list dstdomain "/etc/squid/whitelist.txt"
acl black_list dstdomain "/etc/squid/blocked_http.txt"
dns_nameservers 10.0.0.9
#アクセス規則
http_access deny!Safe_ports
http_access deny CONNECT!SSL_ports
http_access allow localhost manager
http_access拒否マネージャー
http_access deny!auth
http_access deny my_medium black_list
http_access allow my_medium
http_access allow my_low white_list
http_access deny my_low all
http_access allow my_full
#ローカルホストを許可
http_access allow localhost
#他のすべてを禁止する
http_accessすべて拒否
#クライアントホストがプロキシサーバーと対話するための不透明なポート
http_port 10.0.0.10:3130 options = NO_SSLv3:NO_SSLv2
always_directすべて許可
sslproxy_cert_errorすべて許可
sslproxy_flags DONT_VERIFY_PEER
#このオプションは、peek-n-spliceが正しく機能するために必要です。 blocked_https.txtファイル自体は何にも影響しませんが、空にしないでください。 魔法。
#
ACLブロックssl :: server_name "/etc/squid/blocked_https.txt"
acl step1 at_step sslbump1
ssl_bumpピークステップ1
#クライアントが禁止されたリソースにアクセスした場合、接続を終了します
ssl_bump終了ブロック
ssl_bump splice all
coredump_dir / var / spool / squid
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
cache_dir aufs / var / spool / squid 20000 49 256
maximum_object_size 61440 KB
minimum_object_size 3 KB
#httpd_suppress_version_string on
#visible_hostname PROXYSERVER
cache_swap_low 90
cache_swap_high 95
maximum_object_size_in_memory 512 KB
memory_replacement_policy lru
logfile_rotate 4
auth_paramネゴシエートプログラム/ usr / lib64 / squid / negotiate_kerberos_auth -s HTTP/sq.example.ru@EXAMPLE.RU
auth_paramは子60をネゴシエートします
auth_paramネゴシエートkeep_aliveオフ
external_acl_type inet_medium ttl = 300 negative_ttl = 60%LOGIN / usr / lib64 / squid / ext_kerberos_ldap_group_acl -g Internet-medium@EXAMPLE.RU
external_acl_type inet_full ttl = 300 negative_ttl = 60%LOGIN / usr / lib64 / squid / ext_kerberos_ldap_group_acl -g Internet-full@EXAMPLE.RU
external_acl_type inet_low ttl = 300 negative_ttl = 60%LOGIN / usr / lib64 / squid / ext_kerberos_ldap_group_acl -g Internet-low@EXAMPLE.RU
acl localnet src 10.0.0.0/24
acl localnet src 192.168.0.0/24
acl my_full外部inet_full
acl my_medium外部inet_medium
acl my_low外部inet_low
acl auth proxy_auth必須
#デフォルトの443に加えて、オンラインビジネスでは追加が必要です。 ポート9443
acl SSL_portsポート443 9443
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
#この構成では、ホワイトリストはユーザーグループInternet-low@EXAMPLE.RUの許可されたサイトのリストです(whitelist.txtにあるサイトのみにアクセスできます)
#また、blocked_http.txt-Internet-medium@EXAMPLE.RUグループの禁止サイトのリスト(blocked_http.txt内のサイトを除くすべてのサイトにアクセスできます)
acl white_list dstdomain "/etc/squid/whitelist.txt"
acl black_list dstdomain "/etc/squid/blocked_http.txt"
dns_nameservers 10.0.0.9
#アクセス規則
http_access deny!Safe_ports
http_access deny CONNECT!SSL_ports
http_access allow localhost manager
http_access拒否マネージャー
http_access deny!auth
http_access deny my_medium black_list
http_access allow my_medium
http_access allow my_low white_list
http_access deny my_low all
http_access allow my_full
#ローカルホストを許可
http_access allow localhost
#他のすべてを禁止する
http_accessすべて拒否
#クライアントホストがプロキシサーバーと対話するための不透明なポート
http_port 10.0.0.10:3130 options = NO_SSLv3:NO_SSLv2
always_directすべて許可
sslproxy_cert_errorすべて許可
sslproxy_flags DONT_VERIFY_PEER
#このオプションは、peek-n-spliceが正しく機能するために必要です。 blocked_https.txtファイル自体は何にも影響しませんが、空にしないでください。 魔法。
#
ACLブロックssl :: server_name "/etc/squid/blocked_https.txt"
acl step1 at_step sslbump1
ssl_bumpピークステップ1
#クライアントが禁止されたリソースにアクセスした場合、接続を終了します
ssl_bump終了ブロック
ssl_bump splice all
coredump_dir / var / spool / squid
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
cache_dir aufs / var / spool / squid 20000 49 256
maximum_object_size 61440 KB
minimum_object_size 3 KB
#httpd_suppress_version_string on
#visible_hostname PROXYSERVER
cache_swap_low 90
cache_swap_high 95
maximum_object_size_in_memory 512 KB
memory_replacement_policy lru
logfile_rotate 4
2.6最初に、このコンテンツにファイル/ etc / hostsを持ってくる必要があります
127.0.0.1 localohost 10.0.0.10 sq.example.ru sq
2.7 selinuxの構成
ファイル/ etc / selinux / configの値は次のとおりです。
SELINUX=enforcing
selinuxを使用するためのパッケージをインストールします。
# yum install policycoreutils-python
selinuxルールを追加する
squidへの接続を許可します。
# setsebool -P squid_connect_any on
Kerberosを許可:
# setsebool -P allow_kerberos on
ポート3130でのsquidへの接続を許可します。
# semanage port -a -t squid_port_t -p tcp 3130
selinux設定を変更したら、システムを再起動してそれらを適用する必要があります。
# reboot
2.8スワップ生成
# squid -z
2.9 squidデーモンの有効化、設定ファイルの確認
# systemctl enable squid # squid -k parse
警告とエラーはありません。 何かがある場合は、設定を確認する必要があります。
2.10トラフィック転送を許可する
# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
その場で設定を適用します。
# sysctl -p
3 Active Directory 2012R2ドメインコントローラーとの統合
ドメインユーザーがKerberosプロトコルを使用してプロキシサーバーにログインできるように、ドメインコントローラーとの統合が必要です。 最も合理的な解決策は、この方法が最も安全であり、承認が自動的に行われるという事実を考慮して、Kerberosのみを残すことです。 ドメイン外にあるクライアントマシンについては、ここで問題はありません。認証ポップアップウィンドウでログインとパスワードを手動で入力できます。 チェック済み、動作します。
3.1構成ファイル/etc/krb5.conf
構成ファイル/etc/krb5.confは、次のように縮小する必要があります。
krb5.conf
[libdefaults]
default_realm = EXAMPLE.RU
ticket_lifetime = 24h
default_keytab_name = /etc/krb5.keytab
[レルム]
EXAMPLE.RU = {
kdc = dc1.example.ru
admin_server = dc1.example.ru
default_domain = example.ru
}
[domain_realm]
.example.ru = EXAMPLE.RU
example.ru = EXAMPLE.RU
default_realm = EXAMPLE.RU
ticket_lifetime = 24h
default_keytab_name = /etc/krb5.keytab
[レルム]
EXAMPLE.RU = {
kdc = dc1.example.ru
admin_server = dc1.example.ru
default_domain = example.ru
}
[domain_realm]
.example.ru = EXAMPLE.RU
example.ru = EXAMPLE.RU
3.2 DNSレコードの作成
Active DirectoryがDNSに密接に結びついていることは誰もが知っていることであり、認証が正しく機能するためには、ホスト名とそのIPアドレス(ホストアドレス(AまたはAAA))を作成する必要があります)
3.3ドメイン統合オプション
そのため、ドメイン統合オプション
3.3.1 Windows統合
ADでユーザーを作成します(例: squid)
ここでkrb5.keytabを生成します 。 管理者権限を持つドメインコントローラーのコマンドプロンプトで、次のコマンドを実行する必要があります。
C:\Windows\system32> ktpass -princ HTTP/sq.example.ru@EXAMPLE.RU -mapuser squid@EXAMPLE.RU -crypto rc4-hmac-nt -pass Pa$$wd12 -ptype KRB5_NT_PRINCIPAL -out C:\
krb5.keytab ファイル自体は、 sq.example.ru上の/ etcディレクトリに移動できます (WinSCPを使用できます)。
3.3.2 Linuxの統合
squidと依存関係のあるアーカイブには、msktutilも添付されています。インストールしてください:
# rpm -Uhv msktutil-0.5.1-2.el7.x86_64.rpm
次のコマンドを実行します。
# msktutil -c -b "CN=COMPUTERS" -s HTTP/sq.example.ru -k /etc/krb5.keytab --computer-name sq-k --upn HTTP/sq.example.ru --server dc1.example.ru --verbose --enctypes 28
成功した場合、コマンドの出力は素晴らしいものになります。ここにはポイントがありません。 エラーと警告はすべきではありません。 --computer-name sq-kはタイプミスではないことに注意する価値があります。 ホスト名は異なっている必要があります。
コンピューターアカウントのパスワードを更新する必要があるため、これはcronを使用して実行できます。
# crontab -e
タスクを追加する必要があります。
00 3 * * * msktutil --auto-update --verbose --computer-name sq-k
3.4 krb5.keytabファイルの推奨される許可
krb5.keytabを移動した後、ファイルのパーミッションを下げることをお勧めします
# chown squid:squid /etc/krb5.keytab && chmod 644 /etc/krb5.keytab
3.5 ADアクセスグループ
OU ユーザーの ActiveDirectoryでは、インターネットアクセスの配布に応じて、 Internet- full、 Internet-medium 、 Internet-lowの 3つのグループを作成する必要があります。
3.6認可チェック
/etc/krb5.keytabファイルを使用したActive Directoryでの承認の確認
# kinit -V -k -t /etc/krb5.keytab HTTP/sq.example.ru@EXAMPLE.RU
コマンドからの出力は次のようになります。
Using default cache: /tmp/krb5cc_0 Using principal: HTTP/sq.example.ru@EXAMPLE.RU Using keytab: /etc/krb5.keytab Authenticated to Kerberos v5
また、 klistは次を表示する必要があります。
klist
チケットキャッシュ:FILE:/ tmp / krb5cc_0
デフォルトのプリンシパル:HTTP/sq.example.ru@EXAMPLE.RU
有効な開始有効期限サービスプリンシパル
10/09/2016 10:19:20 10/10/2016 08:19:20 krbtgt/EXAMPLE.RU@EXAMPLE.RU
10/10/2016 10:19:20 PMまで更新
デフォルトのプリンシパル:HTTP/sq.example.ru@EXAMPLE.RU
有効な開始有効期限サービスプリンシパル
10/09/2016 10:19:20 10/10/2016 08:19:20 krbtgt/EXAMPLE.RU@EXAMPLE.RU
10/10/2016 10:19:20 PMまで更新
これでSquidのセットアップはほぼ完了しました。ホストを再起動して設定を適用します。 テストのためにリブートした後、ポート3130を指定することにより 、 sq.example.ru設定でプロキシを手動で登録できます。
4 WPAD
4.1 apache2 Webサーバーのインストールと設定
Webサーバーのインストール:
# yum install -y httpd
インストール後、スタートアップに含めます:
# systemctl enable httpd
以下を開始します。
# systemctl start httpd
ブラウザでsq.example.ruドメイン名を開こうとすると、apache2テストページが開きます。
次に、次の内容の/ var / www / html / wpad.datファイルを作成する必要があります。
wpad.dat
関数FindProxyForURL(URL、ホスト)
{
// var ip_host = dnsResolve(ホスト);
// var localnet = "192.168.0.0";
// var localhost = "127.0.0.0";
// var localnet = "10.0.0.0";
if(isInNet(host、 "192.168.0.0"、 "255.255.255.0")||
isInNet(ホスト、「10.0.0.0」、「255.255.255.0」)||
isInNet(ホスト、「127.0.0.0」、「255.0.0.0」)||
shExpMatch(ホスト、「* .example.ru」))
{「DIRECT」を返す; }
if(dnsDomainIs(host、 "* .inet-example.ru"))
{「DIRECT」を返す; }
return "PROXY sq.exmaple.ru:3130";
}
{
// var ip_host = dnsResolve(ホスト);
// var localnet = "192.168.0.0";
// var localhost = "127.0.0.0";
// var localnet = "10.0.0.0";
if(isInNet(host、 "192.168.0.0"、 "255.255.255.0")||
isInNet(ホスト、「10.0.0.0」、「255.255.255.0」)||
isInNet(ホスト、「127.0.0.0」、「255.0.0.0」)||
shExpMatch(ホスト、「* .example.ru」))
{「DIRECT」を返す; }
if(dnsDomainIs(host、 "* .inet-example.ru"))
{「DIRECT」を返す; }
return "PROXY sq.exmaple.ru:3130";
}
4.2 wpad.datファイルの説明
デフォルトでは、/ var / www / html / wpad.datディレクトリで、ファイルは追加のapache2設定なしで全員に与えられます。これは、Windows上のクライアントマシンとの正しい対話に必要です。
行
if (isInNet( host, "192.168.0.0", "255.255.255.0") || isInNet( host, "10.0.0.0", "255.255.255.0") ||
これは、192.168.0.0 / 24、10.0.0.0 / 24、および127.0.0.0/8サブネット(後者はlocalhostにアクセスするときにサービスが正しく機能するために必要です)上のホストへの呼び出しが直接転送され、.exampleドメインホストへの接続も直接転送されることを意味します.ru:
行:
if (dnsDomainIs( host, "*.inet-example.ru" )) { return "DIRECT"; }
ドメイン名にアクセスするときに.inet-example.ruが直接発生することを示します
要求されたリソースが上記の条件に該当しない場合、次のことが当てはまります。
return "PROXY sq.exmaple.ru:3130";
4.3 CNAMEの作成
Active Directory DNSサーバーで、 sq.example.ruに cname wpad (FQDN wpad.example.ru)を作成します。
確認するには、ブラウザでwpad / wpad.datを開く必要があり、wpad.datファイルが自動的にダウンロードされます。 したがって、すべてのホストは指定されたファイルをダウンロードし、コンテンツから続行します。 ファイルがダウンロードされるように、Windows OS上のドメイン内のすべてのコンピューターを再ログまたは再起動することをお勧めします。
5統計
5.1ソースからのSARGのインストール
gccがまだインストールされていない場合、今がその時です。
# yum install -y gcc gd gd-devel make wget # wget http://liquidtelecom.dl.sourceforge.net/project/sarg/sarg/sarg-2.3.10/sarg-2.3.10.tar.gz # tar -xvzf sarg-2.3.10.tar.gz # cd sarg-2.3.10 # ./configure # make
po / Makefile.in.inファイルでは、gettextバージョンは0.18に指定されているため、makeインストール中にエラーが発生しないため、0.19に変更する必要があります。
# make install
5.2 SARGの構成
標準の設定ファイル/usr/local/etc/sarg.confをバックアップすることをお勧めします。
# mv /usr/local/etc/sarg.conf /usr/local/etc/sarg.conf.default
次に、次の内容でsarg.confファイルを作成します。
access_log /var/log/squid/access.log output_dir /var/www/html/squid-reports date_format e overwrite_report yes language UTF-8
5.3 cronを使用したレポートのスケジュール
# crontab -e
次の行を追加します。
55 23 * * * /usr/local/bin/sarg -xd day-0
この行は、毎日23:55にレポートが生成されることを示しています
5.4 Webサーバーの構成
以前にインストールされたWebサーバーでは、レポートを表示するタスクと、承認のためのログインとパスワードの入力を要求するタスクを割り当てることもできます。 次の内容で/etc/httpd/conf.d/sarg.confファイルを作成します。
sarg.conf
エイリアス/レポート/ var / www / html / squid-reports /
<ディレクトリ/ var / www / html / squid-reports />
AuthType Basic
AuthName「基本認証」
AuthUserFile /etc/httpd/conf/.htpasswd
有効なユーザーが必要
AddDefaultCharset UTF-8
<ディレクトリ/ var / www / html / squid-reports />
AuthType Basic
AuthName「基本認証」
AuthUserFile /etc/httpd/conf/.htpasswd
有効なユーザーが必要
AddDefaultCharset UTF-8
5.5統計付きのサイトでの承認
認証のためのログインおよびパスワードファイルの生成
# htpasswd -c /etc/httpd/conf/.htpasswd administrator
apache2を再起動します 。
# systemctl restart httpd
sq.example.ru/reportsを開こうとすると、ログイン名とパスワードの入力を求められます。 認証が成功した場合、統計を表示できます。
6グループポリシー
ここのすべては曖昧であり、いくつかの機能に依存する場合があります。 現在のタスクでは、ユーザープロキシサーバーのインストール、または「設定の自動検出」の無効化の可能性を除外することが合理的な決定でした。
6.1 GPOの編集
プロキシサーバーの入力またはパラメーターの自動決定の設定の変更を禁止するには、グループポリシーを使用できます。 グループポリシーを作成し、 officeなどのOUに関連付けます。
グループポリシーの編集:
ユーザー→ポリシー→管理用テンプレート→Windowsコンポーネント→Internet Explorer
このディレクトリで、パラメータを見つけて「有効」ステータスに変換します。
「プロキシ設定の変更を禁止する」
「自動設定変更を無効にする」
結論として、私はこれを言うことができます、この構成は2016年の春から現在まで正常に機能しており、それ自体が優れていることが証明されています。 すべての質問にお答えできてうれしいです。
UPD No. 1:11/12/16
1ポート3128および3129の余分な行がsquid構成から削除されました。
2にはselinuxが含まれ、ルールが追加されました。
3証明書の生成がマニュアルから削除されました(それがなくても機能します)
4マイナーな修正
UPD No. 2:11.20.16
1 krb5.conf構成から余分な行が削除されました
2 Msktutilを介したADとの統合方法を追加
3追加された転送
4 squidと依存関係を含む更新されたアーカイブ