7つのCentOSにイカサーバー設定ACLアクセス制御とログ分析

展開は、プロキシサービスとのconfigure伝統的な参照ボーエンイカ:CentOSに7は、Squidプロキシサービスをインストールし、従来のプロキシ構築
設定を透過プロキシ参照ボーエンイカ:Centos7は、Squid代理店サービスと透過プロキシ設定をインストール

A、ACLのアクセス制御

イカプロキシは、発信元アドレス、宛先アドレス、URLパスへのアクセス、アクセスの時間をフィルタリングすることができる種々の状態のための合理的なACLのセットと、によって制限強力な制御機構を提供します。設定ファイルsquid.confのでは、ACLのアクセス制御を2つの段階で実装されています。まず、使用ACLエントリは、構成を制御するのに必要な条件を定義しています。第二に、のhttp_access設定により、リスト上のアイテムは、「許可」または「拒否行うために定義されています「アクセスを制御します。

1、アクセス制御リスト

各行ACL設定は、アクセス制御リストは、次の形式を定義することができます。

acl 列表名称 列表类型 列表内容

前記「名前リスト」が制御条件を特定するために、管理者自身によって指定され;;「リストタイプ」イカは、異なるカテゴリに対応する制御条件を予め定義された値を使用しなければならない;「コンテンツリスト」が制御される特定のオブジェクトであり、コンテンツ対応するリストの異なるタイプが、同一ではない複数の値(スペースで区切られた、「または」の関係)を有することができます。

上記の形式で見つけることができる、アクセス制御リストの定義は、キーは「リストタイプ」を選択し、オブジェクトの条件を設定することです。イカは、リストを事前に定義され、多くの種類があり、次のように一般に、送信元アドレス、宛先アドレス、アクセス時間、アクセスポートを含みます。
7つのCentOSにイカサーバー設定ACLアクセス制御とログ分析

ACL定義の例:

[root@centos02~ ]# vim /etc/squid.conf
                             ..........................
acl localnet src 10.0.0.0/8     # RFC1918 possible internal network    <!--squid默认的一些ACL-->
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network    <!--默认存在-->
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network    <!--默认存在-->
acl localhost src 127.0.0.1/255.255.255.255            <!--源地址为127.0.0.1-->
acl mylan src 192.168.1.0/24 192.168.4.0/24          <!--客户机网段-->
acl to_localhost dst 127.0.0.0/8                        <!--目标地址为127.0.0.0/8网段-->
acl mc20 maxconn 20                              <!--最大并发连接量为20-->
acl blackurl url_regex -i ^rtsp:// ^emule://              <!--以rtsp://等开头的URL-->
acl mediafile urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$    <!--以.mp3等结尾的URL路径-->
acl worktime time MTWHF 9:00-18:00                 <!--时间为周一至周五的 9:00-18:00-->   
                              ........................

同じクラスを必要とする対象に多くの制約がある場合、別のファイルは、コンテンツのACLに配置された行に対応するファイルの場所を格納するために使用することができます。次のとおりです。

[root@centos02~ ]# mkdir /etc/squid
[root@centos02~ ]# cd /etc/squid
[root@centos02 squid]# vim ipblock.list         <!--建立目标IP地址名单-->

61.135.167.36
125.39.127.25
60.28.14.0

[root@centos02 squid]# vim dmblock.list         <!--建立目标域地址名单-->

.qq.com
.msn.com
.live.com
.verycd.com

[root@centos02 squid]#  vim /etc/squid.conf                  

acl ipblock dst "/etc/squid/ipblock.list"           <!--调用指定文件中的列表内容-->
acl dmblock dstdomain "/etc/squid/dmblock.list"

ACLが設定されている場合、あなたはのhttp_access設定項目で制御する必要があります。それのhttp_access構成ラインは、対応する行のACL設定の後に配置されなければならないことに留意しなければなりません。各行は、アクセスルールは、次の形式を決定するのhttp_accessを配置しました:

http_access許可または拒否リストの名前

ちょうど定義されたルールは、次のように適用されるACL:

[root@centos02 squid]# vim /etc/squid.conf
                        ......................
