View RSS Feed

ryzhov_al

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

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

Предлагаемый ниже скрипт блокирует на роутере все обращения на IP-адреса, принадлежащие Майкрософту, оставляя работоспособным только скайп. Это два [URL="http://wl500g.info/showthread.php?30870"]набора ipset[/URL], последовательно:
[LIST=1][*]запрещающих все IP Майкрософта,[*]разрешающих обращения к IP-адресам, необходимым для работы скайпа.[/LIST]
Формируем список подсетей Майкрософта:
[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[/CODE]
Формируем список ip-адресов, необходимых для работы скайпа:
[CODE]opkg install bind-dig bash[/CODE]
[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[/CODE]
Загружаем необходимые модули ipset:
[CODE]for module in ip_set ip_set_nethash ip_set_iphash ipt_set
do
insmod $module
done[/CODE]
Заводим сеты и последовательно вносим в них сформированные списки:
[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[/CODE]
Осталось добавить правила iptables для блокировки первого списка и разблокировки второго:
[CODE]iptables -I FORWARD -m set --set Microsoft src,dst -j DROP
iptables -I FORWARD -m set --set Skype src,dst -j ACCEPT[/CODE]

Приведённый выше синтаксис 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[/CODE]

Готовые скрипты для работы с сохранением настроек и автоматизированным применением этих правил после перезагрузки роутера\переподключения 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[/CODE]
Categories
Uncategorized

Comments