Налаштуйте SSH на маршрутизаторі для безпечного доступу до Інтернету з будь-якого місця
Підключення до Інтернету з точок доступу Wi-Fi, на роботі або в будь-якому іншому місці, надає ваші дані непотрібним ризикам. Ви можете легко налаштувати маршрутизатор на підтримку безпечного тунелю та захистити віддалений веб-переглядач, щоб дізнатися, як це зробити.
Що таке і чому створити безпечний тунель?
Можливо, вам буде цікаво, чому ви навіть хочете встановити безпечний тунель із пристроїв на домашній маршрутизатор і які переваги ви отримаєте від такого проекту. Давайте розберемо кілька різних сценаріїв, які передбачають використання Інтернету для ілюстрації переваг безпечного тунелювання.
Сценарій перший: Ви знаходитесь в кафе, використовуючи свій ноутбук для перегляду Інтернету через безкоштовне з'єднання Wi-Fi. Дані залишають ваш Wi-Fi модем, проїжджає по повітрю незашифрованим вузлом Wi-Fi у кав'ярні, а потім передається в більший інтернет. Під час передачі з комп'ютера на більший інтернет ваші дані широко відкриті. Будь-хто з пристроєм Wi-Fi у цій зоні може обнюхувати ваші дані. Це так боляче легко, що мотивований 12-річний з ноутбуком і копією Firesheep може вирвати ваші повноваження на всілякі речі. Це так, ніби ви знаходитесь у кімнаті, наповненій лише англомовними динаміками, розмовляючи по телефону, що розмовляє китайською мовою. У той момент, коли хтось, хто говорить на китайському, приходить (китайський Wi-Fi), ваша псевдо-конфіденційність зруйнована.
Сценарій другий: Ви знаходитесь в кафе, використовуючи свій ноутбук, щоб знову переглядати Інтернет за допомогою безкоштовного з'єднання Wi-Fi. Цього разу ви встановили зашифрований тунель між вашим ноутбуком і домашнім маршрутизатором за допомогою SSH. Ваш трафік проходить через цей тунель безпосередньо з вашого ноутбука на домашній маршрутизатор, який функціонує як проксі-сервер. Цей конвеєр непроникний для Wi-Fi-сніферів, які не бачать нічого, крім спотвореного потоку зашифрованих даних. Незалежно від того, наскільки зручно установа, наскільки небезпечне підключення Wi-Fi, ваші дані залишаються в зашифрованому тунелі і залишають його тільки після того, як він досяг вашого домашнього підключення до Інтернету і вийде з більшого Інтернету.
У першому сценарії ви відкриваєте серфінг; у другому сценарії ви можете увійти до свого банку або інших приватних веб-сайтів з тією ж впевненістю, що і ваш домашній комп'ютер.
Хоча ми використовували Wi-Fi у нашому прикладі, ви можете скористатися SSH-тунелем для забезпечення жорсткого з'єднання, щоб, скажімо, запустити браузер у віддаленій мережі і пробити через брандмауер, щоб вільно подорожувати, як на домашньому підключенні.
Звучить добре, чи не так? Це неймовірно просте налаштування, тому немає часу, як справжнє - ви можете мати свій SSH тунель і працювати протягом години.
Що вам потрібно
Існує багато способів налаштувати SSH-тунель для захисту веб-перегляду. Для цього підручника ми зосереджуємося на налаштуванні SSH тунелю найпростішим способом з найменшою сумою для користувача з домашнім маршрутизатором і машинами на базі Windows. Щоб наслідувати наш навчальний посібник, вам знадобляться такі речі:
- Маршрутизатор, на якому виконується змінене програмне забезпечення Tomato або DD-WRT.
- SSH-клієнт, як PuTTY.
- SOCKS-сумісний веб-переглядач, як Firefox.
Для нашого довідника ми будемо використовувати Tomato, але інструкції майже ідентичні тим, які ви б слідували для DD-WRT, так що якщо ви запускаєте DD-WRT, не соромтеся стежити. Якщо ви не маєте модифікованого програмного забезпечення на маршрутизаторі, ознайомтеся з нашим керівництвом щодо встановлення DD-WRT і Tomato, перш ніж продовжити.
Генерування ключів для нашого зашифрованого тунелю
Хоча може здатися дивним перехід прямо до створення ключів, перш ніж навіть налаштувати сервер SSH, якщо у нас є ключі готові, ми зможемо налаштувати сервер за один прохід.
Завантажте повний пакет PuTTY і витягніть його до папки за вашим вибором. Всередині папки ви знайдете PUTTYGEN.EXE. Запустіть програму та натисніть Key -> Створити пару ключів. Ви побачите екран, схожий на той, що зображений вище; перемістіть мишу навколо, щоб створити випадкові дані для процесу створення ключа. Після завершення процесу вікно генератора ключів PuTTY має виглядати приблизно так; вперед і введіть надійний пароль:
Після підключення пароля натисніть кнопку Зберегти закритий ключ. Сховати отриманий файл .PPK десь безпечний. Скопіюйте та вставте вміст вікна "Відкритий ключ для вставки ..." у тимчасовий документ TXT.
Якщо ви плануєте використовувати декілька пристроїв із сервером SSH (наприклад, ноутбук, нетбук і смартфон), вам потрібно створити пари ключів для кожного пристрою. Створіть пароль і збережіть додаткові ключі, які вам потрібні зараз. Переконайтеся, що копіюєте та вставляєте кожен новий відкритий ключ у свій тимчасовий документ.
Налаштування маршрутизатора для SSH
І Tomato, і DD-WRT мають вбудовані SSH-сервери. Це дивовижно з двох причин. По-перше, це було величезний біль для telnet у ваш маршрутизатор, щоб вручну встановити SSH-сервер і налаштувати його. По-друге, оскільки ви використовуєте сервер SSH на маршрутизаторі (який, ймовірно, споживає менше енергії, ніж лампочка), вам ніколи не доведеться залишати головний комп'ютер лише для легкого SSH-сервера.
Відкрийте веб-браузер на комп'ютері, підключеному до вашої локальної мережі. Перейдіть до веб-інтерфейсу вашого маршрутизатора, для нашого маршрутизатора-Linksys WRT54G, запускається Tomato-адреса http://192.168.1.1. Увійдіть у веб-інтерфейс і перейдіть до Адміністрація -> SSH Daemon. Там потрібно перевірити обидва Увімкнути під час запуску і Віддалений доступ. Ви можете змінити віддалений порт, якщо ви хочете, але єдина вигода від цього полягає в тому, що це незначно заплутує причину відкриття порту, якщо хто-небудь порт сканує вас. Зніміть прапорець Дозволити вхід до пароля. Ми не будемо використовувати пароль для входу до маршрутизатора здалеку, ми будемо використовувати пару ключів.
Вставте відкритий (и) ключ (и), створений (і) в останній частині підручника, у Авторизовані ключі . Кожна клавіша повинна бути власною, розділеною перервою рядка. Перша частина ключа ssh-rsa є дуже важливо. Якщо ви не включите його до кожного відкритого ключа, вони стануть недійсними для SSH-сервера.
Натисніть Розпочати зараз а потім прокрутіть вниз до нижньої частини інтерфейсу та натисніть Зберегти. На цьому етапі ваш SSH-сервер запущений.
Налаштування віддаленого комп'ютера для доступу до вашого SSH-сервера
Тут і відбувається чарівність. У вас є пара ключів, у вас є сервер і працює, але нічого з цього не має ніякого значення, якщо ви не в змозі віддалено підключити з поля і тунелю в ваш маршрутизатор. Настав час вирвати нашу надійну мережу під керуванням Windows 7 і розпочати роботу.
По-перше, скопіюйте цю папку PuTTY, яку ви створили, на інший комп'ютер (або просто завантажте та розпакуйте її знову). Звідси всі інструкції зосереджені на віддаленому комп'ютері. Якщо ви запустили генератор ключів PuTTy на вашому домашньому комп'ютері, переконайтеся, що ви перейшли на свій мобільний комп'ютер до кінця навчального посібника. Перш ніж вирішити, вам також потрібно переконатися, що у вас є копія створеного файлу .PPK. Після того як у вас витягнуто ПУТІ та в руці .PPK, ми готові продовжити.
Запустіть PuTTY. Перший екран, який ви побачите, це Сесія екрану. Тут потрібно ввести IP-адресу домашнього підключення до Інтернету. Це не IP-адреса вашого маршрутизатора в локальній локальній мережі, це IP-адреса вашого модему / маршрутизатора, як його бачить зовнішній світ. Ви можете знайти його, переглянувши головну сторінку стану в веб-інтерфейсі вашого маршрутизатора. Змініть порт на 2222 (або як ви замінили в процесі налаштування SSH Daemon). Переконайтеся Перевіряється SSH. Ідіть далі дайте своєму сеансу ім'я так що ви можете Збережи це для майбутнього використання. Ми називали наш Tomato SSH.
Перейдіть за допомогою лівої панелі вниз до З'єднання -> Auth. Тут потрібно натиснути кнопку Огляд і вибрати файл .PPK, який ви зберегли і перенесли на віддалену машину.
Перебуваючи в підменю SSH, продовжуйте до SSH -> Тунелі. Саме тут ми збираємося налаштувати PuTTY як проксі-сервер для вашого мобільного комп'ютера. Перевірте обидва поля під Переадресація портів. Нижче, в Додати новий перенаправлений порт введіть 80 для Порт джерела і IP-адресу вашого маршрутизатора для Призначення. Перевірити Авто і Динамічний потім натисніть кнопку Додати.
Двічі перевірте, чи з'явився запис у Переадресовані порти . Перейдіть назад Сесії і натисніть кнопку Зберегти знову, щоб зберегти всю роботу конфігурації. Тепер натисніть кнопку відчинено. PuTTY запустить вікно терміналу. На цьому етапі можна отримати попередження, вказуючи, що ключ хоста сервера відсутній у реєстрі. Ідіть вперед і підтвердьте, що ви довіряєте хосту. Якщо ви турбуєтесь про це, ви можете порівняти рядок відбитків пальців, який він дає вам у попередженні, з відбитком пальця ключа, який ви генерували, завантаживши його в генератор ключів PuTTY. Після того, як ви відкрили файл PuTTY і натиснули попередження, ви побачите екран, який виглядає так:
На терміналі потрібно лише зробити дві речі. У рядку підкажіть тип корінь. У рядку пароля введіть пароль ключа RSA-це пароль, який ви створили кілька хвилин тому, коли ви створили ключ, а не пароль маршрутизатора. Оболонка маршрутизатора завантажиться, і ви зробите в командному рядку. Ви створили безпечне з'єднання між PuTTY і вашим домашнім маршрутизатором. Тепер нам потрібно доручити своїм програмам доступ до PuTTY.
Примітка: Якщо ви хочете спростити процес за ціною трохи зменшивши вашу безпеку, ви можете створити пару ключів без пароля і встановити PuTTY для входу в кореневий обліковий запис автоматично (ви можете перемикати це налаштування в розділі Connect -> Data -> Auto Login ). Це зменшує процес підключення PuTTY до простого відкриття програми, завантаження профілю та натискання кнопки Відкрити.
Налаштування вашого браузера для підключення до PuTTY
На цьому етапі підручника ваш сервер запущено, комп'ютер підключено до нього, і залишається лише один крок. Вам потрібно повідомити важливим програмам про використання PuTTY як проксі-сервера. Будь-яке додаток, що підтримує протокол SOCKS, може бути пов'язане з PuTTY-такими, як Firefox, mIRC, Thunderbird і uTorrent, щоб назвати декілька - якщо ви не впевнені, чи підтримує програма SOCKS розібратися в меню опцій або звернутися до документації. Це найважливіший елемент, який не можна забувати: весь ваш трафік не маршрутизується через проксі-сервер PuTTY за умовчанням; це обов'язково бути прикріпленим до сервера SOCKS. Можна, наприклад, мати веб-переглядач, у якому ви ввімкнули SOCKS і веб-переглядач, у якому ви не - як на одній машині, так і зашифрувати ваш трафік, а один не.
Для наших цілей ми хочемо захистити наш веб-браузер, Firefox Portable, який досить простий. Процес налаштування для Firefox переводить практично до будь-якої програми, для якої потрібно підключити інформацію SOCKS. Запустіть Firefox і перейдіть до Параметри -> Додатково -> Налаштування. Зсередини Параметри підключення меню, виберіть Ручна конфігурація проксі і під SOCKS Host plug 127.0.0.1-ви підключаєтеся до програми PuTTY, запущеної на вашому локальному комп'ютері, тому ви повинні розмістити IP-адресу локального хоста, а не IP-адресу вашого маршрутизатора, як ви досі використовували в кожному слоті. Встановіть порт на 80, і натисніть кнопку в порядку.
Ми маємо один маленький tweak щоб застосувати перед тим, як ми всі встановлені. Firefox за промовчанням не спрямовує DNS-запити через проксі-сервер. Це означає, що ваш трафік завжди буде зашифрований, але хтось перехоплює з'єднання, побачить усі ваші запити. Вони знали, що ви знаходитесь на Facebook.com або Gmail.com, але вони не зможуть побачити нічого іншого. Якщо ви хочете, щоб маршрутизація запитів DNS через SOCKS, вам потрібно ввімкнути його.
Тип about: config в адресному рядку, потім натисніть кнопку "Я буду обережний, я обіцяю!", якщо ви отримаєте суворий попередження про те, як ви можете зачепити ваш браузер. Вставити network.proxy.socks_remote_dns в Фільтр: а потім клацніть правою кнопкою миші на записі network.proxy.socks_remote_dns і Переключити це до Правда. Відтепер, як ваш веб-перегляд, так і ваші DNS-запити надсилатимуться через тунель SOCKS.
Хоча ми налаштовуємо наш браузер на SSH-весь час, ви можете легко перемикати налаштування. Firefox має зручне розширення FoxyProxy, що робить його надзвичайно простим для включення та вимикання проксі-серверів. Він підтримує декілька варіантів конфігурації, наприклад, перемикання між проксі-серверами на основі домену, на якому ви перебуваєте, веб-сайтів, які ви відвідуєте, і т.д. наприклад, FoxyProxy ви охопили. Користувачі Chrome захочуть перевірити Proxy Switchy! для подібної функціональності.
Давайте подивимося, чи все спрацювало, як планувалося, чи не так? Щоб перевірити речі, ми відкрили два веб-переглядачі: Chrome (зліва ліворуч), без тунелю і Firefox (з правого боку) щойно налаштований для використання тунелю.
Ліворуч ми бачимо IP-адресу вузла Wi-Fi, з яким ми з'єднуємося, і праворуч, з урахуванням нашого тунелю SSH, ми бачимо IP-адресу нашого віддаленого маршрутизатора. Весь трафік Firefox маршрутизується через сервер SSH. Успіх!
Маєте підказку або трюк для забезпечення віддаленого трафіку? Використовуйте SOCKS сервер / SSH з певним додатком і любити його? Вам потрібна допомога, щоб дізнатися, як зашифрувати трафік? Давайте поговоримо про це в коментарях.