Блокиране на сайтове/хостове посредством DD-WRT

Ако пускате тема за алтернативен фърмуер, задължително направете и друга тема с линк към тази в раздела за съответната марка рутер.
Публикувай отговор
Аватар
error_404
Глобален модератор
Мнения: 350
Регистриран на: 22 Дек 2012 10:58

Блокиране на сайтове/хостове посредством DD-WRT

Мнение от error_404 »

В тази тема, която предполагам, че ще е интересна ще използваме малко техники за по напреднали потребители и/или ентусиасти и последствията от незнаене си е изцяло за Ваша сметка ;)

В основата на скрипта лежи идеята за блокиране на някои хостове/услуги на ниво рутер с цел по голяма производителност или ако искате с цел да спазваме иранският шериат ;)
Най голямото предимство от използваните техники е ограничаване на рекламата, да точно онези мигащи и святкащи банери, които предполагам много от Вас ненавиждат ;)

Ще бъдат разгледани няколко положения описани в документацията на DD-WRT или полуавторски скриптове и нахвърляни идеи ;)
(вж. http://www.dd-wrt.com/wiki/index.php/Ad_blocking)

//ЗА ПРЕВОД
deep Unslaver DD-WRT Script v 1.0
The meaning of the script is based on custom HOSTS file loaded into the router and loading/refreshing it every Friday at 23:45 which can be used to block AD servers or use our own custom based HOSTS.
Ако желаем да използваме собствен HOSTS файл, което горещо препоръчвам, то най добре следвайте стъпките посочени тук.

Препоръчително си създаваме HOSTS файл и си го качваме на наш сървър.
(ако ме питате защо, ами защото аз специално имам и други хостове освен Facebook, Twitter, etc.), които подлежат на блокиране ;) )

Посочената стъпка може да се избегне използвайки посоченият по-долу в края на статията код, който се слага в Additional DNSMasq Options

hosts.txt
стандартна ANSI кодировка - *

Код за потвърждение: Избери целия код

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost
#	error_404 presents MegaBlocker ACTA/SOPA/PIPA Unslaver
#	No Pay[in] No Gain
#
# Block Facebook Servers
#
127.0.0.1 static.ak.fbcdn.net
127.0.0.1 www.static.ak.fbcdn.net
127.0.0.1 facebook.com
127.0.0.1 www.facebook.com
127.0.0.1 login.facebook.com
127.0.0.1 www.login.facebook.com
127.0.0.1 fbcdn.net
127.0.0.1 www.fbcdn.net
127.0.0.1 fbcdn.com
127.0.0.1 www.fbcdn.com
127.0.0.1 static.ak.connect.facebook.com
127.0.0.1 www.static.ak.connect.facebook.com
127.0.0.1 m.facebook.com
127.0.0.1 touch.facebook.com
127.0.0.1 connect.facebook.net
127.0.0.1 api-read.facebook.com
127.0.0.1 app.facebook.com
127.0.0.1 apps.facebook.com
127.0.0.1 api.facebook.com
127.0.0.1 iphone.facebook.com
127.0.0.1 *.channel40.facebook.com
127.0.0.1 *.channel61.facebook.com
127.0.0.1 blog.facebook.com
127.0.0.1 upload.facebook.com
127.0.0.1 b.static.ak.fbcdn.net
Самият HOSTS може да си модифицирате по свой образ и подобие вж. най долу ;)

Описание какво точно прави скрипта:
- Скрипта създава временна директория /tmp/dlhosts
- Командата и сакралните символи: tr -d '\015\032'
те премахват ^M (carriage return) от края на всеки ред на сваленият HOSTS файл. (*)
- Сваля актуална версия на "нашият" HOSTS файл.
- Определя права за писане и четене на самият HOSTS файл
- Указва на cron всеки петък в 23:45 да изпълнява посоченият скрипт.
След влизане в контролният панел на рутера активираме последователно

1. в Basic Setup
Use DNSMasq for DHCP - ЧЕКИРАНО
Use DNSMasq for DNS - ЧЕКИРАНО
DHCP-Authoritative - ЧЕКИРАНО

2. в Services в секция DNSMasq
DNSMasq - ЧЕКИРАНО
Local DNS - ЧЕКИРАНО

За следващата точка има много спорове, кое е по правилното решение, за което аз прилагам и двете.
(вж. най долу статията)

DNSMasq daemon (the process that is responsible for DNS-name to IP translations) which will be used directly by default. As such, incorrect syntax here will cause the service to crash and leave the router unable to resolve IP addresses for domain names

