Wiki
Clone wikirt-n56u / RU / Использование IP set
Примеры использования IP set
В прошивку включены ядерные модули и утилиты для работы с ipset. Ниже приведён пример их использования.
Для работы примеров необходим USB-носитель с Entware и прошивка с IPset. Если скачивали стандартную сборку или не отключали ipset принудительно, всё на месте.
Блокировка входящих соединений из Китая и TOR-сети. Блокировка трафика с Microsoft
Пример описывает как…
- заблокировать входящие соединения с TOR-нод,
- заблокировать входящие соединения с Китая (дабы отсечь большинство попыток взлома SSH и PPTP),
- запретить клиентам локалки общаться с сайтами Microsoft, за исключением скайпа.
Создайте файл /opt/etc/init.d/S99_fill_ipset
со следующим содержимым:
#!/bin/sh [ "$1" = "start" ] || exit logger -t $(basename $0) 'started' LISTS=" \ TorNodes=http://list.iblocklist.com/?list=togdoptykrlolpddwbvz&fileformat=p2p&archiveformat=gz \ Microsoft=http://list.iblocklist.com/?list=xshktygkujudfnjfioro&fileformat=p2p&archiveformat=gz \ China=http://list.iblocklist.com/?list=cn&fileformat=p2p&archiveformat=gz \ " LIST_DIR='/opt/var' [ -d "$LIST_DIR" ] || mkdir -p $LIST_DIR for item in $LISTS ; do name="$(echo $item | cut -d '=' -f 1)" url="${item#$name=}" echo "Processing $name list..." [ -f "$LIST_DIR/$name.gz" ] || wget -O "$LIST_DIR/$name.gz" "$url" for net in $(zcat $LIST_DIR/$name.gz | cut -d ':' -f 2 | grep -E '^[-0-9.]+$') ; do ipset add $name $net done done
chmod +x /opt/etc/init.d/S99_fill_ipset
/opt/etc/init.d/S10iptables
, приведя его к виду:
#!/bin/sh case "$1" in start|update) # add iptables custom rules [ -d '/opt/etc' ] || exit 0 iptables -I INPUT -m set --match-set TorNodes src -j DROP iptables -I INPUT -m set --match-set China src -j DROP iptables -I FORWARD -m set --match-set Microsoft src,dst -j DROP iptables -I FORWARD -m set --match-set Skype src,dst -j ACCEPT ;; stop) # delete iptables custom rules echo "firewall stopped" ;; *) echo "Usage: $0 {start|stop|update}" exit 1 ;; esac
Персонализация > Скрипты
в поле Выполнить после полного запуска маршрутизатора:
добавьте:
#!/bin/sh modprobe ip_set_hash_ip modprobe ip_set_hash_net modprobe xt_set ipset -N TorNodes nethash hashsize 4096 ipset -N China nethash hashsize 2048 ipset -N Microsoft nethash ipset -N Skype iphash
LAN > DHCP
, в поле Пользовательский файл конфигурации "dnsmasq.conf"
добавьте:
ipset=/skype.net/Skype
После загрузки роутер создаёт несколько пустых наборов ipset и начинает использовать их в правилах файервола. Пустые наборы начинают заполняться уже в процессе дальнейшей работы. Контент для трёх из них — TorNodes, China и Microsoft, выкачивается из общедоступных источников, а сет Skype заполняется по мере обращений к доменам, заканчивающим на skype.com.
dnsmasq не запустится, если нет сета Skype. В системном логе можно видеть, что он запустится только со второй попытки.
Выборочное использование OpenVPN для обхода блокировок ресурсов
Решение позволяет использовать VPN-соедиенение исключтельно для списка блокируемых ресурсов. При обращении к любым другим ресурсам будет использоваться привычное провайдерское соединение. Для реализации примера необходимо иметь настроенное соединение OpenVPN.
Подробные шаги по настройке изложены здесь.
Updated