Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Ошибка базы данных: Table 'a111530_forumnew.rlf1_users' doesn't exist
На главную -> MyLDP -> Тематический каталог -> Безопасность работы с системой Linux

Защитите свой Wi-Fi трафик с помощью утилит свободного ПО

Оригинал: "Secure your Wi-Fi traffic using FOSS utilities"
Автор: Дональд В. МакАртур (Donald W. McArthur)
Дата публикации: 12 сентября 2006 г.
Перевод: Н.Ромоданов
Дата перевода: 21 сентября 2009 г.

Заметка "Созданный хакером компьютер сканирует одновременно 300 Wi-Fi сетей", опубликованная на сайте Slashdot, является своевременным напоминанием о слабости протоколов шифрования, используемых в Wi-Fi сетях по умолчанию, и об опасности использования незашифрованного подключения к публичным сетям Wi-Fi. К счастью Вы можете использовать утилиты свободного ПО, чтобы создавать сеансы Wi-Fi подключения через безопасный туннель, и защитить ваш веб-трафик и трафик электронной почты.

Чтобы обеспечить шифрование вашего Wi-Fi трафика, сначала нужно настроить динамическую службу DNS с тем, чтобы Вы могли находить свой сервер в случае, когда вы далеко от дома. Затем вам нужно сделать перенаправление SSH соединений через ваш маршрутизатор на SSH сервер, сконфигурировав сервер так, чтобы он допускал подключения только с аутентификацией по ключу. Затем Вы можете направить свой трафик электронной почты и веб-трафик от удаленного клиента через зашифрованный SSH туннель в свою домашнюю сеть, а затем – в Интернет.

Для начала убедитесь, что на вашем ноутбуке имеется SSH клиент, в вашей домашней сети имеется Linux-сервер, на котором запущен демон sshd, а также убедитесь, что брандмауэр сервера, использующийся iptables, сконфигурирован так, что допускает SSH подключения.

В своей домашней сети я использую маршрутизатор Linksys WRT54G Wireless-G, который служит шлюзом моей домашней сети, SSH демон работает на сервере CentOS 4 в моей домашней сети, а на моем ноутбуке работает Ubuntu Dapper Drake, где я пользуюсь браузером Firefox и почтовым клиентом Thunderbird.

Поиск вашего SSH сервера, когда Вы в дороге

Большинство интернет провайдеров предоставляют своим клиентам динамическую IP адресацию, что может усложнить ваши попытки подключений в случае, когда Вы в дороге. Динамическая служба DNS позволит вам указать доменное имя, которое всегда будет указывать на ваш сервер. Чтобы начать пользоваться динамической службой DNS, зарегистрируйте доменное имя у недорогого регистратора доменных имен. Я воспользовался регистратором GoDaddy и был доволен тем, насколько просто внисить изменения в DNS сервера для моих доменных имен. В качестве динамической службы DNS я пользуюсь службой ZoneEdit, которая предоставляет надежный сервис и поддержку обслуживания. Служба ZoneEdit не взимает плату за предоставление DNS сервиса для первых пяти доменных имен, если уровень трафика приемлем.

Начальные сведения об использовании динамической службы DNS вы найдете на сайте Linux.com.

Конфигурирование SSH клиента и сервера

Прежде, чем выставлять свой SSH сервер в Интернет и подвергнуть его неизбежному автоматическому сканированию и попыткам подбора логина и пароля методом грубой силы, Вы можете захотеть сделать некоторые изменения в конфигурации с тем, чтобы разрешить только SSH соединения, использующие процедуры, основанные на обмене открытым/закрытым ключами, и запретить вход с вводом имени/пароля, которые можно попытаться подобрать. Это не только облегчит конфигурирование, но и, вообще, упростит доступ.

Начнем с генерации пары открытый/закрытый ключ для вашего ноутбука, которые будут использоваться, для подключения к вашему SSH серверу. Войдите в систему на вашем ноутбуке и в командной строке введите следующую команду:

ssh-keygen -t dsa

В результате будет сгенерирована пара открытый/закрытый ключ, которые будут использоваться при подключения к вашему SSH серверу. Ключи запоминаются в директории /home/user/.ssh .

Теперь Вы должны добавить открытый ключ пользователя в специальный файл на SSH сервер. Создайте на SSH сервере учетную запись пользователя, и в домашнем директории для этой учетной записи создайте следующий каталог и файл:

mkdir .ssh 
touch .ssh/authorized_keys

Простейший способ добавить к файлу открытый ключ пользователя– использовать на ноутбуке команду ssh:

