Вспомнил первое впечатление после перехода с Symbian на Android
— в последнем без учётной записи gmail делать нечего.
По этой же причине я не смог ужиться с Win8: в ней даже локальный
аккаунт заводится не очевидно, через отказ от Live ID.
Каждый второй виджет Metro'шного интерфейса ломится в интернет для обновления
своего содержимого, а скайп не установишь, не побывав в Магазине приложений.
Мне правда не нравится онлайновые сервисы, которые я не просил.
От Майкрософта мне нужна только работа скайпа.
Предлагаемый ниже скрипт блокирует на роутере все обращения на IP-адреса,
принадлежащие Майкрософту, оставляя работоспособным только скайп.
Это два набора ipset, последовательно:
- запрещающих все IP Майкрософта,
- разрешающих обращения к 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