Intereting Posts
Проблема Ubuntu 14.04 CUPS Запуск агента ANT Garmin Тонкий клиент LTSP в режиме одиночного пользователя Резервное копирование настроек запуска в 12.04? запуск apt-get обновления на несетевом компьютере (с использованием данных с другого аналогичного компьютера) Firefox не отвечает из-за файлов блокировки, как их удалить? Поиск программного обеспечения, которое будет сжимать, шифровать, разделять и загружать данные для резервного копирования на несколько облаков Можно ли использовать cd ../ .. как псевдоним? Как вручную установить плагин Oracle Java для Google Chrome и Firefox? Доля сеанса SSH при входе в систему Как программно получить список беспроводных SSID в диапазоне от NetworkManager Что такое chroot? Это похоже на одновременную двойную загрузку? будет 32-битный Ubuntu будет отлично работать на 64-битной машине? Как конвертировать видео из mp4 / flv в mpeg / mpg Не удается установить sqlite3

Как настроить OpenVPN, чтобы я мог безопасно использовать Интернет из незащищенной точки доступа?

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

Я знаю, что могу использовать SSH-туннель / SOCKS-прокси, но я не хочу возиться с приложениями (заставляя их использовать его, если вообще возможно). Я предполагаю, что мне нужна установка OpenVPN, поэтому я ищу подробное руководство о том, как:

  1. Установка и настройка сервера OpenVPN
  2. Настройка клиента OpenVPN (NetworkManager)

Версия Ubuntu, над которой должны работать, – 10.10 и 11.04.

У меня есть точный вопрос несколько месяцев назад, но, кроме того, я хотел бы иметь IPv6-соединение, если это возможно. Вас могут заинтересовать мои вопросы в Serverfault:

  • Как настроить OpenVPN для доступа к Интернету с помощью одной сетевой платы?
  • Как настроить OpenVPN с помощью IPv4 и IPv6 с помощью устройства крана?

У меня был только один сетевой адаптер («сетевой интерфейс») на моем сервере для использования. В моей настройке NetworkManager был недостаточен, потому что мне нужно запустить собственный скрипт для поддержки IPv6. Однако для простоты я буду использовать NetworkManager здесь и опустить поддержку IPv6.

Во-первых, просто принимайте решение по методу аутентификации. Я использую метод безопасного сертификата, который работает как SSL: во время рукопожатия выбирается общий секрет, который будет использоваться для сеанса. Другие методы – это общий ключ; имя пользователя и пароль.

сервер

1. Подготовьте

Сначала установите сервер openvpn. Это так же просто, как sudo apt-get install openvpn . Трудная часть настраивает его. Конфигурация присутствует в /etc/openvpn .

2. Настроить аутентификацию

Серверу нужны сертификаты для идентификации себя и своих клиентов. Этот сертификат извлекается из CA (Common Authority). Создание сертификатов и связанных с ними закрытых ключей может быть выполнено на любом компьютере, его не нужно делать на сервере. Если вы действительно параноик, вы должны сделать это на машине, которая не подключена к сети, и использовать карту памяти для переноса сертификатов.

Создание CA и сертификатов для сервера

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

