Ручной ввод чёрных списков в transmission

Не сложно

Месяц-полтора назад прошла волна по поводу слежки за тем, кто и что качает. Большая часть была то ли фейковая вообще, то ли качали что-то такое (как в моём случае), что следильщиков не интересует. Но осадочек остался. Захотелось, и не мне одному, активировать чёрный список в Transmission. Да чтобы перезагрузку пережило, что сделать не вдруг. Сегодня будетпростой вариант, ручной.

Прим Камрад Максим Чернов поделился вариантом с автоматическим апдейтом, из которого, собственно и взят единственный не очевидный пункт сегодняшней инструкции. Но тот вариант у меня пока в к публикации не готов. Но это не повод вообще не включать чёрные списки.

1. Выбираем чёрный список. Гугл в помощь, обычно пишут о таком ресурсе. iblocklist.com публикует множество разных списков для разных целей. Например по странам или список учебных организаций, что для нашей нужды ни о чём. Список level1 по описанию нравится.

Вот только их источник, bluetack.co.uk лежит и не пингуется, причём судя по гуглингу — уже давно. То есть список не обновляется и стоит поискать другой.
UPD от 26 февраля 2017 В личку мне написал камрад, который пользует этот список.
Скачал нынешний и сохранил, дата/время файла: 24.02.2014/4:44

Через пару дней проверю опять.

Скачал, сохранил: 26.02.2014/10:03, стал больше на 13 записей.
Обновляется, можно использовать

/UPD

Я нагуглил рекомендации (раз, два) john.bitsurge.net/public/biglist.p2p.gz
Скачал, в архиве 26 мегабайт текста, действительно список IP адресов. Знать бы насколько актуальный и вообще к делу относящийся 🙂

Но, за не имением лучшего, настроим на него.

2. Создадим папку для чёрных списков. Можно руками,но давайте через вебгуй
Идём в вебгуй transmission (в Transmission Remote GUI тоже есть такая возможность)
Services > BitTorrent, URL, самая нижняя строка

Жмём гаечный ключ в панели, она в нижнем левом углу окна

Открывается диалог настроек transmission


Идём на вкладку Peers и ставим галку на Enable blocklist
Теперь я на всякий случай щёлкаю другую вкладку, speed, к примеру, и возвращаюсь.

если теперь презапустить сервис transmission в Services > BitTorrent, то он создаст в своей конфигурационной папке подпапку blocklists
Для примера в моей системе получилось

nas4free sys/ root~$ ls -la /mnt/WD2T/Files/start/sys/
total 207
drwxrwxrwx 7 www www 13 Feb 24 01:15 ./
drwxrwxr-x 3 www www 5 Jul 15 2016 ../
drwxr-xr-x 2 transmission www 2 Feb 24 01:09 blocklists/
-rw------- 1 transmission www 928 Feb 24 01:09 dht.dat
drwxrwxrwx 2 www www 119 Feb 24 01:15 resume/
-rw------- 1 transmission www 2174 Feb 24 01:09 settings.json
-rw------- 1 transmission www 166 Feb 24 01:15 stats.json
drwxrwxrwx 2 www www 87 Feb 23 01:16 torrents/
-rw-r--r-- 1 root www 2404 Mar 18 2016 tr.log
-rw-r--r-- 1 transmission www 249 Feb 23 02:16 update_blocklists.log

3. После перезапуска transmission снова идём в его вебгуй, в настройки.
Вносим http://john.bitsurge.net/public/biglist.p2p.gz в строку
Жмём кнопку Update

Если всё OK, то ненадолго появится надпись Updating и, затем, справа внизу надпись, что теперь в списке столько-то правил
Если что-то не так, например http в начале забыли — то вокруг строки будет красная рамочка.

Ура, transmission принял чёрный список!

4. Но есть проблема. После рестарта NAS галка на Enable Blocklist исчезнет. И даже редактирование json конфига transmission не поможет. Но камрад Камрад Максим Чернов посоветовал решение

4.1 Идем в веб-морду: System|Advanced|rc.conf и добавляем новую запись:
transmission_blocklist -> YES -> Transmission blocklist enable
(формат, напомню, параметр, значение, опциональный комментарий)

Почему так? Логика /etc/rc.d/transmission такова, что именно эту опцию он затирает в settings.json при перезагрузке системы (а значение по умолчанию принимает равным FALSE), но может прочесть эту опцию из общего rc.conf

4.2 Перезагружаем Nas4Free (самое простое решение, т.к. settings.json обновится автоматически).

4.3 После загрузки логинимся в шелл и командой «ps ax -w -w» убеждаемся, что Transmission загрузился с поддержкой блоклистов. Должны увидеть в конце вывода следующую надпись: «—blocklist» вместо «—no-blocklist». В моём случае

nas4free ~/ root~$ ps ax -w -w | grep transmission
2485
- Ss 0:07.41 /usr/local/bin/transmission-daemon --allowed *.*.*.*
--no-auth --download-dir /mnt/WD2T/Files/Download --port 9091
--config-dir /mnt/WD2T/Files/start/sys --peerport=26789 --portmap
--watch-dir /mnt/WD2T/Files/start --no-incomplete-dir --blocklist

Бинго!

Автоматическое обновление чёрных списков в transmission