cat ~/.ssh/id_dsa.pub | ssh user@sshserver_ipaddress "cat >> .ssh/authorized_keys"

Измените права доступа на файл на SSH сервере так, чтобы его мог читать только данный пользователь:

chmod 600 .ssh/authorized_keys 

Теперь Вы должны сделать изменения в конфигурационном файле SSH сервера, чтобы указать, что допускаются только соединения по открытому/закрытому ключам. В CentOS 4 это – конфигурационный файл /etc/ssh/sshd_config . Прежде, чем начать, сделайте резервную копию этого файла и убедитесь, что Вы имеете доступ к консоли сервера в случае, если Вы ошибетесь и заблокируете сервер. С правами пользователя root промотрите файл и сделайте изменения и добавления так, как указано ниже с тем, чтобы только следующие строки и только они были раскомментированы и читались сервером:

#Port 22
Protocol 2

# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_dsa_key

# Logging
SyslogFacility AUTHPRIV

# Authentication
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no

ChallengeResponseAuthentication no

UsePAM no

AllowTcpForwarding yes

GatewayPorts yes

TCPKeepAlive yes

Compression yes

# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server 

Снова как пользователь root перезапустите свой SSH сервер:

service sshd restart

Затем протестируйте соединение с вашего ноутбука:

ssh user@sshserver_ipaddress

Соединение должно быть автоматическим и запроса на ввод пароля быть не должно. Вы можете также проверить, что соединений не будет для пользователей, у которых на сервере нет открытых ключей:

ssh smith@sshserver_ipaddress

Запрос на ввод имени пользователя и пароля появляться не должен, а вместо этого должно выдаваться следующее:

Permission denied (publickey).

Вам потребуется повторить эту настройку для каждого клиента, которому вы планируете разрешить подключаться к вашему SSH серверу.

Переадресация SSH трафика на порт вашего сервера

Когда Вы в командной строке с помощью команды ssh yourdomain.com запустите удаленную SSH сессию, DNS запрос будет направлен динамической службе DNS на DNS сервере провайдера, которая в ответ выдаст ваш текущий IP адрес. Когда запрос на SSH соединение достигнет маршрутизатора (шлюза) вашей домашней сети, запрос должен быть перенаправлен на должный компьютер в вашей внутренней сети.

На вашем маршрутизаторе Вы должны сконфигурировать переадресацию, что обычно делается с помощью конфигурационного приложения, доступ к которому осуществляется через браузер изнутри вашей домашней сети. В маршрутизаторе Linksys, похожем на тот, что я использую, выберите пункт меню Applications & Gaming ("Приложения и Игры"), где Вы найдете настройки для конфигурирования переадресации. По умолчанию для SSH трафика используется порт 22. Любой входящий трафик, достигающий порта 22, должен быть перенаправлен на внутренний IP адрес компьютера, на котором запущен SSH демон. Ответ, отсылаемый обратно клиенту, будет переадресован маршрутизатором клиенту, сделавшему запрос. Ниже приведено изображение экрана настроек для Linksys WRT54G.

Port forwarding

Теперь Вы готовы настроить зашифрованный туннель. На ноутбуке в командной строке с помощью следующей команды запустите зашифрованное соединение:

ssh -D 2000 yourdomainname.com

Переключатель -D 2000 устанавливает на ноутбуке постоянное прослушивание соединений на порту 2000. После того, как Вы закончите тестирование, вы можете поместить эту команду в bash скрипт и запускать ее с панели меню вашего ноутбука.

Конфигурирование приложений для направления трафика через туннель

Как только Вы получите хорошее соединение, вы должны сообщить своим приложениям, что нужно его использовать. В Firefox и Thunderbird выберите следующие пункты меню Edit -> Preferences -> Connection Settings. С помощью радиокнопки выберите вариант ручного конфигурирования прокси и в поле SOCKS Host введите localhost, а затем Port: 2000.

Все сделано. Весь последующий трафик от Thunderbird и Firefox, работающих на ноутбуке, будет направлен SSH клиенту на порт 2000, затем через зашифрованный туннель будет перенаправлен на SSH сервер вашей домашней сети, а затем переадресован в Интернет через ваш домашний маршрутизатор. Как дополнительное преимущество все время, пока подключен ваш интернет провайдер, ваш ноутбук будет всегда в домашней сети, поэтому Вы будете иметь доступ к SMTP серверу вашего провайдера и сможете использовать его для отправляемых писем. И, где бы Вы не находились, вам не нужно будет беспокоиться о взломщиках, обнюхивающих ваш Wi-Fi трафик.



Средняя оценка 5 при 1 голосовавших

Комментарии