В официальной документации предлагается сделать администрирование в /etc/openvpn . Я не большой поклонник запускать все как root, поэтому я помещу его в другой каталог.

  1. Создайте каталог администрирования и скопируйте в него файлы, запустив:

     mkdir ~/openvpn-admin cd ~/openvpn-admin cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ ./easy-rsa cd easy-rsa 
  2. Измените значения по умолчанию в vars мере необходимости, например, установив KEY_SIZE=2048 потому что вы параноидальные.
  3. Загрузите переменные и создайте каталог ключей, запустив:

     . vars 
  4. Если вы получите сообщение об ошибке, No ... openssl.cnf file could be found Further invocations will fail , тогда запустите ln -s openssl-1.0.0.cnf openssl.cnf . vars снова.

  5. Если вы впервые используете этот CA, подготовьте среду ключей. Не запускайте эту команду, если вы хотите сохранить свой ранее созданный центр сертификации. Это потребует развертывания нового ca.crt .

     ./clean-all 
  6. Создайте CA, выполнив ./build-ca . Вы можете заполнить любые детали, которые хотите, но обратите внимание, что эта информация будет отображаться в файлах журнала, когда клиенты подключаются к серверу. Это создаст файлы ca.key и ca.crt в keys подпапки. Храните файл ca.key в любом случае . Невыполнение этого условия позволит любому, у кого есть ключ, подключиться к вашему серверу.
  7. Если у вас есть предыдущий сертификат, который был утерян или истек, вам необходимо сначала аннулировать старый ./revoke-full server . В противном случае вы получите ошибку базы данных.
  8. Создайте сертификат для сервера, выполнив:

     ./build-key-server server 

    Когда вас попросят ввести пароль, оставьте его пустым, если вы не захотите вводить пароль при каждом запуске сервера (не рекомендуется). Подтвердите при подписании сертификата и его фиксации. В keys каталога появятся два новых файла: server.key и server.crt .

DH и использование готовятся к tls-auth

Создайте параметры Диффи-Хелмана, используя:

 ./build-dh 

На затвердевающие наконечники используйте tls-auth . Для этого сгенерируйте секретный ключ, используя:

 openvpn --genkey --secret ta.key 

Полученный файл ( ta.key ) должен быть также распространен среди клиентов, но вы не должны публиковать его.

Создание сертификатов для клиентов

Для каждого клиента эти шаги необходимо повторить:

  1. Введите каталог, в котором вы создали сертификат CA и сервера:

     cd ~/openvpn-admin/easy-rsa 
  2. Если вы пропустили шаг создания CA, потому что у вас уже один, вам нужно сначала загрузить переменные:

     . vars 
  3. Если вы создаете новые сертификаты, потому что старые потеряны или истекли , вам нужно сначала аннулировать старый ./revoke-full you . В противном случае вы получите ошибку базы данных.
  4. Создайте сертификат клиентов you.key и соответствующий ему сертификат you.crt :

     ./build-key you 

    CommonName должен быть уникальным. Оставьте пароль пустым, если вы используете KDE, поскольку он не поддерживается с 10.10. Как и при генерации сертификата сервера, подтвердите подписывание сертификата и внесение изменений.

3. Настройте службу OpenVPN

По умолчанию OpenVPN запускается с правами root при приеме соединений. Нехорошо, если услуга доступна из злого Интернета.

  1. Создайте выделенного пользователя для OpenVPN, скажем, openvpn :

     sudo useradd openvpn 
  2. Скопируйте файлы server.key , server.crt , ca.crt и dh1024.pem (или dh2048.pem если вы изменили размер ключа) из каталога ключей в /etc/openvpn . Разрешение 400 (только для чтения для владельца) в порядке.

     sudo cp ~/openvpn-admin/easy-rsa/keys/{server.key,server.crt,ca.crt,dh*.pem} /etc/openvpn sudo chmod 400 /etc/openvpn/{server.key,server.crt,ca.crt} 
  3. Скопируйте файл ta.key :

     sudo cp ~/openvpn-admin/easy-rsa/ta.key /etc/openvpn sudo chmod 400 /etc/openvpn/ta.key 
  4. Создайте файл /etc/openvpn/server.conf и вставьте в него следующие строки:

     proto udp dev tap ca ca.crt cert server.crt key server.key dh dh1024.pem server 10.8.0.0 255.255.255.0 push "redirect-gateway def1" ifconfig-pool-persist ipp.txt keepalive 10 120 tls-auth ta.key 0 # Compress data to save bandwidth comp-lzo user openvpn group openvpn persist-key persist-tun # Logs are useful for debugging log-append openvpn-log verb 3 mute 10 
  5. Установите соответствующие разрешения на него, это не обязательно должно быть секретным, но я предпочитаю не пропускать детали конфигурации, поэтому:

     sudo chmod 640 /etc/openvpn/server.conf 

4. Завершение работы сервера