Намедни мы настроили transmission понимать черный список и не терять его при рестарте. Сегодня для альтернативно ленивых — автоматизация обновления этого чёрных списков, в том числе из нескольких источников.

1. Настраиваем трансмишн на работу с черными списками как описано ранее

2. Выясняем папку где лежит конфиг. Для этого
Смотрим в Services > BitTorrent
параметр Configuration directory
(напоминаю, мы его давным-давно задавали руками)
В моем случае /mnt/WD2T/Files/start/sys

3. К сожалению, ЖЖ корёжит коды, а яндекс не даёт долгоживущих прямых ссылок, так что здесь слегка через париЖ .
Качаем скрипт blocklists_updater.sh с моего яндекс диска
https://yadi.sk/d/Pdkbrzpv3EryDQ
Переносим на NAS, например в папку Медиа. А оттуда — в созданную в подпапку blocklists папки из п 2
Задаём права и владельца. Хоть это и скрипт, права на исполнения давать не считаю нужным, будем вызывать явным образом

nas4free sys/ root~$ cp -a /mnt/Pool/Media/blocklists_updater.sh /mnt/WD2T/Files/start/sys/blocklists
nas4free sys/ root~$ cd /mnt/WD2T/Files/start/sys/blocklists
nas4free blocklists/ root~$ chown transmission:www blocklists_updater.sh
nas4free blocklists/ root~$ chmod 666  blocklists_updater.sh
nas4free blocklists/ root~$ ls -la
total 3358
drwxr-xr-x  2 transmission  www        4 Mar  1 22:35 ./
drwxrwxrwx  7 www           www       13 Mar  1 22:32 ../
-rw-rw-rw-  1 transmission  www  3280728 Feb 24 01:23 blocklist.bin
-rw-rw-rw-  1 transmission  www     3789 Mar  1 22:29 blocklists_updater.sh

3. редактируем скрипт blocklists_updater.sh

nas4free blocklists/ root~$ nano blocklists_updater.sh

Здесь параметр в 9 строке надо указать имя вашей конфигурационной папки (из п 2).
В моём случае 8 и 9 строки

#Path configuration
folderConfigTransmission=/mnt/WD2T/Files/start/sys

Выходим из nano с сохранением (Ctrl-X, Y, Enter)

4. Список блоклистов скрипт читает из файла list_blocklist, расположенного в конфигурационной папке.
При желании что-то изменить можете заполнить его по шаблону: LIST_NAME AUTHOR FILENAME_AFTERDOWNLOAD BLOCKLIST_URL
Списков в файле может быть несколько — трансмишн сам при нужде должен склеить. Я использую тот же список, что в ручном варианте.

В результате у меня содержимое файлика выглядит так:

JohnBitsurge JohnBitsurge biglist.gz «http://john.bitsurge.net/public/biglist.p2p.gz»

Кладём эту строку в этот файл,
nas4free blocklists/ root~$ cd ..
nas4free sys/ root~$ nano list_blocklist

Выходим из nano с сохранением (Ctrl-X, Y, Enter)
Задаём права-владельца
nas4free sys/ root~$ chown transmission:www list_blocklist
nas4free sys/ root~$ chmod 666 list_blocklist

5. Давайте запустим наш скрипт с полными путями, как будем запускать в кроне
/bin/sh /mnt/WD2T/Files/start/sys/blocklists/blocklists_updater.sh

В результате нескольких запусков в логе вижу
nas4free sys/ root~$ cat update_blocklists.log
[Wed Mar  1 23:03:03 MSK 2017] Update found and downloaded for: JohnBitsurge (JohnBitsurge)
[Wed Mar  1 23:03:57 MSK 2017] No update for: JohnBitsurge (JohnBitsurge)
[Wed Mar  1 23:04:02 MSK 2017] No update for: JohnBitsurge (JohnBitsurge)

То есть первый раз файл загрузился, далее скрипт проверяет оставшийся неизменным размер и не грузит. Если размер изменится, скрипт должен его загрузить и  рестартовать transmission. Убедимся в этом со временем. Но для этого

6. Добавляем через веб-морду наш скриптик в крон от пользователя root (к сожалению, от transmission в nas4free не удаётся рестартовать одноимённый сервис 🙁 ). Я запускаю его раз в сутки, но можно и раз в неделю/месяц.

На картинке я вызываю скрипт ежедневно в 02:05

Жмём Add, затем Apply changes
Затем вернуться к редактированию скрипта и прогнать скрипт, нажав кнопку Run Now
И взглянуть в лог как выше.

UPD от 05 марта 2017
Вроде работае, обновления выходят, скрипт их качает

nas4free sys/ root~$ cat update_blocklists.log
(…)
[Thu Mar  2 02:05:01 MSK 2017] No update for: JohnBitsurge (JohnBitsurge)
[Fri Mar  3 02:05:09 MSK 2017] Update found and downloaded for: JohnBitsurge (JohnBitsurge)
[Fri Mar  3 02:05:10 MSK 2017] No update for: JohnBitsurge (JohnBitsurge)
[Sat Mar  4 02:05:10 MSK 2017] Update found and downloaded for: JohnBitsurge (JohnBitsurge)
[Sat Mar  4 02:05:10 MSK 2017] No update for: JohnBitsurge (JohnBitsurge)
сейчас пишет что 757 944 правил /UPD

Скрипт допилил камрад Максим Чернов на основе ветки из оффрума

Источник