Ми показали вам як віддалено спрацьовувати WOL за допомогою “Стукання порту” на вашому маршрутизаторі . У цій статті ми покажемо, як використовувати його для захисту служби VPN.
Зображення Авіад Равів & bfick .
Передмова
Якщо ви використовували
Вбудована функціональність DD-WRT
для VPN або, є
інший сервер VPN
у вашій мережі ви можете оцінити можливість захистити її від атак грубої сили, приховуючи її за послідовністю стуку. Роблячи це, ви відфільтруєте дітей-сценаріїв, які намагаються отримати доступ до вашої мережі. З урахуванням цього, як зазначалося в попередній статті, стукання в порт не є заміною хорошого пароля та / або політики безпеки. Пам'ятайте, що з достатнім терпінням зловмисник може виявити послідовність і виконати атаку повтору.
Також майте на увазі, що недоліком реалізації цього є те, що коли будь-який клієнт VPN хоче підключитися, їм доведеться запускати послідовність стуку
заздалегідь
і якщо вони не зможуть завершити послідовність з будь-якої причини, вони взагалі не зможуть VPN.
Огляд
З метою захисту * служби VPN ми спочатку відключимо всі можливі зв’язки з нею, заблокувавши порту екземпляра 1723. Для досягнення цієї мети ми будемо використовувати iptables. Це тому, що саме так фільтрується зв’язок на більшості сучасних дистрибутивів Linux / GNU загалом і зокрема на DD-WRT. Якщо ви хочете отримати більше інформації про iptables, перевірте його запис у вікі , і подивіться на наша попередня стаття на цю тему. Після того, як послуга буде захищена, ми створимо послідовність стукачів, яка тимчасово відкриє порт екземпляра VPN, а також автоматично закриє його через заданий проміжок часу, зберігаючи підключення вже встановленого сеансу VPN.
Примітка: У цьому посібнику ми використовуємо послугу PPTP VPN як приклад. З огляду на це, той самий метод можна використовувати для інших типів VPN, вам просто доведеться змінити заблокований порт та / або тип зв'язку.
Передумови, припущення та рекомендації
- Передбачається / потрібно мати Opkg підтримує маршрутизатор DD-WRT .
- Передбачається / вимагається, що ви вже виконали кроки в “ Як стукати у вашу мережу (DD-WRT) ”Путівник.
- Передбачається наявність певних знань у мережі.
Давайте розтріскуємось.
За замовчуванням Правило "Блокувати нові VPN" на DD-WRT
Хоча наведений нижче фрагмент «коду», мабуть, буде працювати на кожному, що поважає себе, iptables, що використовує дистрибутив Linux / GNU, оскільки існує дуже багато варіантів, ми покажемо лише, як використовувати його на DD-WRT. Ніщо не заважає вам, якщо ви хочете, застосувати його безпосередньо у вікні VPN. Однак, як це зробити, виходить за рамки цього посібника.
Оскільки ми хочемо збільшити брандмауер маршрутизатора, цілком логічно, що ми додамо його до сценарію “Брандмауер”. Якщо це зробити, команда iptables буде виконуватися щоразу, коли брандмауер оновлюється, і, таким чином, наша доповнення зберігатиметься на місці.
З веб-графічного інтерфейсу DD-WRT:
-
Перейдіть до «Адміністрація» -> «Команди».
-
Введіть нижче «код» у текстове поле:
inline = "$ (iptables -L INPUT -n | grep -n" стан ПОВ'ЯЗАНІ, ВСТАНОВЛЕНІ "| awk -F: {'print $1'})"; вбудований = $ (($ вбудований-2 + 1)); iptables -I INPUT "$ inline" -p tcp --dport 1723 -j DROP - Клацніть на “Зберегти брандмауер”.
- Готово.
Що це за команда “Вуду”?
Вищенаведена команда “магія вуду” робить наступне:
- Знаходить, де знаходиться iptable лінія, яка дозволяє пройти вже налагодженому зв'язку. Ми робимо це, тому що А. На маршрутизаторах DD-WRT, якщо служба VPN увімкнена, вона буде розташована трохи нижче цієї лінії та B. Для нашої мети важливо продовжувати дозволяти вже встановленим сеансам VPN продовжувати працювати після стукаюча подія.
- Віднімає два (2) з виводу команди лістингу для врахування зсуву, спричиненого заголовками інформаційних стовпців. Після цього додайте до вищезазначеного числа один (1), щоб правило, яке ми вставляємо, прийшло одразу після правила, яке дозволяє вже встановлене спілкування. Я залишив тут цю дуже просту "математичну задачу", просто для того, щоб зрозуміти логіку "чому потрібно зменшувати одного з правила, а не додавати до нього".
Конфігурація KnockD
Нам потрібно створити нову послідовність запуску, яка дозволить створювати нові з'єднання VPN. Для цього відредагуйте файл knockd.conf, видавши в терміналі:
vi /opt/etc/knockd.conf
Додайте до існуючої конфігурації:
[enable-VPN]
послідовність = 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».
- Виконайте команду «зупинити_». Там, де ця команда “iptables” робить зворотне, як описано вище, і видаляє правило, що дозволяє спілкування.
Автор Поради
Хоча у вас все повинно бути, є кілька моментів, про які я відчуваю необхідність згадати.
- Вирішення проблем. Пам'ятайте, що якщо у вас виникли проблеми, сегмент "усунення несправностей" в кінці перша стаття має бути вашою першою зупинкою.
- Якщо ви хочете, ви можете зробити так, щоб директиви “старт / стоп” виконували декілька команд, розділяючи їх напівколеном (;) або навіть сценарієм. Це дозволить вам зробити деякі чудові речі. Наприклад, я хотів надіслати мені * повідомлення електронної пошти про те, що послідовність була запущена і звідки.
- Не забувайте, що " Для цього є додаток ”, І хоча це не згадується в цій статті, вам рекомендується взяти StavFX Android програма молотка .
- Розглядаючи тему Android, не забувайте, що в ОС є клієнт PPTP VPN, який зазвичай вбудований в ОС від виробника.
- Метод, блокуючи щось спочатку, а потім продовжуючи дозволяти вже встановлене спілкування, може бути використаний практично на будь-якому зв'язку на основі TCP. Насправді в Стук на DD-WRT 1 ~ 6 фільми, я робив це ще колись, коли використовував протокол віддаленого робочого столу (RDP), який використовує порт 3389 як приклад.