Библиотека сайта rus-linux.net
Дом, мой любимый дом
Оригинал: "Home, Sweet Home"Автор: Marcin Teodorczyk
Дата публикации: December 2010
Перевод: Н.Ромоданов
Дата перевода: декабрь 2010 г.
У меня часто возникало желание использовать туннелирование моего трафика через некоторый надежный сервер SSH. Иногда — для конфиденциальности, иногда — из-за проблем с настройками безопасности (брандмауэры). Но с этим у меня была одна проблема — у меня не было надежного сервера SSH. Однажды у меня появился старый персональный компьютер (Intel Celeron 466 МГц с 64 Мб оперативной памяти и жестким диском в 4 Гб) и с установленным на нем Linux с OpenSSH. Он работал, но ...
Оказалось, что использовать персональный компьютер только для туннелирования через SSH - не эффективно. Компьютер был сравнительно большим и довольно шумным. У него не было блока бесперебойного питания, поэтому возникали проблемы в случае перебоев с электроснабжением. Через некоторое время я решил, что его не стоит использовать. Я выключил его и стал пользоваться сервисами, предлагающими бесплатный доступ к SSH. Не так надежно, но гораздо удобнее.
Несколько недель назад я наткнулся на проект OpenWrt. Это оказалось полезным.
Теперь я могу туннелировать свой трафик через SSH, используя для этого свой домашний маршрутизатор с Linux. Решение оказалось простым в настройке и дешевым. А мне, в любом случае, дома нужен был маршрутизатор. У меня есть базовая Linux-подобная система, и, что меня больше всего интересовало - OpenSSH. Кроме того, маршрутизатор небольшой, тихий, эффективный по потреблению питания и надежный.
Настройка
Есть два популярных проекта прошивок для маршрутизаторов на базе Linux: OpenWrt и DD-WRT. Первое, что вы должны сделать, это выбрать тот, который вам требуется. Прежде, чем вы примете решение, проверьте, поддерживается в выбранном проекте ваше оборудование. После этого вы все сможете сделать очень быстро. Процедура может быть различной для различных маршрутизаторов. В общем случае вы должны скачать прошивку для вашего устройства и загрузить ее в память маршрутизатора. В некоторых маршрутизаторах это делается очень просто — нужно только нажать кнопку в веб-интерфейсе. В других вам может потребоваться подключиться через последовательный кабель. На сайтах OpenWrt и DD-WRT вы можете найти подробные инструкции для конкретных моделей.
После прошивки маршрутизатора, вы увидите новый веб-интерфейс. На рис.1 показан пример того, что вы можете увидеть.
Рис.1. Домашняя страничка веб-интерфейса DD-WRT для D-Link DIR-600
Вы должны задать свой пароль, настроить сеть и т.д. Затем включите SSH. Вы можете сделать это на вкладке "Services" ("Сервисы"). Также вы можете включить / отключить использование пароля при входе в SSH, включить / отключить форвардинг по TCP, а также указать нестандартный порт для сервиса. Если вы решите использовать аутентификацию на основе ключей (что, как правило, является хорошим решением), вам также нужно будет сюда добавить ваш открытый ключ.
Чтобы можно было входить в систему из интернета, вы должны разрешить удаленный доступ к SSH. Это можно сделать на вкладке "Administration / Management" ("Администрирование / Управление"). Также можно указать диапазон IP-адресов, с которых вы разрешаете вход в систему.
И последнее, что важно знать, это то, что вы сможете войти в систему только как root, даже если вы предварительно создадите пользователей. Если все пройдет хорошо, то после ввода ваших учетных данных вы должны увидеть приглашение командной строки.
Пример использования
Теперь вы можете настроить прокси SOCKS для того, чтобы туннелировать ваш трафик. Если предположить, что доменное имя вашего маршрутизатора - router.home.org, вы можете выполнить следующую команду:
ssh -D 8888 root@router.home.org
Если вы хотите только настроить прокси-сервер и не входить в оболочку, используйте параметр -N
:
ssh -ND 8888 root@router.home.org
После того, как вы введете пароль, прокси SOCKS будет на вашем локальном хосте localhost постоянно прослушивать порт 8888. Любое приложение, которое может работать с прокси SOCKS, может его использовать. Одним из примеров является веб-браузер: если вы используете Firefox, проверьте, установлено ли у вас расширение FoxyProxy. Оно позволит вам мгновенно переключаться между соединением через прокси и прямым соединением.
Для приложений, которые напрямую не поддерживают работу с прокси SOCKS, вы можете в качестве дополнительной прослойки использовать утилиту tsocks. Эта маленькая утилита, запускаемая из командной строки, позволит любой программе использовать ваш прокси даже в случае, если в программе нет встроенной поддержки SOCKS. Пример конфигурации tsocks:
/etc/tsocks.conf: server=localhost server_port=8888 local=192.168.0.0/255.255.255.0
В приведенной выше конфигурации указан прокси-сервер для localhost с портом 8888 (который ранее был создан с SSH) и не разрешается использовать прокси в сети 192.168.0.0/255.255.255.0. Пример использования tsocks:
tsocks thunderbird
Заключение
Вся эта настройка заняла у меня около получаса. Главным образом потому, что я создал учетную запись пользователя и не ожидал такой "особенности", как возможность входить только как пользователь root.
Теперь я могу сказать, что, в отличие от старого компьютера, домашний маршрутизатор с сервером SSH является для меня отличным решением. Если бы я только мог получить более быстрый Интернет!