Если вы создали сертификаты на сервере, рекомендуется зашифровать его или перенести с сервера. В любом случае не теряйте ca.key и server.key . В первом случае другие смогут подключиться к вашему серверу. В последнем возможно MITM .

клиент

Помимо IP-адреса сервера, администратор сервера должен передать следующие файлы:

  • ca.crt : для проверки сертификатов
  • server.crt : для проверки сервера и связи с ним
  • ta.key : для ta.key безопасности
  • you.crt : идентифицировать себя с сервером
  • you.key : это как ваш пароль, разрешения на доступ к файлам должны быть 400 (только для чтения для владельца)

1. Установка

Установите OpenVPN и плагин NetworkManager (подходит для KDE и Gnome):

 sudo apt-get install openvpn network-manager-openvpn 

network-manager-openvpn находится в репозитории юниверсов.

2. Конфигурация

В панели управления используйте следующие данные:

  • Gateway: IP-адрес сервера
  • Тип: «Сертификаты (TLS)» (Gnome) или «Сертификат X.509» (KDE)
  • Сертификат CA: путь к ca.crt
  • Сертификат пользователя: путь к you.crt
  • Закрытый ключ: путь к you.key

В Advanced :

  • Порт шлюза: автоматический (1194) (его не нужно менять)
  • Использовать сжатие данных LZO: включено
  • Использовать TCP-соединение: отключено
  • Использовать устройство TAP: включено
  • Шифрование: по умолчанию
  • Проверка подлинности HMAC: по умолчанию
  • Использовать TLS-аутентификацию: включен
    Укажите путь файла ключа к ta.key и установите «Key Direction» на 1 .
  • ( todo – проверка ) сервер нажимает шлюз по умолчанию, поэтому весь трафик проходит через VPN-соединение. В последний раз, когда я проверил, плагин network-manager-openvpn этого не делал.

Если вы не можете заставить NetworkManager работать или не хотите его использовать, поместите файлы ( ca.crt , …) в /etc/openvpn и создайте файл /etc/openvpn/client.conf :

 client dev tap proto udp # replace 1.2.3.4 by your server IP remote 1.2.3.4 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert you.crt key you.key ns-cert-type server tls-auth ta.key 1 comp-lzo user nobody group nogroup verb 3 mute 20 

Если вы не хотите включать эту VPN во время загрузки, отредактируйте /etc/default/openvpn и раскомментируйте следующую строку, удалив # :

 #AUTOSTART="none" 

Чтобы запустить это соединение, запустите:

 sudo /etc/init.d/openvpn start client 

client должен быть переименован, если ваш файл конфигурации не назван client.conf . Пример: если вы назвали файл конфигурации safe.conf , вам нужно запустить sudo /etc/init.d/openvpn start safe .

Чтобы остановить OpenVPN, вам нужно запустить:

 sudo /etc/init.d/openvpn stop 

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

  1. Сначала установите пакет tsocks (временные носки):

     sudo apt-get install tsocks 
  2. Затем отредактируйте /etc/tsocks.conf и введите

     server = 127.0.0.1 server_port = 3333 
  3. Теперь откройте терминал и введите (это связывает вас):

     ssh -ND 3333 ssh.url.to.your.home.machine 
  4. Запуск (через другой терминал или ALT-F2):

     tsocks firefox 

Теперь Firefox передает все сообщения через сервер SOCKS на вашем компьютере, созданный SSH. Это дополнительно туннелируется на вашей домашней машине, где она идет в Интернет. Все, что вам нужно на вашей домашней машине, – это SSH-сервер. После первого раза просто повторите шаги 3 и 4.

Отлично работает! Увы, хром не любит tsocks, но эй, Firefox работает.

Решение SSH-туннеля проще, чем вы думаете. Программа gSTM запускает / останавливает туннели для вас с помощью графического интерфейса. Затем просто откройте «Сетевой прокси» и измените его с «Прямое подключение к Интернету» на «Ручная настройка прокси», нажмите «Применить в системе», и все ваши приложения должны отправлять свои данные по туннелю – нет необходимости возиться с каждым отдельно.