Роскомнадзор. Блокировка по 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

  • billing/howto/rkn_ipset.txt
  • Последние изменения: 3 лет назад
  • — dh