Домашня » як » Як стукати у вашу мережу, частина 2 Захистіть свій VPN (DD-WRT)

    Як стукати у вашу мережу, частина 2 Захистіть свій VPN (DD-WRT)

    Ми показали вам, як запустити WOL дистанційно за допомогою "Портації" на вашому маршрутизаторі. У цій статті ми покажемо, як використовувати її для захисту сервісу VPN.

    Зображення від Aviad Raviv & bfick.

    Передмова

    Якщо ви використовували вбудовану функціональність DD-WRT для VPN або, у вашій мережі є ще один VPN-сервер, ви можете оцінити можливість захистити його від атак грубої сили, приховавши її за послідовністю вибивання. Роблячи це, ви фільтруєте скриптових дітей, які намагаються отримати доступ до вашої мережі. При цьому, як сказано в попередній статті, стукіт порту не є заміною хорошого пароля та / або політики безпеки. Пам'ятайте, що з достатнім терпінням зловмисник може виявити послідовність і виконати атаку повторного відтворення.
    Також майте на увазі, що недолік реалізації цього полягає в тому, що коли будь-який клієнт / клієнт VPN хоче підключитися, їм доведеться викликати послідовність вибивання заздалегідь і якщо вони не зможуть завершити послідовність з будь-якої причини, вони взагалі не зможуть VPN.

    Огляд

    Для того, щоб захистити послугу VPN, спочатку буде відключено все можливе спілкування з нею шляхом блокування портів 1723. Для досягнення цієї мети ми будемо використовувати iptables. Це пояснюється тим, що так фільтрується зв'язок на більшості сучасних дистрибутивів Linux / GNU взагалі і на DD-WRT зокрема. Якщо ви хочете отримати більше інформації про iptables перевірити його вікі-запису, і подивитися на нашу попередню статтю на цю тему. Після того, як служба захищена, ми створимо послідовність вибивання, яка б тимчасово відкрила порт реалізації VPN, а також автоматично закрила її після налаштованого періоду часу, зберігаючи підключення до вже встановленого сеансу VPN.

    Примітка. У цьому посібнику ми використовуємо приклад PPTP VPN. З урахуванням цього, той же метод може бути використаний для інших типів VPN, ви просто повинні змінити заблокований порт та / або тип зв'язку.

    Передумови, припущення та рекомендації

    • Передбачається / вимагається, щоб у вас був включений маршрутизатор DD-WRT Opkg.
    • Передбачається / вимагається, щоб ви вже виконували кроки в керівництві “Як стукати у вашу мережу (DD-WRT)”.
    • Передбачається певне знання мережі.

    Дозволяє отримати тріщини.

    За замовчуванням Правило блокування нових VPN на DD-WRT

    Хоча фрагмент з кодом нижче, можливо, буде працювати на кожному, поважає себе, iptables використання, Linux / GNU розподіл, тому що є так багато варіантів там ми тільки покажемо, як використовувати його на DD-WRT. Ніщо не заважає вам, якщо хочете, реалізувати його безпосередньо у вікні VPN. Однак, як це зробити, виходить за рамки цього посібника.

    Тому що ми хочемо збільшити брандмауер маршрутизатора, це лише логічно, що ми додамо до сценарію «Брандмауер». Це призведе до того, що команда iptables буде виконуватися кожного разу, коли брандмауер оновлюватиметься і таким чином зберігає наше збільшення на місці для зберігання.

    З веб-графічного інтерфейсу DD-WRT:

    • Перейдіть до розділу "Адміністрація" -> "Команди".
    • Введіть нижче "код" у текстове поле:

      inline = "$ (iptables -L INPUT -n | grep -n" стан RELATED, ESTABLISHED "| awk -F: 'print $ 1')"; inline = $ (($ inline-2 + 1)); iptables -I INPUT "$ inline" -p tcp --dport 1723 -j DROP

    • Натисніть "Зберегти брандмауер".
    • Виконано.

    Що таке команда "Voodoo"?

    Наведена вище команда "voodoo magic" виконує наступне:

    • Знаходить, де є iptable лінія, яка дозволяє проходити вже встановлену комунікацію. Ми робимо це, тому що A. На маршрутизаторах DD-WRT, якщо послуга VPN увімкнена, вона буде розташована трохи нижче цієї лінії і B. Важливо, щоб наша мета продовжувати залишатися доступною вже після встановлених сеансів VPN стукіт події.
    • Відраховує два (2) з виводу команди лістингу для обліку зсуву, викликаного інформаційними заголовками стовпців. Як тільки це буде зроблено, додає один (1) до вищевказаного числа, так що правило, яке ми вставляємо, прийде відразу після правила, що дозволяє вже встановлену комунікацію. Я залишив цю дуже просту «математичну задачу» тут, просто щоб зробити логіку «чому треба скоротити одну з місця правила, замість того, щоб додати одну до нього»..

    Конфігурація KnockD

    Нам потрібно створити нову послідовність запуску, яка дозволить створити нові VPN-з'єднання. Для цього відредагуйте файл knockd.conf шляхом видачі в терміналі:

    vi /opt/etc/knockd.conf

    Додайте до існуючої конфігурації:

    [включити 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".
    • Виконайте команду "stop_command". Де команда "iptables" виконує зворотне виконання вищезазначеного і видаляє правило, яке дозволяє здійснювати зв'язок.
    Саме це, ваша служба VPN тепер має бути підключена тільки після успішного “вибивання”.

    АвторПоради

    Хоча ви все повинні бути готові, Є кілька моментів, які я відчуваю, потрібно згадати.

    • Вирішення проблем. Пам'ятайте, що якщо у вас виникли проблеми, сегмент "усунення неполадок" в кінці першої статті повинен стати вашою першою зупинкою.
    • Якщо ви хочете, ви можете мати директиви "start / stop", які виконують кілька команд, розділяючи їх на напівколен (;) або навіть скрипт. Роблячи це, ви зможете виконати деякі чудові речі. Наприклад, я маю надіслати мені * Email, що повідомляє мені, що послідовність була запущена і звідки.
    • Не забувайте, що "є додаток для цього", і навіть якщо його не згадується в цій статті, вам пропонується захопити програму для рук Android у студії.
    • Хоча на тему Android, не забувайте, що є клієнт PPTP VPN, зазвичай вбудований в ОС від виробника.
    • Метод, що блокує щось спочатку і потім продовжує дозволяти вже встановлену комунікацію, може використовуватися практично на будь-якому комунікації на основі TCP. Насправді в Knockd на DD-WRT 1 ~ 6 фільмах, я зробив дорогу назад, коли я використовував протокол віддаленого робочого столу (RDP), який використовує порт 3389 як приклад..
    Примітка: Щоб зробити це, вам потрібно отримати функцію електронної пошти на вашому маршрутизаторі, який в даний час дійсно не є такою, що працює, оскільки знімок SVN пакетів opkg OpenWRT знаходиться в безладді. Ось чому я пропоную використовувати knockd безпосередньо на вікні VPN, що дозволяє використовувати всі опції надсилання електронної пошти, доступні в Linux / GNU, наприклад SSMTP і sendEmail, щоб згадати кілька.

    Хто заважає моєму сну?