http_access deny !Safe_ports     <!--squid默认存在的访问权限-->
http_access deny mediafile        <!--禁止客户机下载mp3等文件-->
http_access deny ipblock              <!--禁止客户机访问黑名单中的IP地址-->
http_access deny dmblock              <!--禁止客户机访问黑名单中网站域-->
http_access deny mc20        <!--客户机的并发连接量超过20时将被阻止-->
http_access allow worktime           <!--允许客户机在工作时间内上网-->
reply_body_max_size 10 MB        <!--允许下载的最大文件大小(10M)-->
                            .......................
http_access deny all  <!--默认禁止所有客户机使用代理,squid默认存在的访问权限-->

アクセス権を設定するときは、次の点に注意を払う必要があります。

  • 各のhttp_accessルールは、あなたはそれが対応するアクセス制御リストを制限するすべての条件を満たさなければならない表現であり、「AND」、各リストの間のスペースで区切られた複数の同時アクセス制御リストの名前を挙げることができます。

  • あなたがアクセス制御リストの前に「!」記号を追加することができ、反転の条件を使用する必要があります。

  • アクセス制御を実行する場合、一致ルールがもはや(このルールとiptablesは、同様の一致)の後方を検索で見つからない場合は、イカは、順番にルールの順番に従ってチェックされます。そのため、ルールの順序は重要です。

  • 任意のルールを設定していない場合は、イカのサービスは、クライアントの要求を拒否します。これは、なぜ、デフォルトの設定ファイルACLルールであるあなたは、競合を避けるために、その後の3つのデフォルト存在でセグメント、それをコメントアウトする必要があり、限界までを、拒否したい場合は、3つのネットワーク・セグメントは、アクセスが得られ、そこにありますルールは有効になりません。

  • "されてイカルールは許可するのが最善であれば、ある最後のルール反対の行動を、使用しますが、クライアントの要求を拒否し、それ以外の要求が許可され、最終規則がデフォルトで存在します。そこのルールがありますが、試合があることのアイテムを見つけることができませんhttp_accessは、すべての「拒否
    イカの負荷を軽減するために、前面に一般的に、最も一般的に使用される制御ルールを。総合的な政策のアクセス制御では、我々はアプローチ「を最初に許可することを拒否した」または「許可する最初の拒否」を使用することをお勧めします。

二、イカログ解析

私たちは、より直感的なログを表示するためには、あなたがSARGを使用することができ、それは、インターネットサイトのアクセス情報、時間占有情報、ランク、接続数、トラフィックに各ユーザーの詳細を、イカのログ解析ツール、HTML形式ですように。

1、パッケージ導入GD

1)パッケージGDへ

[root@centos02 ~]# rz  

7つのCentOSにイカサーバー設定ACLアクセス制御とログ分析

[root@centos02 ~]# ls
anaconda-ks.cfg  gd-devel-2.0.35-11.el6.x86_64.rpm  initial-setup-ks.cfg

2、インストールと設定SARG

[root@centos02 ~]# mount /dev/cdrom /mnt/  <!--挂载linux光盘-->
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos02 ~]# tar zxvf /mnt/sarg-2.3.7.tar.gz -C /usr/src/ 
          <!--解压缩sarg软件包-->
[root@centos02 ~]# umount /mnt/   <!--卸载光盘-->
[root@centos02 ~]# mount /dev/cdrom /mnt/  <!--挂载操作系统盘-->
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos02 ~]# rm -rf /etc/yum.repos.d/CentOS-* 
[root@centos02 ~]# yum -y install gd gd-devel httpd 
            <!--安装sarg依赖软件-->