3. Добавете в допълнителното поле на Additional DNSMasq Options следното:

addn-hosts=/tmp/dlhosts

или използвайки посоченият по-долу в края на статията код, който се слага в Additional DNSMasq Options

4. Погледнете, че cron е ВКЛЮЧЕН
Administration > cron ENABLED

Тази точка може да се избегне използвайки посоченият по-долу в края на статията код, който се слага в Additional DNSMasq Options

5. Отидете на Administration > Commands, после копирайте и поставете (copy/paste) скрипта в посоченото поле и впоследствие кликнете върху "Save StartUp"

blocker script

Код за потвърждение: Избери целия код

logger WAN UP Script Executing 
sleep 5 
test -s /tmp/dlhosts 
if [ $? == 1 ] ; then 
echo -e "#!/bin/sh\nwget -O - [B]http://domain.com/hosts.txt[/B] | grep 127.0.0.1 | tr -d '\015\032' | sed -e '2,\$s/127.0.0.1/0.0.0.0/g' -e 's/[[:space:]]*#.*$//' > /etc/hosts\nlogger DOWNLOADED http://domain.com/hosts.txt\nkillall -1 dnsmasq" > /tmp/dlhosts 
chmod 777 /tmp/dlhosts 
/tmp/dlhosts 
fi
ln -s /tmp/dlhosts /etc/hosts
echo "45 23 * * 5 root /tmp/dlhosts" >> /tmp/crontab
Тази точка може да се избегне използвайки посоченият по-долу в края на статията код, който се слага в Additional DNSMasq Options

6. Отиваме на Administration > Commands, отново копираме и поставяме (copy/paste) скрипта в полето и клик върху бутон "Save Firewall"

Код за потвърждение: Избери целия код

/tmp/dlhosts
Тази точка може да се избегне използвайки посоченият по-долу в края на статията код, който се слага в Additional DNSMasq Options

7. Отиваме на таб NAT / QoS > UPnP
Уверете се че услугата UPnP е в режим DISABLE

8. Отиваме на Administration > Management
Уверете се че услугата JFFS2 е в режим ENABLE
[HIDE]The Journaling Flash File System (JFFS) allows you to have a writable Linux File System on a DD-WRT enabled router. It is used to store user programs like Ipkg and data into otherwise inaccessible flash memory. This allows you to save custom configuration files, host custom Web pages stored on the router and many other things not capable without JFFS. [/HIDE]

Тази точка може да се избегне използвайки посоченият по-долу в края на статията код, който се слага в Additional DNSMasq Options

9. На всички клиентски машини да се изпълни следната команда:
Start > CMD [Run As Administrator]
ipconfig /flushdns [ENTER]

10. Отворете който и да е браузер и опитайте да достъпите посочените сайтове или да заредите с ads такива, и ако изпозвате HOSTS за да блокирате рекламите на ниво рутер ;)

Селектирани ads сървърлистове, които правят защитата достатъчно гъвкава и добра.
YOGO
MVPS

=================================================================================================
Допълнително да опиша посредством IPTABLES + за Mikrotik и може би Tomato ;)

IPTABLES и DD-WRT HowTo
http://www.dd-wrt.com/wiki/index.php/Iptables_command

Genius at work evil code ;)

Код за потвърждение: Избери целия код

iptables -I INPUT -i br0 -p tcp --dport facebook.com/profile.php?id=[B][COLOR=#ff0000]XXXXXXXX[/COLOR][/B] -j REJECT
iptables -I INPUT -i br0 -p tcp --dport facebook.com/username -j REJECT
iptables -I INPUT -i br0 -p tcp --dport m.facebook.com -j REJECT
Със знака X отбелязваме номера на профила и потребителското име, като основа за блокиране на профил ;)
(брех мама му хем фейсбук работи, хем не мога да си вляза в профила)
:B

Ако желаем да блокираме WiFi и LAN или само LAN или само WiFi то във firewall за IPTABLES трябва да сменим интерфейса в командата следвайки логиката:

br0 = 4 LAN порта и WiFi заедно
vlan0 = Само 4 LAN порта
eth1 = Само WiFi порт

Да добавя и информация за DD-WRT и Pixelserv

Pixelserv - изключително малък и компактен уеб-сървър, който генерира картинка с размер 1px X 1px и я сервира, като вторичен HTTP сървър от рутера, като при заявка с определени параметри, които впоследствие ще опишем и конфигурираме да може да връща в отговор празна картинка с описаният по-горе размер.

