Изображение от Авиад Равив & bfick.
предговор
Ако сте използвали вградената функционалност на DD-WRT за VPN или имате друг VPN сървър във вашата мрежа, може би ще оцените възможността да го защитите от атаки на груба сила, като го скриете зад последователност на удари. Като правите това, ще филтрирате скриптовите деца, които се опитват да получат достъп до вашата мрежа. С това казано, както е посочено в предишната статия, повреждането на порт не е заместител на добра парола и / или политика за сигурност. Не забравяйте, че с достатъчно търпение нападателят може да открие последователността и да извърши атака на повторение. Също така имайте предвид, че недостатъкът при внедряването на това е, че когато някой VPN клиент / и искат да се свържат, те ще трябва да задействат последователносттапредварително и че ако не могат да завършат последователността по някаква причина, няма да могат да осъществяват VPN изобщо.
Преглед
За да защитим * услугата VPN, първо ще деактивираме всяка възможна комуникация с нея, като блокираме пристанищния порт на 1723. За да постигнем тази цел, ще използваме iptables. Това е така, защото комуникацията се филтрира по най-модерните Linux / GNU разпределения като цяло и по-специално по DD-WRT. Ако искате повече информация за iptables да приключите с влизането си в wiki и да разгледате нашата предишна статия по този въпрос. След като услугата бъде защитена, ще създадем последователност на разрушаване, която временно ще отваря VPN пристанищния порт и автоматично ще го затвори след конфигуриран период от време, като същевременно запази вече установената свързана VPN сесия.
Забележка: В това ръководство ние използваме PPTP VPN услугата като пример. С това казано, един и същи метод може да се използва за други типове VPN, просто ще трябва да промените блокирания порт и / или типа комуникация.
Предпоставки, допускания и препоръки
- Предполага се / изисква да имате маршрутизатор DD-WRT с възможност за активиране на Opkg.
- Предполага се / изисква да сте изпълнили стъпките в ръководството за "Как да се почувствате в мрежата (DD-WRT)".
- Предполага се известно познаване на мрежата.
Позволявам да се счупят.
По подразбиране "Блокиране на нови VPN" правило за DD-WRT
Докато следващият фрагмент от "кода" вероятно ще работи на всяко самоподдържащо се iptables, използващо Linux / GNU разпространение, защото има толкова много варианти, ще покажем как да го използваме на DD-WRT. Нищо не ви спира, ако желаете, да го приложите директно в VPN кутията. Въпреки това, как да направите това, е извън обхвата на това ръководство.
Тъй като искаме да увеличим защитната стена на рутера, е логично да добавим към скрипта "Защитна стена". Ако направите това, командата iptables ще бъде изпълнена всеки път, когато защитната стена бъде освежена и по този начин ще запазим разширяването си на място.
От Web-GUI на DD-WRT:
-
Отворете "Администриране" -> "Команди".
-
Въведете по-долу "код" в текстовото поле:
inline='$( iptables -L INPUT -n | grep -n 'state RELATED,ESTABLISHED' | awk -F: {'print $1'} )'; inline=$(($inline-2+1)); iptables -I INPUT '$inline' -p tcp --dport 1723 -j DROP
- Кликнете върху "Запазване на защитната стена".
- Свършен.
Какво представлява тази команда "Вуду"?
Горната команда "voodoo magic" прави следното:
- Открива къде е iptable линията, която позволява преминаването на вече установена комуникация. Ние правим това, защото А. При маршрутизаторите на DD-WRT, ако услугата VPN е активирана, тя ще бъде разположена точно под този ред и Б. От съществено значение е нашата цел да продължим да разрешаваме вече установени VPN сесии да живеят след събитие с чукане.
- Определя два (2) от изхода на командата за вписване, за да отчете отместването, причинено от заглавията на информационните колони. След като направите това, добавете един (1) към горния номер, така че правилото, което въвеждаме, ще се появи точно след правилото, което позволява вече установена комуникация. Оставих този прост "математически проблем" тук, за да направя логиката на "защо трябва да се намали един от мястото на правилото, вместо да се добави към него" ясно.
Конфигурация с KnockD
Трябва да създадем нова последователност за задействане, която ще позволи създаването на нови VPN връзки. За да направите това, редактирайте файла knockd.conf като издавате в терминал:
vi /opt/etc/knockd.conf
Добавяне към съществуващата конфигурация:
[enable-VPN] sequence = 02,02,02,01,01,01,2010,2010,2010 seq_timeout = 60 start_command = iptables -I INPUT 1 -s %IP% -p tcp --dport 1723 -j ACCEPT cmd_timeout = 20 stop_command = iptables -D INPUT -s %IP% -p tcp --dport 1723 -j ACCEPT
Тази конфигурация ще:
- Задайте прозореца на възможността да завършите последователността до 60 секунди. (Препоръчва се това да е възможно най-кратко)
- Слушайте поредица от три удара на портове 2, 1 и 2010 (тази поръчка е умишлено да се хвърлят портове скенери от пистата).
- След като последователността бъде открита, изпълнете "start_command". Тази команда "iptables" ще постави "приемен трафик, предназначен за пристанище 1723, откъдето са дошли ударите" в горната част на правилата на защитната стена. (Директивата% IP% се обработва специално от KnockD и се заменя с IP на произход).
- Изчакайте 20 секунди преди издаването на "stop_command".
- Изпълнете "stop_command". Където тази команда "iptables" прави обратното на горното и изтрива правилото, което позволява комуникация.
Това е, вашата VPN услуга трябва да бъде свързана само след успешен "удар".
автор Съвети
Докато трябва да сте настроени, има няколко точки, които смятам, че трябва да споменавате.
- Отстраняване на проблеми. Не забравяйте, че ако имате проблеми, сегментът "отстраняване на неизправности" в края на първата статия трябва да бъде първата ви спирка.
- Ако искате, можете да имате директивите "старт / стоп", изпълняващи няколко команди, като ги разделите с полу-колене (;) или дори скрипт. Това ще ви даде възможност да направите някои хитри неща. Например, аз нокаутирам да ми изпратите имейл, който да ми казва, че последователност е била задействана и откъде.
- Не забравяйте, че "има приложение за това" и въпреки че не е споменато в тази статия, вие сте окуражени да вземете програмата на Стафкс за робот на Android.
- Докато става въпрос за Android, не забравяйте, че има PPTP VPN клиент, обикновено вграден в операционната система от производителя.
- Методът за блокиране на нещо първоначално и след това за продължаване на разрешаването на вече установена комуникация може да се използва на практически всяка TCP базирана комуникация. В действителност в филмите Knockd on DD-WRT 1 ~ 6, аз се върнах, когато използвах протокола за отдалечен работен плот (RDP), който използва пристанището 3389 като пример.
Забележка: За да направите това, ще трябва да получите функционалност за електронна поща на вашия рутер, който в момента в действителност не е такъв, който работи, защото SVN моменталната снимка на opkg пакетите на OpenWRT е в хаос. Ето защо предлагам да използвате knockd директно върху VPN кутията, което ви позволява да използвате всички опции за изпращане на имейл, които са налични в Linux / GNU, като SSMTP и sendEmail, за да спомена няколко.
Кой нарушава моя спад?