Recommended Posts

Устанавливаем резалку рекламы Pi-hole в докер на Synology.

 

Вступление: мануалов много, но они не совсем правильные.

Часть из них используют bridge сеть докера, тем самым затрудняя доступ из локальной сети к нутрям контейнера. Не каждому понятно как в него пробраться.

Часть мануалов рекомендуют привязывать к контейнеру HOST-сеть докера. Тем самым блокируя порты самой Synology, так как Pihole  использует тот же 80-й порт и прочие.

 

Я нашел адекватный мануал на английском и решил оставить след по нему в виде скриншотов и надписей на русском языке. А как вы знаете - они есть даже в общественных парижских туалетах. Оригинал мануала лежит вот тут

Итак, если очень кратко: редактируем под себя файл настроек, заходим в SSH на Synology под root, говорим докеру скомпоновать контейнер и вуаля.

Далее, распишу более подробно.

 

У меня образ Pihole был заранее скачан. Я не уверен, скачает ли докер его сам, поэтому заранее зайдите в реестр докера и слейте себе образ Pihole под ваш процессор. Будем считать, что образ (в неправильном переводе на русский звучит как "Изображение") у вас скачан.

 

Идем по ссылке выше, качаем файл docker-compose.yaml и редактируем его под свои нужды:

Spoiler

# Note: 192.168.123.xxx is an example network, you must update all these to match your own.

# вроде как нужно остерегаться лишних пробелов и табуляторов.

version: '2'

services:
  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    hostname: pihole
    domainname: example.com             # <-- Update Пишем имя домена, если нужно.
    mac_address: d0:ca:ab:cd:ef:01   # мак-адрес виртуального интерфейса, под которым докер будет показывать пихольку.
    cap_add:
      - NET_ADMIN
    networks:
      pihole_network:
        ipv4_address: 192.168.123.199   # Ставим свой ип. Если на роутере у вас адрес 192.168.0.1, то тут ставим 192.168.0.253 и это будет адрес контейнера.
    dns:
      - 127.0.0.1   #можно сюда добавить DNS адрес вашего провайдера. Не уверен, я в админке потом добавлял.
      - 8.8.8.8
    ports:
      - 443/tcp
      - 53/tcp
      - 53/udp
      - 67/udp
      - 80/tcp
    environment:
      ServerIP: 192.168.123.199         # айпишник, под которым будет доступен контейнер.
      VIRTUAL_HOST: pihole.example.com  # имя, которое можно ввести в браузер и попасть в админку.
      WEBPASSWORD: ""                   # можно задать свой, а можно после глянуть сгенерированный в журнале, если тут ничего не ставить.
    restart: unless-stopped #автоперезапуск контейнера

networks:
  pihole_network:
    driver: macvlan
    driver_opts:
      parent: ovs_eth0
    ipam:
      config:
        - subnet: 192.168.123.0/24            # <-- Update    я не трогал, только поменял 123 на свою подсеть (по примеру выше - 192.168.0.0/24)
          gateway: 192.168.123.1              # <-- Update  я не трогал, только поменял 123 на свою подсеть (по примеру выше - 192.168.0.0/24)
          ip_range: 192.168.123.192/28        # <-- Update я не трогал, только поменял 123 на свою подсеть (по примеру выше - 192.168.0.0/24)

 

 

Основной смысл редактирования - привести настройки сети к вашим.

Как отредактировали этот файл, то кладем его на файлостанцию. Разумно сделать отдельную папку Docker и в ней делать папки для конкретного контейнера. И в эти папки уже прокидывать при нужде папки из контейнеров.

 

В итоге, у меня оно вот так:

cc9380d7c0f53d1a1129fc25edd7f533.png

 

В папку pihole я положил отредактированный ранее файл  docker-compose.yaml

Теперь залазим на нашу Synology каким-то терминалом, пролазим в папку с файлом docker-compose.yaml и выполняем команду:

docker-compose up -d

c8505667730ec4120de92106e3d6a969.png

 