Additional DNSMasq Options - Блокират се следните услуги описани по-долу.

Посочените тук сайтове не претендират за 100% актруалност и достоверност. Ако някоя услуга спре да Ви работи, то най добре проверете дали всичко е направено, като хората.
Както споменах по-горе DNSMasq има възможност вместо писането на скрипт да използваме твърдо зададени хостове в рутера БЕЗ използването на външен HOSTS файл.
в точка 3. вместо:

addn-hosts=/tmp/dlhosts

добавяме всичко описано по-долу и информативно кратко описание какво се блокира преди самият код!

## Блокиране на реклами от Google, MSN Messenger, Facebook, YouTube and Yahoo messenger

copy/paste копирайте/поставете

Код за потвърждение: Избери целия код

address=/www.googleadservices.com/127.0.0.1
address=/googleadservices.com/127.0.0.1
address=/partner.googleadservices.com/127.0.0.1
address=/googleads.g.doubleclick.net/127.0.0.1
address=/googlesyndication.com/127.0.0.1
address=/syndicate.googlesyndication.com/127.0.0.1
address=/syndicate2.googlesyndication.com/127.0.0.1
address=/syndicate.google.com/127.0.0.1
address=/syndicate2.google.com/127.0.0.1
address=/adwords.google.com/127.0.0.1
address=/google-analytics.com/127.0.0.1
address=/ssl.google-analytics.com/127.0.0.1
address=/www.google-analytics.com/127.0.0.1
address=/pagead2.googlesyndication.com/127.0.0.1
address=/pagead.googlesyndication.com/127.0.0.1
address=/adservices.google.com/127.0.0.1
address=/imageads.googleadservices.com/127.0.0.1
address=/imageads1.googleadservices.com/127.0.0.1
address=/imageads2.googleadservices.com/127.0.0.1
address=/imageads3.googleadservices.com/127.0.0.1
address=/imageads4.googleadservices.com/127.0.0.1
address=/imageads5.googleadservices.com/127.0.0.1
address=/imageads6.googleadservices.com/127.0.0.1
address=/imageads7.googleadservices.com/127.0.0.1
address=/imageads8.googleadservices.com/127.0.0.1
address=/imageads9.googleadservices.com/127.0.0.1
address=/apps5.oingo.com/127.0.0.1
address=/oingo.com/127.0.0.1
address=/www.oingo.com/127.0.0.1
address=/www.appliedsemantics.com/127.0.0.1
address=/service.urchin.com/127.0.0.1
address=/ads.chitika.net/127.0.0.1
address=/ads1.chitika.net/127.0.0.1
address=/blogads.chitika.net/127.0.0.1
address=/ca.chitika.net/127.0.0.1
address=/mm.chitika.net/127.0.0.1
address=/scripts.chitika.net/127.0.0.1

address=/advertising.microsoft.com/127.0.0.1
address=/analytics.live.com/127.0.0.1
address=/msads.net/127.0.0.1
address=/ads.msn.com/127.0.0.1
address=/ads1.msn.com/127.0.0.1
address=/rad.msn.com/127.0.0.1
address=/advertising.microsoft.com/127.0.0.1
address=/view.atdmt.com/127.0.0.1
address=/rad.live.com/127.0.0.1
address=/live.rads.msn.com/127.0.0.1
address=/microsoft.com/127.0.0.1

address=/creative.ak.fbcdn.net/127.0.0.1
address=/creative.ak.facebook.com/127.0.0.1
address=/static.ak.fbcdn.net/127.0.0.1
address=/www.facebook.com/127.0.0.1
address=/facebook.com/127.0.0.1
address=/www.static.ak.fbcdn.net/127.0.0.1
address=/login.facebook.com/127.0.0.1
address=/www.login.facebook.com/127.0.0.1
address=/fbcdn.net/127.0.0.1
address=/www.fbcdn.net/127.0.0.1
address=/fbcdn.com/127.0.0.1
address=/www.fbcdn.com/127.0.0.1
address=/static.ak.connect.facebook.com/127.0.0.1
address=/www.static.ak.connect.facebook.com/127.0.0.1
address=/m.facebook.com/127.0.0.1
address=/touch.facebook.com/127.0.0.1
address=/connect.facebook.net/127.0.0.1
address=/api-read.facebook.com/127.0.0.1

