Это старая версия документа!
Роскомнадзор. Блокировка по IP адресу в Linux
После того как получена выгрузка с РКН, будет доступен следующий файл - ip_file.list, который содержит IP адреса заблокированных ресурсов. Скрипт будет использовать его для составления списка в ipset.
Как настроить получение выгрузки от РосКомНадзора - ознакомится можно здесь.
Настройка
1. Скачайте свежий дистрибутив, в папке /DISTR/RKN - rkn-ipset.php скопируйте его в /var/www/mikbill/admin/app/etc/roskomnadzor
2. Настройте авторизацию по ключу между серверами - ознакомится можно здесь.
3. Проверьте в справочнике "Сервера NAS" следующие настройки:
3.1. Логин пользователя имеющего права суперпользователя.
3.2. Включить "использование SSH" для управления сервером доступа.
3.3. Тип NAS - должен быть один из трех видов :
- Linux PPP
- Linux Accel-IPoE
- Linux Accel-PPP
4. Измените в rkn-ipset.php в первой строке переменную $remote_dir, по умолчанию указывается папка /root. В указанную папку на сервере будет копироваться файл для ipset. Укажите здесь домашнюю директорию пользователя, от имени которого настроена авторизация по ключу.
5. Проверка работы скрипта:
- Перейдите в каталог где находится скрипт и выгрузка с РосКомНадзора. И запустите скрипт rkn-ipset через интерпретатор php.
cd /var/www/mikbill/admin/app/etc/roskomnadzor php rkn-ipset.php
- У Вас должен в текущем каталоге появится файл rkn_iplist.scp, который был скопирован и выполнен на серверах доступа.
cat rkn_iplist.scp add RKN 109.69.58.58 add RKN 94.76.213.163 add RKN 92.48.118.2 add RKN 192.188.242.125 add RKN 209.237.150.20 ...............
- На сервере доступа проверьте наличие списка ipset и адреса. По умолчанию список имеет имя - RKN, изменить можно в 3-ей строке, переменная - name_ipset.
ipset -L Name: RKN Type: hash:ip Header: family inet hashsize 2048 maxelem 65536 Size in memory: 72664 References: 0 Members: 104.28.30.3 212.224.113.239 104.28.9.32 104.27.179.58 ........................
6. Созданный список теперь добавим в iptables
iptables -A INPUT -m set --match-set RKN src -j DROP
7. Сохраните правила iptables.
8. Сохраните правила ipset:
8.1. Для этого на NAS сервере создайте папку:
mkdir /etc/ipset
8.2. В скрипте поправьте две переменные либо оставьте как есть:
$ipset_remote_dir="/etc/ipset/" - директория файла для ipset $ipset_save_file="ipset-save" - имя файла для ipset
8.3. В rc.local добавьте:
/usr/sbin/ipset --restore </etc/ipset/ipset-save
Теперь, при загрузке сервера, правила будут загружаться автоматически. Обновление списков настройте по Cron