Пролазим именно под рутом, иначе демон докера будет ругаццо!
e1195cd0f2bc77af37653c275ed9256b.png

 

Видим, что все готово.

Идем опять в админку докера и видим наш работающий свеженький контейнер.

 

Было:

c6ca0fe70001c676ba725e3b2f5e4855.png

 

Стало:

993781187_.thumb.png.a65849aa03e12e433214406f57f96d7e.png

 

Отлично! Теперь нужно нарыть пароль для админки. Если вы его указали в конфиге, то перепрыгивайте на следующий шаг.

Если не указывали, то дважды щелкаем на контейнере в админке докера (скрин выше) и лезем в журнал.

В Журнале ищем пароль:

66aedac84411902e74767a9a4e5b86fd.png

 

Пароль найден. Переходим по адресу, присвоенному контейнеру в docker-compose.yaml и заходим в админку:

 

696adefcc7e9935f1af12059f7eca768.png

 

Вуаля! Пол дела сделано!

Надавив Dashboard, справа вверху на красном фоне вы можете глянуть количество блокируемых доменов. У меня их было порядка 120 тысяч.

"Но ведь это не так и много!" - скажете вы и будете в чем-то правы ))

Я подошел к вопросу точно так же, как и вы и по итогу у меня почти 3.5 млн доменов блокируемого хлама.

Кто-то скажет, что это дескать неправильно, гнаться за количеством. Но лично мне и в моей ситуации - это нисколько не вредит. Да, нушные сайты заблокированы. Заблокирован фейсбук и куча прочей дряни. И даже фишки.нет заблокирован кастомными списками. Но для предприятия это не есть проблемой. Всё что нужно для работы у меня работает. А остальное - юзверя дома будут фейсбучить и так далее.

В любом случае - разблокировать домен с пихолькой очень легко.

 

Итак, теперь нам нужно 120 тысяч блокируемых доменов расширить до 3.4 миллионов. Может не всем нам, но кому-то наверняка нужно.

Так что этим и займемся. Благо - это лишь пара скриншотов и десяток кликов мышом!
 

Идем на сайт https://firebog.net

Видим кучку готовых списков.

В соседней вкладке/окне браузера открываем админку и идем в настройки: Settings - Blocklist

58d3dd5c9f4aa36f1ea3c571dbe32be1.png

 

Копипастим нужные списки в соответствующее поле и жмем Save and Update.

готовый полный список на сегодня:

Spoiler

https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts

https://mirror1.malwaredomains.com/files/justdomains

http://sysctl.org/cameleon/hosts

https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist

https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt

https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt

https://hosts-file.net/ad_servers.txt

https://s3.amazonaws.com/lists.disconnect.me/simple_malvertising.txt

https://hosts-file.net/exp.txt

https://hosts-file.net/emd.txt

https://hosts-file.net/psh.txt

https://mirror.cedia.org.ec/malwaredomains/immortal_domains.txt

https://www.malwaredomainlist.com/hostslist/hosts.txt

https://bitbucket.org/ethanr/dns-blacklists/raw/8575c9f96e5b4a1308f2f12394abd86d0927a4a0/bad_lists/Mandiant_APT1_Report_Appendix_D.txt

https://v.firebog.net/hosts/Prigent-Malware.txt

https://phishing.army/download/phishing_army_blocklist_extended.txt

https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-malware.txt

https://v.firebog.net/hosts/Shalla-mal.txt

https://raw.githubusercontent.com/StevenBlack/hosts/master/data/add.Risk/hosts

https://www.squidblacklist.org/downloads/dg-malicious.acl

https://gitlab.com/curben/urlhaus-filter/raw/master/urlhaus-filter-hosts.txt

https://raw.githubusercontent.com/DandelionSprout/adfilt/master/Alternate versions Anti-Malware List/AntiMalwareHosts.txt

https://raw.githubusercontent.com/HorusTeknoloji/TR-PhishingList/master/url-lists.txt

https://v.firebog.net/hosts/Airelle-hrsk.txt