address=/doubleclick.net/127.0.0.1
address=/content.codelnet.com/127.0.0.1
address=/ero-advertising.com/127.0.0.1
address=/ads.ero-advertising.com/127.0.0.1
address=/data.ero-advertising.com/127.0.0.1
address=/layerads.ero-advertising.com/127.0.0.1
address=/s0.2mdn.net/127.0.0.1
address=/2mdn.net/127.0.0.1
address=/content.yieldmanager.com/127.0.0.1
address=/adserver.yahoo.com/127.0.0.1
address=/insider.msg.yahoo.com/127.0.0.1
address=/view.atdmt.com/127.0.0.1
address=/secure-uk.imrworldwide.com/127.0.0.1

address=/adserver.yahoo.com/127.0.0.1
address=/ad.yieldmanager.com/127.0.0.1
address=/insider.msg.yahoo.com/127.0.0.1
В посоченият тук случай реално част от точките описани по-горе отпадат [4, 5, 6 и 8;) както и създаването и/или използванео на външен HOSTS файл.

Да допълня с новите MSN попълнения от "жътвата" тези дни ;)

Код за потвърждение: Избери целия код

c.msn.com
contacts.live.com
contacts.msn.com
gateway.messenger.hotmail.com
messenger.hotmail.com
messenger.live.com
messenger.msn.com
msgr.hotmail.com
sqm.microsoft.com
webmessenger.msn.com 
Изображение
"За мен най-лошото в България е чудесното наслаждение, което тук имат хората да се преследват един друг и да развалят един другиму работата."
К.Иречек, 13.12.1881

Аватар
error_404
Глобален модератор
Мнения: 350
Регистриран на: 22 Дек 2012 10:58

Re: Блокиране на сайтове/хостове посредством DD-WRT

Мнение от error_404 »

Допълвам темата с информация за Pixelserv AdBlock за DD-WRT и начина на инсталация и настройка!

Pixelserv - изключително малък и компактен уеб-сървър, който генерира картинка с размер 1px X 1px и я сервира, като вторичен HTTP сървър от рутера, като при заявка с определени параметри, които впоследствие ще опишем и конфигурираме да може да връща в отговор празна картинка с описаният по-горе размер.

Информация и HowTo
http://www.howtogeek.com/51477/how-to-r ... on-dd-wrt/

Кода в Git:
https://github.com/aviadra/anti-ads-pack

В приложените файлове са огледало на същият пакет за активиране и настройка на Pixelserv за DD-WRT и моля да четете внимателно преди да предприемате каквито и да е било настройки.

DNSMasq примерни настройки, които при НЕправилна употреба ИЛИ могат да Ви вкарат в затвора ИЛИ да Ви направят богат ;)

Отиваме на Services > Services > DNSMasq и въвеждаме следното
(информацията посочена тук е с чисто образователна цел и няма гаранция за 100% достоверност. IP адресите са сменени и не отговарят на описанието)

address=/sub.domain.com/69.63.189.11 - Ще насочи поддомейн sub.domain.com към даденото IP
address=/.domain.com/72.21.211.176 - Ще насочи всички поддомейн в domain.com към даденото IP
address=/domain.com/65.55.175.254 - Ще насочи домейна domain.com към даденото IP
address=/.com/67.195.160.76 - Ще насочи всички *.COM домейни към даденото IP
address=/#/74.125.224.81 - Ще насочи всички НЕОПИСАНИ разширения на домейни към даденото IP

address=/.net/192.168.1.150 - Ще насочи всички *.NET домейни към даденото IP от LAN мрежата (вътрешен сървър)
address=/.gov/200.201.202.203 - Ще насочи всички *.GOV домейни към даденото IP
address=/.info/100.101.102.103 - Ще насочи всички *.INFO домейни към даденото IP

След прилагане на настройките както се и очаква посредством nslookup получаваме и съответният отговор:

109.169.56.223 <> nslookup hello.sub.domain.com
69.63.189.11 <> nslookup sub.domain.com
72.21.211.176 <> nslookup hello.domain.com
65.55.175.254 <> nslookup domain.com
67.195.160.76 <> nslookup example.com
74.125.224.81 <> nslookup example.org
Прикачени файлове
anti-ads-pack-for-dd-wrt-v2.3b.zip
(14.54 KiB) Свалено 258 пъти
Изображение
"За мен най-лошото в България е чудесното наслаждение, което тук имат хората да се преследват един друг и да развалят един другиму работата."
К.Иречек, 13.12.1881

Публикувай отговор