установка squid с доступом по группам в AD, squidGuard, lighttpd+lightsquid, sams2 в centos часть2 установка и настройка
https://unixwall.000webhostapp.com/настраиваем-squid-sams-для-работы-в-ad/https://www.dmosk.ru/miniinstruktions.php?mini=sams2-squidyum update
yum install mc htop ncdu wget curl nano nmap
yum install openssh-server
chkconfig --level 2345 sshd on
systemctl reload sshd.service
nano /etc/yum.conf
yum install epel-release
yum update
yum repolist
yum install yum-utils
yum install
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmcurl -O
http://rpms.remirepo.net/enterprise/remi-release-7.rpmrpm -Uvh remi-release-7.rpm
nano /etc/squid/squid.conf
squid -k parse
squid -k reconfigure
service squid restart
yum install php php-mysql php-mbstring php-devel php-xml php-gd php-mcrypt
yum install -y mariadb mariadb-server mariadb-devel
yum install zip unzip
cd /root
wget
https://github.com/PavelVinogradov/sams2/archive/master.zipunzip master.zip
cd /root/sams2-master
make -f Makefile.cvs
sh ./configure
make
make install
find / -name httpd.conf
chown apache:apache /var/www
chown -R apache:apache /usr/local/share/sams2/
chown -R apache:apache /usr/local/etc/sams2.conf
chmod -R 777 /usr/local/share/sams2/
systemctl restart httpd
Web-интерфейс SAMS требует права на запись в каталог ./data
setenforce 0
установка dokuwiki centos php nginx посмотреть конфиг без комментариев
sudo grep -v «^#» /etc/squid/squid.conf | sed -e ‘/^$/d’
nano /etc/squid/squid.conf
squid -k check
squid -k parse
squid -k reconfigure
systemctl restart squid
failed to open /var/run/squid.pid: (2) No such file or directory
sudo killall -9 squid
systemctl start squid
Explicit Proxy c авторизацией по AD Group + Interception Proxy с авторизацией по MACУдалим полученный ticket, который мы получили от сервера Kerberos
kdestroy
«Авторизация администратора SAMS » и ввести учетные данные по-умолчанию: пользователь admin , пароль qwerty
https://meliorem.ru/category/backend/mysql/https://tproger.ru/translations/sql-recap/ mysql -usams2user -psams2password
SHOW DATABASES;
USE sams2db;
SHOW TABLES;
SELECT * FROM sgroup;
DELETE FROM sgroup WHERE s_group_id IN (8,9,10,11,12);
DELETE FROM sgroup WHERE s_group_id BETWEEN 10 and 248;
DELETE FROM shablon WHERE s_shablon_id BETWEEN 4 AND 246 AND s_shablon_id <> 8;
show processlist;
элементы и опции squid
http://www.bog.pp.ru/work/squid.htmlhttp://rus-linux.net/MyLDP/FAQ/SQUID-FAQ/FAQ-10.html Установка и настройка SQUIDЭлементы ACL
- src: IP-адрес источника (клиент)
- dst: IP-адрес назначения (сервер)
- myip: локальный IP-адрес клиентского соединения
- srcdomain: имя домена источника (клиент)
- dstdomain: имя домена назначения (сервер)
- srcdom_regex: шаблон регулярного выражения источника (клиент)
- dstdom_regex: шаблон регулярного выражения назначения (сервер)
- time: время дня и день недели
- url_regex: шаблон регулярного выражения для URL
- urlpath_regex: шаблон регулярного выражения для части URL, исключая протокол и имя хоста
- port: номер порта назначения (сервер)
- myport: номер локального порта, куда подключается клиент
- proto: тип протокола передачи (http, ftp, etc)
- method: метод HTTP-запроса (get, post, etc)
- browser: шаблон регулярного выражения, совпадающего с заголовком user-agent из запроса
- ident: строка совпадения с именем пользователя
- ident_regex: шаблон регулярного выражения имени пользователя
- src_as: номер Автономной Системы источника (клиент)
- dst_as: номер Автономной Системы назначения (сервер)
- proxy_auth: аутентификация пользователя через внешний процесс
- proxy_auth_regex: регулярное выражение аутентификации пользователя через внешний процесс
- snmp_community: строка SNMP-сообщества
- maxconn: ограничение максимального кол-ва соединений с одного клиентского IP-адреса
- req_mime_type: шаблон регулярного выражения для заголовка content-type запроса
- arp: Ethernet (MAC)-адрес
Списки доступа
Существуют следующие типы списков доступа:
- http_access: разрешает доступ HTTP-клиентам (броузерам) к порту HTTP. Это основной тип списка контроля доступа.
- icp_access: разрешает братским кешам опрашивать ваш кеш по ICP.
- miss_access: разрешает определенным клиентам передавать cache misses через ваш кеш.
- no_cache: объявляет ответы, которые не должны кешироваться.
- redirector_access: контролирует, какие запросы должны пройти через процесс редиректора.
- ident_lookup_access: контролирует, какие запросы требуют Ident lookup.
- always_direct: контролирует, какие запросы всегда должны посылаться напрямую к серверу назначения.
- never_direct: контролирует, какие запросы никогда не должны посылаться напрямую к серверу назначения.
- snmp_access: контролирует доступ клиентов к кешу по SNMP.
- broken_posts: определяет запросы, для которых squid добавляет дополнительный CRLF после тел сообщений POST как того требуют некоторые неверно работающие сервера.
- cache_peer_access: контролирует, какие запросы должны быть переданы соседскому кешу (peer).
https://wiki.yola.ru/squid/squidВыпуск трафика с разных IP-адресов
acl net1 src 10.1.1.0/24
acl net2 src 10.1.2.0/24
acl net3 src 10.1.3.1/32
tcp_outgoing_address ВНЕШНИЙ_IP_1 net1
tcp_outgoing_address ВНЕШНИЙ_IP_2 net2
tcp_outgoing_address ВНЕШНИЙ_IP_3 net3
tcp_outgoing_address ВНЕШНИЙ_IP_4
firewall-cmd
Создание мультизональных конфигураций межсетевого экрана с помощью FirewalldFirewalld, установка и настройка, зоны, NAT, проброс портовИспользование ipset во встроенном брандмауэре CentOS 7 vpn pptp centos7 netstat -tulpn
firewall-cmd --zone=public --remove-port=443/tcp --permanent
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=22/tcp --permanent
firewall-cmd --zone=public --remove-service=dhcpv6-client --permanent
firewall-cmd --zone=public --add-service=ssh --permanent
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --zone=public --add-port=3128/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --list-services
firewall-cmd --zone=external --list-ports
firewall-cmd --zone=external --list-services
firewall-cmd --zone=external --change-interface=enp3s0 --permanent
firewall-cmd --zone=external --remove-service=ssh --permanent
firewall-cmd --get-active-zones
firewall-cmd --zone=external --list-services
firewall-cmd --list-all
firewall-cmd --get-services
systemctl restart firewalld
http://fliplinux.com/ip-cen.html«белый список»
firewall-cmd --permanent --zone=public --add-source=192.168.100.0/24
firewall-cmd --permanent --zone=public --add-source=192.168.222.123/32
firewall-cmd --permanent --new-ipset=IP-users --type=hash:net
firewall-cmd --ipset=IP-servers --add-entry=192.168.0.0/24 --permanent
firewall-cmd --ipset=IP-servers --add-entry=192.168.200.12 --permanent
firewall-cmd --ipset=IP-servers --add-entry=192.168.200.200 --permanent
firewall-cmd --ipset=IP-servers --remove-entry=192.168.20.0/24 --permanent
firewall-cmd --ipset=IP-servers --get-entries
firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset="IP-servers" service name="ssh" accept'
firewall-cmd --remove-rich-rule='rule source ipset=IP-users service name="http" drop' --permanent
firewall-cmd --permanent --zone=public --list-rich-rules
чтобы все пользователи (список ipset IP-users) ходили через squid несмотря на net.ipv4.ip_forward=1
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp1s0 -m set --match-set IP-servers src -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp1s0 -o enp3s0 -m set --match-set IP-servers src -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp1s0 -j DROP
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp1s0 -o enp3s0 -j DROP
открыть Google Play
firewall-cmd --zone=public --add-port=5228/tcp --permanent
firewall-cmd --zone=external --add-port=5228/tcp --permanent
firewall-cmd --reload
systemctl restart firewalld
iptables -S
cat /etc/firewalld/direct.xml
рабочий вариант
https://wiki.archlinux.org/index.php/Active_Directory_Integration_(Русский) /etc/sysconfig/network-scripts/
во внутренней сетевой карте не указываем GATEWAY (шлюзом будет внешняя карта)
nano /etc/NetworkManager/NetworkManager.conf
[main]
dns=none
#plugins=ifcfg-rh,ibft
nano /etc/resolv.conf
# Generated by NetworkManager
search domain.office.local
nameserver 172.16.0.1 # (dns внутренней карты)
nameserver 172.16.0.3
nameserver xxx.xxx.xxx.xxx (dns с внешней сетевой карты напр с enp3s0)
systemctl restart NetworkManager.service
nslookup serv1.domain.office.local
yum -y install squid - установка squid
systemctl start squid - запустить
systemctl enable squid - вкл авто запуск
squid -z - создаем структуру папок под кэш следующей командой
/etc/krb5.conf
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/
includedir /var/lib/sss/pubconf/krb5.include.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = DOMAIN.OFFICE.LOCAL
ticket_lifetime = 24h
forwardable = yes
default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
[realms]
DOMAIN.OFFICE.LOCAL = {
kdc = 172.16.0.1
kdc = 172.16.0.3
admin_server = serv1.domain.office.local
default_domain = domain.office.local
}
[domain_realm]
.domain.office.local = DOMAIN.OFFICE.LOCAL
domain.office.local = DOMAIN.OFFICE.LOCAL
ещё вариант krb5.conf
http://xgu.ru/wiki/Squid,_Kerberos_и_LDAP # Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/
includedir /var/lib/sss/pubconf/krb5.include.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = DOMAIN.OFFICE.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = true
proxiable = true
default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
[realms]
DOMAIN.OFFICE.LOCAL = {
kdc = serv1.domain.office.local
kdc = serv2.domain.office.local
admin_server = serv1.domain.office.local
}
[domain_realm]
.domain.office.local = DOMAIN.OFFICE.LOCAL
domain.office.local = DOMAIN.OFFICE.LOCAL
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
[login]
krb4_convert = true
krb4_get_tickets = false
realm discover domain.office.local
Получаем тикет пользователя, имеющего права администратора домена.
kinit -V Administrator@DOMAIN.OFFICE.LOCAL
вводим в домен
realm join -U adminuser domain.office.local # adminuser - администратор в AD
в командной строке на контроллере домена создаём файл ключа
ktpass -princ HTTP/myproxy123.domain.office.local@DOMAIN.OFFICE.LOCAL -mapuser DOMAIN\squid -pass "password123" -ptype KRB5_NT_SRV_HST -out C:\myproxy123.keytab
https://docs.microsoft.com/ru-ru/windows-server/administration/windows-commands/ktpass- KRB5_NT_PRINCIPAL является общим типом участника (рекомендуется).
- KRB5_NT_SRV_INST является экземпляром службы пользователя.
- KRB5_NT_SRV_HST является экземпляром службы узла
net ads keytab flush - очистить кейтаб
net ads keytab create - создать кейтаб
net ads keytab add HTTP - добавим принципал HTTP для прокси или веб сервера
net ads keytab list - посмотрим что получилось
kdestroy - очистим все прошлые попытки логона.
kinit -V -k -t /etc/krb5.keytab HTTP/sq.mydomain.name@MYDOMAIN.NAME
копируем в /etc/myproxy123.keytab и проверяем
kinit -V -k -t /etc/myproxy123 HTTP/myproxy123.domain.office.local@DOMAIN.OFFICE.LOCAL
выставляем права
chown squid:squid /etc/myproxy123.keytab
chmod u+rwx,g+rx /etc/myproxy123.keytab
если забыл пароль пользователя, то можно проверить так:
Есть ли аналог SU для Windows Для локального аккаунта
runas /profile /user:computernamehere\username cmd
Для учетной записи домена
runas /profile /user:domainname\username cmd
runas /profile /user:username@domainname cmd
проверка
wbinfo -t
wbinfo -g
wbinfo -u
/usr/lib64/squid/basic_ldap_auth -b 'dc=domain,dc=office,dc=local'
getent passwd
getent group
net ads info
net ads lookup
net ads status -U administrator | less
klist -k /etc/krb5.keytab
Удалим полученный билет командой:
kdestroy
echo test1234 inet-users | /usr/lib64/squid/ext_wbinfo_group_acl
OK
id test1234
uid=16777893(test1234) gid=16777216(пользователи домена) группы=16777216(пользователи домена),...,16777248(inet-users),...
/usr/bin/ntlm_auth --username=test1234
Password:
NT_STATUS_OK: The operation completed successfully. (0x0)
проверка ext_kerberos_ldap_group_acl
/usr/lib64/squid/ext_kerberos_ldap_group_acl -a -d -i -g InetUsers -D DOMAIN.OFFICE.LOCAL
/usr/lib64/squid/ext_kerberos_ldap_group_acl -d -a -i -g InetUsers@DOMAIN.OFFICE.LOCAL -D DOMAIN.OFFICE.LOCAL
ошибка
kerberos_ldap_group: ERROR: Error while starting keytab scan : Key table file '/etc/krb5.keytab' not found
лечение
ln -s /etc/myproxy123.keytab /etc/krb5.keytab
Для автоматической аутентификации через Squid, необходимо внести следующие изменения - добавляем в файл /etc/sysconfig/squid строки
KRB5_KTNAME=/etc/myproxy123.keytab
export KRB5_KTNAME
и отключаем replay-кэш (для снижения нагрузок)
KRB5RCACHETYPE=none
export KRB5RCACHETYPE
/etc/sysconfig/squid
.....
KRB5_KTNAME=/etc/myproxy123.keytab
export KRB5_KTNAME
KRB5RCACHETYPE=none
export KRB5RCACHETYPE
добавить в /etc/squid/squid.conf
positive_dns_ttl 4 hours #жизнь успешных dns запросов
negative_dns_ttl 10 minutes #жизнь ошибочных dns запросов
auth_param negotiate program /usr/lib64/squid/negotiate_kerberos_auth -d -s HTTP/myproxy123.domain.office.local@DOMAIN.OFFICE.LOCAL
auth_param negotiate children 20 # startup=0 idle=1
auth_param negotiate keep_alive on
external_acl_type AD_Group ipv4 %LOGIN /usr/lib64/squid/ext_wbinfo_group_acl
authenticate_ttl 4 hour
.....
acl Inet-Users external AD_Group inet-users # inet-users - группа в AD
.....
acl url_filtred1 src 172.16.10.1-172.16.10.255
acl url_filtred2 src 172.16.11.1-172.16.11.255
#acl BlackList dstdomain "/etc/squid/BlackList.txt"
acl BlackList1 dstdomain "/etc/squid/BlackList1.txt"
acl BlackList2 dstdomain "/etc/squid/BlackList2.txt"
.....
#########################################
# Правила ограничений доступа клиентов #
#########################################
# Запретить доступ к портам, отсутствующим в списке выше
http_access deny !Safe_ports
# Запретить метод CONNECT не на SSL-порт
http_access deny CONNECT !SSL_ports
# Блокировать запрещенные сайты
#http_access deny BlackList
http_access deny BlackList1 url_filtred1
http_access deny BlackList2 url_filtred2
#########################################
.....
http_access allow Inet-Users
.....
ext_kerberos_ldap_group_acl тоже работает, но нужно поставить параметр ipv4
external_acl_type kerberos_ldap_group1 ttl=300 negative_ttl=60 ipv4 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -a -g "Internet Users" -D DOMAIN.OFFICE.LOCAL
.....
acl auth proxy_auth REQUIRED
.....
acl group1 external kerberos_ldap_group1
.....
http_access allow group1
.....
Настройка squid или как не купить платное решениеchildren - максимальное количество процессов доступные для запуска, startup количество процессов которые запущены всегда, idle максимальная очередь к помощнику при превышении указанного числа будет запускаться новый процесс помощника.
squid -k check
squid -k parse
squid -k reconfigure
systemctl restart squid
failed to open /var/run/squid.pid: (2) No such file or directory
sudo killall -9 squid
systemctl start squid
ошибки и логи
1. access.log - для записи запросов клиентов;
2. store.log - для записи действий с кэшем;
3. cache.log - для записи ошибок возникающих при работе с Squid.
tail -f /var/log/squid/cache.log
tail -f /var/log/squid/access.log
Чистим кэш Squid
grep cache_dir /etc/squid/squid.conf
service squid stop
rm -r /var/spool/squid/*
squid -z
service squid start
/etc/sysctl.conf
# enable routing
#net.ipv4.ip_forward=1
net.ipv4.ip_forward=0
# disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
# disable ipv6 enp3s0
#net.ipv6.conf.enp3s0.disable_ipv6 = 1
net.ipv4.ip_forward=0 - иначе можно будет ходить мимо squid (прописать роутинг и выставить "без прокси")
sudo sysctl -p
sudo sysctl --system
На клиентских машинах адрес прокси сервера должен быть указан в FQDN-формате (myproxy123.domain.office.local)
squidGuard
http://squidguard.mesd.k12.or.us/https://itzx.ru/linux/install-squidguard-db4-from-source /etc/squid/squid.conf
positive_dns_ttl 4 hours #жизнь успешных dns запросов
negative_dns_ttl 10 minutes #жизнь ошибочных dns запросов
auth_param negotiate program /usr/lib64/squid/negotiate_kerberos_auth -d -s HTTP/proxy123.domain.office.local@DOMAIN.OFFICE.LOCAL
#auth_param negotiate children 20 # startup=0 idle=1
#auth_param negotiate children 5 startup=0 idle=1
auth_param negotiate children 20 startup=10 idle=10
auth_param negotiate keep_alive on
auth_param ntlm program /usr/bin/ntlm_auth --diagnostics --helper-protocol=squid-2.5-ntlmssp --domain=DOMAIN.OFFICE.LOCAL
auth_param ntlm children 20
auth_param ntlm keep_alive off
external_acl_type kerberos_ldap_group1 ttl=300 negative_ttl=60 ipv4 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -a -g "Internet Users" -D DOMAIN.OFFICE.LOCAL
external_acl_type squid_users_from_ad_ntlm %LOGIN /usr/lib64/squid/ext_wbinfo_group_acl -d
#external_acl_type AD_Group ipv4 %LOGIN /usr/lib64/squid/ext_wbinfo_group_acl
authenticate_ttl 4 hour
.....
#acl Inet-Users external AD_Group inet-users # inet-users - группа в AD
acl group1 external kerberos_ldap_group1
acl squid_users_acl_ntlm external squid_users_from_ad_ntlm "Internet Users"
.....
acl admin src 172.16.22.22
acl server src 172.16.1.0/24
acl kassa src 172.16.11.0/24
.....
# squidGuard
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
.....
#########################################
# Правила ограничений доступа клиентов #
#########################################
# Запретить доступ к портам, отсутствующим в списке выше
http_access deny !Safe_ports
# Запретить метод CONNECT не на SSL-порт
http_access deny CONNECT !SSL_ports
#########################################
.....
http_access allow admin
http_access allow server
http_access allow kassa
.....
#http_access allow Inet-Users
http_access allow group1
http_access allow squid_users_acl_ntlm
.....
cache_dir ufs /var/spool/squid 4096 32 256
.....
проверка работы прокси на admin server и kassa
curl --proxy 172.16.0.123:3128 check-host.net/ip
$ export http_proxy="
http://ЛОГИН:ПАРОЛЬ@ПРОКСИ_СЕРВЕР:ПОРТ"
$ export https_proxy="
https://ЛОГИН:ПАРОЛЬ@ПРОКСИ_СЕРВЕР:ПОРТ"
$ export ftp_proxy="
http://ЛОГИН:ПАРОЛЬ@ПРОКСИ_СЕРВЕР:ПОРТ"
Если прокси без авторизации, то строки должны быть вида:
$ export <бла-бла>_proxy="
http://ПРОКСИ_СЕРВЕР:ПОРТ"
$ export {http,https,ftp}_proxy="
http://ПРОКСИ_СЕРВЕР:ПОРТ"
$ unset {http,https,ftp}_proxy
для отключения прокси:
$ unset http_proxy
$ unset https_proxy
$ unset ftp_proxy
nano /etc/environment
https_proxy="
https://user:pass@proxy:port/"
http_proxy="
http://user:pass@proxy:port/"
ftp_proxy="ftp://user:pass@proxy:port/"
socks_proxy="socks://user:pass@proxy:port/"
no_proxy="localhost,127.0.0.1,::1,*.my.lan
Если прокси без авторизации, то строки должны быть вида:
<бла-бла>_proxy="
https://proxy:port/"
yum install squidGuard
nano /etc/squid/squidGuard.conf
dbhome /var/squidGuard/BL/
logdir /var/log/squidGuard/
#
# TIME RULES:
# abbrev for weekdays:
# s = sun, m = mon, t =tue, w = wed, h = thu, f = fri, a = sat
#
#time workhours {
# weekly mtwhf 08:00 - 16:30
# date *-*-01 08:00 - 16:30
#}
# SOURCE ADDRESSES:
#src bigboss {
# ip 192.168.1.100 #Компьютер директора
# ip 192.168.1.101 #Компьютер зама
#}
#src admin {
# ip 192.168.1.7 #Мой компьютер
#}
# DESTINATION CLASSES:
dest deny {
domainlist manual/domains
urllist manual/urls
}
dest adv {
domainlist adv/domains
urllist adv/urls
# log adv
}
dest costtraps {
domainlist costtraps/domains
urllist costtraps/urls
# log costtraps
}
dest drugs {
domainlist drugs/domains
urllist drugs/urls
# log drugs
}
dest fortunetelling {
domainlist fortunetelling/domains
urllist fortunetelling/urls
# log fortunetelling
}
dest gamble {
domainlist gamble/domains
urllist gamble/urls
log gamble
}
dest hacking {
domainlist hacking/domains
urllist hacking/urls
log hacking
}
dest porn {
domainlist porn/domains
urllist porn/urls
log porn
}
dest redirector {
domainlist redirector/domains
urllist redirector/urls
# log redirector
}
#dest sex {
# domainlist sex/domains
# urllist sex/urls
# log sex
#}
dest sexeducation {
domainlist sex/education/domains
urllist sex/education/urls
log sexaccess
}
dest sexlingerie {
domainlist sex/lingerie/domains
urllist sex/lingerie/urls
log sexlingerie
}
dest spyware {
domainlist spyware/domains
urllist spyware/urls
log spyware
}
dest suspect {
domainlist suspect/domains
urllist suspect/urls
log suspect
}
dest warez {
domainlist warez/domains
urllist warez/urls
log warez
}
#acl {
# bigboss {
# pass !costtraps !redirector !porn !spyware !tracker all
# redirect
http://192.168.1.1/squidguard.html# }
# admin {
# pass any
# }
acl {
default {
pass !adv !deny !costtraps !drugs !fortunetelling !gamble !hacking !porn !redirector !sexeducation !sexlingerie !spyware !suspect !warez all
redirect
http://www.server.world/error.html }
}
https://github.com/StevenBlack/hostshttps://someonewhocares.org/hosts/hostshttps://adaway.org/hosts.txthttp://www.squidguard.org/blacklists.htmlhttp://squidguard.mesd.k12.or.us/blacklists.tgzhttp://www.shallalist.de/http://www.shallalist.de/Downloads/shallalist.tar.gzhttps://raw.githubusercontent.com/zapret-info/z-i/master/nxdomain.txt wget
http://www.shallalist.de/Downloads/shallalist.tar.gztar -xvf shallalist.tar.gz
mkdir -p /var/squidGuard/BL/manual/
nano /var/squidGuard/BL/manual/domains
nano /var/squidGuard/BL/manual/urls
из blacklists.tgz скопировать каталог suspect в каталог BL (иначе при преобразовании в БД выдаст ошибку)
squidGuard -b -d -C all
chown -R squid:squid /var/squidGuard
chown root:squid /etc/squid/squidGuard.conf
chmod 0640 /etc/squid/squidGuard.conf
chown -R squid:squid /var/log/squidGuard
протестируем SquidGuard, прежде, чем объединять его со Squid:
# echo "
http://www.porno.com / - - GET" | squidGuard -d
в /etc/squid/squid.conf Добавляем:
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
squid -k reconfigure
systemctl restart squid
логи
tail -f /var/log/messages
tail -f /var/log/squidGuard/squidGuard.log
squid -k rotate # очистить логи
если не применяет правила, то отключить Selinux ()
sestatus
временно
setenforce 0
постоянно
nano /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled
reboot
Изменение записей в списках доменов и URL
Пример. Рядом с файлом domains.db в папке /var/lib/squiguard/db/webmail создаём файл domains.diff. В него заносим строку или несколько строк, по одной на каждую запись:
-google.com (что означает вычеркнуть этот домен из базы)
или +google.com (что означает добавить этот домен в базу)
Даём команды:
$ squidGuard -u (обновить базы db из файлов diff. В логах squidguard'а можно посмотреть сколько добавилось/убылось.)
$ squid -k reconfigure (перечитать настройки без перезапуска.)
Файл domains.diff удалять, или стирать из него записи, не надо. При глобальном обновлении баз этот файл ещё пригодится. И при многократном обновлении не происходит дублирования записей в БД.
Webmin
sudo tee /etc/yum.repos.d/webmin.repo<
[Webmin]
name=Webmin Distribution Neutral
baseurl=
https://download.webmin.com/download/yumenabled=1
EOF
sudo rpm --import
http://www.webmin.com/jcameron-key.ascsudo yum install webmin
sudo chkconfig webmin on