Yvision.kz
kk
Разное
Разное
399 773 постов42 подписчика
Всяко-разно
0
04:08, 17 июля 2013

Настройка Squid на блокировку сайтов

Как в Squid запретить сайты, загрузку файлов.

Дано:

Описание

 

IP адрес

1.

Локальная сеть

10.168.50.0/24

2.

IP адрес кому разрешен выход  без ограничений

10.168.50.25

Разрешенное время доступа:

c 9:00-12:30 |в обеденное время доступ открыт| до 13:30-18:00

Устанавливаем Squid:

# yum install squid -y

Правим конфигурационный файл по умолчанию:

# vi /etc/squid/squid.conf

acl full-access src 10.168.50.25

acl my_localnet src 10.168.50.0/24

 

acl work_time time 09:00-12:30 13:30-18:00

 

acl bad_url url_regex "/etc/squid/acl/bad_url"

acl upload url_regex "/etc/squid/acl/upload"

acl soc_net url_regex work_time "/etc/squid/acl/soc_net"

acl filetypes urlpath_regex -i "/etc/squid/acl/filetypes"

acl baners urlpath_regex -i "/etc/squid/acl/baners"

 

http_access deny bad_url !full-access

http_access deny soc_net !full-access

http_access deny upload !full-access

http_access deny filetypes !full-access

 

http_access allow my_localnet

http_access allow full-access

#http_access allow all

#http_access deny all

Создаем каталог для файлов которые будут содержать запреты:

# mkdir /etc/squid/acl

Создаем файлы запретов:

Запрещаем сайты на которые руководство наложило запрет.

# vi /etc/squid/acl/bad_url

.mail.ru

.yandex.ru

Запрещаем файлообменники

# vi /etc/squid/acl/upload

.rusfolder.com

.ifolder.ru

.mediafire.com

.depositfiles.com

.rapidshare.com

Запрещаем социальные сети

# vi /etc/squid/acl/soc_net

.vk.com

.love.mail.ru

.facebook.com

.odnoklassniki.ru

.my.mail.ru

.myspace.com

Запрещаем закачивать файлы из списка

# vi /etc/squid/acl/filetypes

\.(exe)$

\.(zip)$

\.(rar)$

\.(mp3)$

\.(avi)$

\.(wav)$

\.(mpg)$

\.(mpeg)$

\.(torrent)$

Режим баннеры
# vi /etc/squid/acl/baners
88x31.*gif
100x80.*gif
100x100.*gif
120x60.*gif
179x69.*gif
193x72.*gif
468x60.*gif

Полный конфиг файл squid.conf:

#

# Recommended minimum configuration:

#

acl manager proto 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

# Example rule allowing access from your local networks.

# Adapt to list your (internal) IP networks from where browsing

# should be allowed

#acl localnet src 10.0.0.0/8          # RFC1918 possible internal network

#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 localnet src fc00::/7       # RFC 4193 local private network range

acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines

acl SSL_ports port 443

acl Safe_ports port 80                   # http

acl Safe_ports port 21                   # ftp

acl Safe_ports port 443                # https

acl Safe_ports port 70                   # gopher

acl Safe_ports port 210                # wais

acl Safe_ports port 1025-65535 # unregistered ports

acl Safe_ports port 280                # http-mgmt

acl Safe_ports port 488                # gss-http

acl Safe_ports port 591                # filemaker

acl Safe_ports port 777                # multiling http

acl CONNECT method CONNECT

#

# Recommended minimum Access Permission configuration:

#

# Only allow cachemgr access from localhost

http_access allow manager localhost

http_access deny manager

# Deny requests to certain unsafe ports

http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports

http_access deny CONNECT !SSL_ports

# We strongly recommend the following be uncommented to protect innocent

# web applications running on the proxy server who think the only

# one who can access services on "localhost" is a local user

#http_access deny to_localhost

visible_hostname ai_proxy.local

#

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

#

# Example rule allowing access from your local networks.

# Adapt localnet in the ACL section to list your (internal) IP networks

# from where browsing should be allowed

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

acl full-access src 10.168.50.25

acl my_localnet src 10.168.50.0/24

acl admin_pc src 10.168.50.46

acl work_time time 09:00-12:30 13:30-18:00

acl bad_url url_regex "/etc/squid/acl/bad_url"

acl upload url_regex "/etc/squid/acl/upload"

acl soc_net url_regex work_time "/etc/squid/acl/soc_net"

acl filetypes urlpath_regex -i "/etc/squid/acl/filetypes"

acl baners urlpath_regex -i "/etc/squid/acl/baners"

http_access deny bad_url !full-access !admin_pc

http_access deny soc_net !full-access !admin_pc

http_access deny upload !full-access !admin_pc

http_access deny filetypes !full-access !admin_pc

http_access allow my_localnet

http_access allow full-access

#http_access allow all

#http_access deny all

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

# And finally deny all other access to this proxy

# Squid normally listens to port 3128

http_port 3128 transparent

# We recommend you to use at least the following line.

hierarchy_stoplist cgi-bin ?

# Uncomment and adjust the following to add a disk cache directory.

#cache_dir ufs /var/spool/squid 100 16 256

# Leave coredumps in the first cache dir

coredump_dir /var/spool/squid

# Add any of your own refresh_pattern entries above these.

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

0
10881
5