[root@centos02 ~]# rpm -ivh gd-devel-2.0.35-11.el6.x86_64.rpm 
<!--检查sarg软件所需的依赖-->
[root@centos02 ~]# rpm -ivh gd-devel-2.0.35-11.el6.x86_64.rpm --nodeps    <!--强制忽略依赖关系安装gd-devel-->
[root@centos02 ~]# rpm -qa | grep gd <!--检查是否安装成功-->
[root@centos02 ~]# rpm -qa | grep gd-devel <!--检查是否安装成功-->
[root@centos02 ~]# rpm -qa | grep httpd <!--检查是否安装成功-->
[root@centos02 ~]# mkdir /usr/local/sarg  <!--创建安装sarg目录-->
[root@centos02 ~]# cd /usr/src/sarg-2.3.7/   <!--进入sarg目录-->
[root@centos02 sarg-2.3.7]# ./configure --prefix=/usr/local/sarg --sysconfdir=/etc/sarg --enable-extraprotection    <!--配置sarg-->
[root@centos02 sarg-2.3.7]# make && make install <!--安装sarg-->
[root@centos02 sarg-2.3.7]# ls -ld /etc/sarg/        
                <!--查看是否生成配置文件-->
drwxr-xr-x 2 root root 83 11月 18 10:35 /etc/sarg/     
[root@centos02 sarg-2.3.7]# ls -ld /usr/local/sarg/   
                <!--查看是否生成配置文件-->
drwxr-xr-x 4 root root 30 11月 18 10:35 /usr/local/sarg/
[root@centos02 ~]# cp /etc/sarg/sarg.conf /etc/sarg/sarg.conf.bak <!--备份sarg主配置文件-->
[root@centos02 ~]# vim /etc/sarg/sarg.conf  <!--修改sarg主配置文件-->
8 access_log /usr/local/squid/var/logs/access.log  
                      <!--指定squid的访问日志文件-->
27 title "Squid User Access Reports"  <!--网页标题-->
122 output_dir /var/www/html/squid-reports  <!--sarg报告的输出目录-->
182 user_ip no      <!--使用用户名显示-->
189 topuser_sort_field BYTES reverse     <!--在top排序中,指定连接次数、访问次数,
采用降序排序,升序将reverse换成normal-->
196 user_sort_field BYTES reverse <!--对于用户访问记录,
连接次数按降序排序-->
211 exclude_hosts /usr/local/sarg/noreport     
                              <!--指定不计入排序的站点列表文件-->
265 overwrite_report no  <!--当那个日期报告已经存在,是否覆盖报告-->
298 mail_utility mailx   <!--发送邮件报告的命令-->
444 charset utf-8      <!--使用字符集-->
529 weekdays 0-6     <!--指定top排序时的星期周期,0为周日-->
537 hours 0-23         <!--指定top排序时的时间周期-->
646 www_document_root /var/www/html       <!--网页根目录-->
[root@centos02 ~]# mkdir -p /usr/local/sarg/noreport 
          <!--创建不计入排序的目录-->
[root@centos02 ~]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin/  
<!--优化执行命令-->
[root@centos02 ~]# sarg       <!--执行sarg启动一次记录-->
SARG: 纪录在文件: 27, reading: 100.00%
SARG: 成功的生成报告在 /var/www/html/squid-reports/2019Nov18-2019Nov18
[root@centos02 ~]# systemctl start httpd   <!--启动httpd服务-->
[root@centos02 ~]# systemctl enable httpd <!--设置开机自动启动-->

アクセステストに3、Windowsクライアントのブラウザ

http://192.168.100.20/squid-reports/
7つのCentOSにイカサーバー設定ACLアクセス制御とログ分析

http://192.168.100.20/sarg/
7つのCentOSにイカサーバー設定ACLアクセス制御とログ分析

第三に、定期的なリフレッシュスクリプトログの準備

[root@centos02 ~]# vim log.sh  <!--创建脚本-->
#!/bin/bash
TD=$(date -d '1 day ago' +%d/%M/%Y)
/usr/local/sarg/bin/sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/sarg -z -d $YETD_$TD &> /dev/null
exit 0
[root@centos02 ~]# chmod +x log.sh   <!--脚本添加执行权限-->
[root@centos02 ~]# ./log.sh &   <!--执行脚本-->
[1] 7798
[root@centos02 ~]# vim /etc/rc.d/rc.local    
          <!--将脚本添加至开机自动启动配置文件中-->
/root/log.sh
[root@centos02 ~]# chmod +x /etc/rc.d/rc.local  <!--添加执行权限-->

------この記事を締結、読んでくれてありがとう------

おすすめ

転載: blog.51cto.com/14156658/2452103