https://github.com/chadmayfield/pihole-blocklists/raw/master/lists/pi_blocklist_porn_all.list

https://raw.githubusercontent.com/chadmayfield/pihole-blocklists/master/lists/pi_blocklist_porn_top1m.list

https://zerodot1.gitlab.io/CoinBlockerLists/hosts_browser

https://raw.githubusercontent.com/anudeepND/blacklist/master/facebook.txt

https://v.firebog.net/hosts/Easyprivacy.txt

https://v.firebog.net/hosts/Prigent-Ads.txt

https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-blocklist.txt

https://raw.githubusercontent.com/StevenBlack/hosts/master/data/add.2o7Net/hosts

https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt

https://raw.githubusercontent.com/Kees1958/WS3_annual_most_used_survey_blocklist/master/w3tech_hostfile.txt

https://www.github.developerdan.com/hosts/lists/ads-and-tracking-extended.txt

https://hostfiles.frogeye.fr/firstparty-trackers-hosts.txt

https://hostfiles.frogeye.fr/multiparty-trackers-hosts.txt

https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/android-tracking.txt

https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV.txt

https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/AmazonFireTV.txt

https://v.firebog.net/hosts/Airelle-trc.txt

https://adaway.org/hosts.txt

https://v.firebog.net/hosts/AdguardDNS.txt

https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt

https://v.firebog.net/hosts/Easylist.txt

https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext

https://raw.githubusercontent.com/StevenBlack/hosts/master/data/UncheckyAds/hosts

https://www.squidblacklist.org/downloads/dg-ads.acl

https://raw.githubusercontent.com/bigdargon/hostsVN/master/hosts

https://raw.githubusercontent.com/jdlingyu/ad-wars/master/hosts

https://hosts-file.net/grm.txt

https://reddestdream.github.io/Projects/MinimalHosts/etc/MinimalHostsBlocker/minimalhosts

https://raw.githubusercontent.com/StevenBlack/hosts/master/data/KADhosts/hosts

https://raw.githubusercontent.com/StevenBlack/hosts/master/data/add.Spam/hosts

https://v.firebog.net/hosts/static/w3kbl.txt

https://v.firebog.net/hosts/BillStearns.txt

https://sysctl.org/cameleon/hosts

https://www.dshield.org/feeds/suspiciousdomains_Low.txt

https://www.dshield.org/feeds/suspiciousdomains_Medium.txt

https://www.dshield.org/feeds/suspiciousdomains_High.txt

https://www.joewein.net/dl/bl/dom-bl-base.txt

https://raw.githubusercontent.com/matomo-org/referrer-spam-blacklist/master/spammers.txt

https://hostsfile.org/Downloads/hosts.txt

https://someonewhocares.org/hosts/zero/hosts

https://raw.githubusercontent.com/Dawsey21/Lists/master/main-blacklist.txt

https://raw.githubusercontent.com/vokins/yhosts/master/hosts

http://winhelp2002.mvps.org/hosts.txt

https://hosts.nfz.moe/basic/hosts

https://raw.githubusercontent.com/RooneyMcNibNug/pihole-stuff/master/SNAFU.txt

https://ssl.bblck.me/blacklists/hosts-file.txt

https://hostsfile.mine.nu/hosts0.txt

https://v.firebog.net/hosts/Kowabit.txt

https://adblock.mahakala.is

 

Подожем немного, пока наша пихолька подгрузит в себя громадные списки доменов хлама и выходим на главную страницу (Dashboard).

Ух-ты! 3.4 млн блокируемого говнища! Ура!

7cb80e9ccf06e951a4696fbc01857d77.png

 

Ну как-то так, ребята!
Если у вас не работает какой-то сайт, то на главной странице есть список клиентов (Top Clients (total))

Ищем в нем нужного вам клиента и смотрим куда он бродит:

413267363_.thumb.png.76e40adf00097be8aa835df7164a96e5.png

Как видите - из этой панели легко можно увидеть блокируемые домены и добавить их в список нефильтруемых (Whitelist).

 

 

