DD-WRT Whitelist

Дали ще е достатъчна толкова RAM за станция? Ех, този 132 колонен текстов режим! И още...
Отговори
Потребителски аватар
stoar08
Мнения: 1548
Регистриран: 09-11-2004 08:15
Име: Стоян Арабаджиев
Местоположение: Самоков

DD-WRT Whitelist

Мнение от stoar08 » 09-03-2012 17:34

Понеже сме го обсъждали многократно (най-вече с morphieus) и всеки път достигаме до извод от вида 'не може да не може', а вчера най-накрая попаднах на обект, в който нямам друго грамотно решение, намерих удобен начин и възнамерявам да го споделя.
Из интернет фигурира един официален начин, чрез iptables, който обаче има косур - правилата се resolve статично по време на инициализация. За нормални сайтове (unrealsoft.bg, който не си сменя ip address почти никога), това не е проблем, но за Windows Update (поне мойта най-честа болежка е с него) - тази хватка не минава.
Как, тогава? Ами не е прекалено приятно, но е сравнително чисто.
1 Ползвате dnsmasq за DNS
2 В допълнителна конфигурация на dnsmasq добавяте следните неща

Код: Избери всички

server=/microsoft.com/8.8.8.8
server=/windowsupdate.com/8.8.8.8
no-resolv
Имате по 1 ред за всеки разрешен domain, на който му задавате през кой DNS да се resolve. Ограничение по принцип няма, но над 1024 байта няма да успеете да запишете в полето (ако на някой реално му трябва - и за това 'има начин', но е с 1 идея по-дълъг за настройка) .Последния ред орязва възможността на dnsmasq да получи системните DNS настройки (/etc/resolv.conf)
3 Добавяте следния ред в startup script-а на DD-WRT

Код: Избери всички

cp /tmp/resolv.dnsmasq /tmp/resolv.conf
По някаква причина, ако dnsmasq е пуснат, рутера си ползва него дори и за лични нужди, което ще го остави и самия него без resolve. Заобикаляме проблема по най-лесния начин :)
4 Добавяме следните редове във firewall, за да не се изхитри някой потребител да си настрои все пак DNS

Код: Избери всички

iptables -I FORWARD -p tcp --dport 53 -j REJECT
iptables -I FORWARD -p udp --dport 53 -j REJECT
Технически погледнато, потребителите все пак имат интернет, но по него могат да ползват skype/icq (и то не-всички киенти ...). Поне при мен още не се е намерил някой, който да може да работи без dns.
Винаги има варианта и в iptables да се появи нещо от рода :

Код: Избери всички

iptables -I FORWARD -j DROP
iptables -I FORWARD -j ACCEPT -p tcp --dport 80
iptables -I FORWARD -j ACCEPT -p tcp --dport 443
iptables -I FORWARD -j ACCEPT -p tcp --dport 25
iptables -I FORWARD -j ACCEPT -p tcp --dport 110
Което ще намали допълнително количеството 'неоторизирани връзки'.
Моля ви, като прочетете тема пишете по едно мнение да не ви търся по icq/телефон после ...

boris
Мнения: 522
Регистриран: 24-07-2009 17:21

Re: DD-WRT Whitelist

Мнение от boris » 21-03-2012 17:47

Това дали ще помогне, ако примерно някой се досети да използва прокси примерно в firefox-a?
Става въпрос за блокиране на определена страница, а не самo блокиране на порт.
Два месеца работа с компютъра спестява два часа четене на документация

Потребителски аватар
stoar08
Мнения: 1548
Регистриран: 09-11-2004 08:15
Име: Стоян Арабаджиев
Местоположение: Самоков

Re: DD-WRT Whitelist

Мнение от stoar08 » 22-03-2012 20:15

Ми по принцип това само по себе си не спира абсолютно нищо - интернет-а продължава да си тече :)
Причината (поне при мен) да върши работа е, че рядко попадам на толкова грамотни потребители, които да могат да си настроят DNS/proxy. По стандарт, към самото proxy се праща url => dns lookup се прави от него и по точно този начин няма да го ограничиш.
Евентуално има вариант просто да оставиш портове 20/21(ftp), 80(http), 443(https), 25(smtp), 110(pop3) и всичко друго да го спреш - съмнява ме да блика от публични proxy-та на точно тези портове.

Принципно iptables има вариант '-м string --string кото_ти_трябва', но не успях да го накарам да работи с dd-wrt. Евентуално може да се наложи да го прекараш през openwrt за целта. Естествено, подобна пряка инспекция ще работи само за некриптирани сесии.
Моля ви, като прочетете тема пишете по едно мнение да не ви търся по icq/телефон после ...

Отговори