View RSS Feed

ryzhov_al

Неуёмное желание Windows 8 лезть в сеть

Rate this Entry
Вспомнил первое впечатление после перехода с Symbian на Android — в последнем без учётной записи gmail делать нечего. По этой же причине я не смог ужиться с Win8: в ней даже локальный аккаунт заводится не очевидно, через отказ от Live ID. Каждый второй виджет Metro'шного интерфейса ломится в интернет для обновления своего содержимого, а скайп не установишь, не побывав в Магазине приложений. Мне правда не нравится онлайновые сервисы, которые я не просил. От Майкрософта мне нужна только работа скайпа.

Предлагаемый ниже скрипт блокирует на роутере все обращения на IP-адреса, принадлежащие Майкрософту, оставляя работоспособным только скайп. Это два набора ipset, последовательно:
  1. запрещающих все IP Майкрософта,
  2. разрешающих обращения к IP-адресам, необходимым для работы скайпа.

Формируем список подсетей Майкрософта:
Code:
wget -q -O - "http://list.iblocklist.com/?list=bt_microsoft&fileformat=p2p&archiveformat=gz" | \
    gunzip | cut -d: -f2 | grep -E "^[-0-9.]+$" > microsoft.lst
Формируем список ip-адресов, необходимых для работы скайпа:
Code:
opkg install bind-dig bash
Code:
#!/opt/bin/bash

for ip in $(for i in {0..20} ; do dig +short dsn$i.d.skype.net; done | sort -u | grep -E "^[1-9]")
do
  echo $ip >> skype.lst
done
Загружаем необходимые модули ipset:
Code:
for module in ip_set ip_set_nethash ip_set_iphash ipt_set
do
    insmod $module
done
Заводим сеты и последовательно вносим в них сформированные списки:
Code:
ipset -N Microsoft iptreemap
for IP in $(cat microsoft.lst)
do
    ipset -A Microsoft $IP
done

ipset -N Skype iptreemap
for IP in $(cat skype.lst)
do
    ipset -A Skype $IP
done
Осталось добавить правила iptables для блокировки первого списка и разблокировки второго:
Code:
iptables -I FORWARD -m set --set Microsoft src,dst -j DROP
iptables -I FORWARD -m set --set Skype src,dst -j ACCEPT
Приведённый выше синтаксис ipset адаптирован для asuswrt-merlin, для энтузиасткой прошивки последние две строчки будут выглядеть так:
Code:
iptables -I FORWARD -m set --match-set Microsoft src,dst -j DROP
iptables -I FORWARD -m set --match-set Skype src,dst -j ACCEPT
Готовые скрипты для работы с сохранением настроек и автоматизированным применением этих правил после перезагрузки роутера\переподключения WAN приведены в архиве ниже. Для его использования необходимо в asuswrrt-merlin разрешить JFFS и выполнить:
Code:
сd /jffs
wget -O - http://files.ryzhov-al.ru/Routers/Block%20MS%2C%20enable%20Skype/block_ms_not_skype.tgz | tar -xvz
Categories
Uncategorized

Comments