Последнее, что нужно сделать, это указать в настройках роутера, чтобы при раздаче DHCP он выдавал в качестве адреса DNS сервера -  именно адрес вашей пихольки.

У меня в микроте это выглядит примерно так:

1632659601_.png.5e138f9e6eb9982fa88836109c325079.png

 

 Учтите, что настройка mac-lan докера предполагает, что часть "верхних" адресов может быть занята этой созданной докером сеткой. Если только пихолька будет у вас пользоваться этой сетью докера - то проблем не будет. Но если к этой сетке когтить иные контейнеры, то могут возникнуть грабли с адресами.

Короче, это вопрос нудный, писать долго и я думаю, большинство понимают о чем речь.

upd: забыл сказать: мозила резала на ура! В хроме попробовал - оказалось много рекламы. Почистил кеш DNS хрома и системы - не помогло. Дальше разбираться не стал. Это я к тому пишу, что от браузера зависит эффективность этого мероприятия. Учитывайте!

 

Вот два дня работы системы в сети с несколькими десятками клиентов.

427810625_.thumb.png.d1dc47c389fb893da4bfc2f3f905cf15.png

Ну, вроде всё рассказал. Надеюсь, это будет полезным кому-то!
Могу лишь добавить, что в ЖЖ у меня adblock и ghostery не справлялись с рекламой. После установки пихольки рекламы в ЖЖ почти нет.

То же самое и с фишками.

Удачи! Экономьте трафик!

US Robotics 33600 - наше всё! Помним, любим, скорбим ))

 

Edited by qawsed55
лишние скрины
  • Like 1
  • Haha 1

Share this post


Link to post
Share on other sites

Немного не в тему, но если есть желание, чтобы большие братья за вами не так явно следили, то  нужно добавить зацикливание запросов в браузерах от них в никуда, во всех системах это файл hosts, в никсах лежит в /etc, в винде /Windows/System32/drivers/etc/, орфография для никсов и винды немного разная. Но самое хорошее, если есть рутованный доступ к роутеру - вкрячить туда, если нет, то во все компы и виртуалки, особенно, если вы ими пользуетесь не только в домашней сети. Да, если стоят антивирусы, то сначала добавьте этот файл в исключения, иначе он (антивирус) вернет его в исходное состояние...

Скрытый текст

127.0.0.1  ibjs.group-ib.ru
127.0.0.1  ibdb.group-ib.ru
127.0.0.1  mc.yandex.ru
127.0.0.1  an.yandex.ru
127.0.0.1  pagead2.googlesyndication.com
127.0.0.1  www.google-analytics.com
127.0.0.1  ssl.google-analytics.com
127.0.0.1  google-analytics.com
127.0.0.1  www.googletagmanager.com
127.0.0.1  ssl.googletagmanager.com
127.0.0.1  yastatic.net
 
::1  ibjs.group-ib.ru
::1  ibdb.group-ib.ru
::1  mc.yandex.ru
::1  an.yandex.ru
::1  pagead2.googlesyndication.com
::1  www.google-analytics.com
::1  ssl.google-analytics.com
::1  google-analytics.com
::1  www.googletagmanager.com
::1  ssl.googletagmanager.com
::1  yastatic.net

Скрытый текст

127.0.0.1  ibjs.group-ib.ru
127.0.0.1  ibdb.group-ib.ru
127.0.0.1  mc.yandex.ru
127.0.0.1  an.yandex.ru
127.0.0.1  pagead2.googlesyndication.com
127.0.0.1  www.google-analytics.com
127.0.0.1  ssl.google-analytics.com
127.0.0.1  google-analytics.com
127.0.0.1  www.googletagmanager.com
127.0.0.1  ssl.googletagmanager.com
127.0.0.1  yastatic.net

P.S. Для тех кто не верит...

Скрытый текст

1315203591_.thumb.png.ce85bf2fc26df132402035895b3d8831.png

 

Edited by Olegin

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.