|
|
|
ДНЕВНИКИ
Назад >>
Сергей ШИБКА
>>
CentOS
11.05.2012 CentOC 5.x и OpenVPN
Установка и настройка OpenVPN на CentOC 5.х.
Задача. Есть удаленный компьютер, и интернет на нем получается модемом GSM. Необходимо подключиться к рабочему столу удаленного компьютера с управляющего, который имеет выделенный IP адрес 217.10.10.10 и имеет интернет от другого провайдера. IP адрес на удаленном компьютере назначается GSM провайдером динамически из подсети 192.168.10.0. Врезультате мы получаем "болт, по самые не балуй", подключиться просто так по этому IP мы не сможем. Провадер GSM тот еще говнюк, выделенный IP не хочет продать. Тогда будем делать изврат, через ЗПО (заднепроходноеотверстие). Попробуем создать VPN канал, через готовое соединение. Установив продукт OpenVPN на удаленный компьютер в роли клиента, а на управляющий в роли сервера.
Принцип работы. После установки продукта OpenVPN, на компьютерах создается новый сетевой интерфейс, который и будет служить VPN каналом. Удаленный клиентский компьютер производит соединение клиентом openvpn с управляющим компьютером с серверной частью openvpn, после проверки сертификатов происходит соединение этих двух компьютеров по новому интерфейсу. У сервера присваивается IP 10.10.100.1, у удаленного клиента 10.10.100.5 и т.д. После этого можно запускать подключение к рабочему столу удаленного управляемого компьютера с управляющего компьютера.
И так, поехали...
Установку готового пакета производим:
yum install openvpn
А, теперь самое интересное. После установки обнаружил, что в комплекте готового пакета отсутствуют утилиты генерации сертификатов. Заморочиваться с установкой из исходников не стал, а поступил радикально. Т.к. на удаленной машине стоит XP, то скачиваем дистрибутив под неё с сайта производителя: http://openvpn.net/index.php/open-source/downloads.html
Устанавливаем по умолчанию. После установки идем в папку c:\Program Files\OpenVPN\easy-rsa\
Выполняем:
init-config.bat
1. vars
2. clean-all
Создаем CA файл ключа
1. vars
2. build-ca
Создаем DH файла
1. vars
2. build-dh
Создаем приватный ключ/сертификат для openvpn сервера
1. vars
2. build-key-server server
на вопрос Common Name, вписываем server
Создаем файл ключа в PEM формате для openvpn клиента
1. vars
2. build-key user
на вопрос: Common Name, вписываем user
Если все нормально, в папке c:\Program Files\OpenVPN\easy-rsa\keys\ создадутся нужные файлы ключей.
Нам понадобятся:
для клиента: ca.crt dh1024.pem user.crt user.key
для сервера: ca.crt dh1024.pem server.crt server.key
Копируем в папку c:\Program Files\OpenVPN\config\ файлы: ca.crt dh1024.pem user.crt user.key
Создаем в папке c:\Program Files\OpenVPN\config\ файл конфига с именем user.ovpn
Содержание конфига клиента user.ovpn:
dev tun
proto tcp
remote 217.10.10.10
port 10100
client
ca "C:/Program Files/OpenVPN/config/ca.crt"
dh "C:/Program Files/OpenVPN/config/dh1024.pem"
cert "C:/Program Files/OpenVPN/config/user.crt"
key "C:/Program Files/OpenVPN/config/user.key"
resolv-retry infinite
auth SHA1
cipher BF-CBC
ns-cert-type server
comp-lzo
persist-key
persist-tun
verb 3
На этом настройка клиентской части под XP на удаленном компьютере завершена. Переходим к серверной части.
И так, пакет openvpn под CentOS уже установлен.
Создаем папку для логов /var/log/openvpn
Создаем папку для ключей /etc/openvpn/keys и в нее копируем с клиентской машины файлы которые создали перед этим: ca.crt dh1024.pem server.crt server.key
В папке /etc/openvpn создаем файл конфига с именем server.conf
Содержание конфига сервера server.conf:
# порт на котором работает сервер
port 10100
# протокол - TCP или UDP
proto tcp
# используемый тип устройства и номер
dev tun0
# файл CA
ca /etc/openvpn/keys/ca.crt
# файл с сертификатом сервера
cert /etc/openvpn/keys/server.crt
# файл с ключом сервера
key /etc/openvpn/keys/server.key
# указываем файл DH
dh /etc/openvpn/keys/dh1024.pem
# задаем IP-адрес сервера и маску подсети (виртуальной сети)
server 10.10.100.0 255.255.255.0
# разрешает видеть клиентам друг друга (по виртуальным IP)
client-to-client
# выбираем алгоритм хеширования
auth SHA1
# криптографический сертификат
cipher BF-CBC
# проверяет активность подключения каждые 10 секунд, в течении 120 сек.
keepalive 10 120
# сжатия трафика VPN туннеля с помощью библиотеки LZO
comp-lzo
# максимальное количество одновременно подключенных клиентов
max-clients 5
# от какого пользователя и группы будет работать OpenVPN
user nobody
group nobody
# эти опции позволяют избежать необходимости
# получения доступа к определенным ресурсам
# после рестарта, т.к. это может быть невозможным
# из-за понижения привилегий.
persist-key
persist-tun
# лог файл статуса OpenVPN
status /var/log/openvpn/openvpn-status.log
# лог файл записи событий OpenVPN
log /var/log/openvpn/openvpn.log
# уровень записи логов
# 0 - ничего, кроме фатальных ошибок
# 4 - общие сведения
# 5 и 6 отладка
# 9 - максимальная информация
verb 6
Запускаем сервис openvpn:
service openvpn start
Теперь на удаленном компьютере запускаем с рабочего стола иконку OpenVPN GUI, в трее появиться иконка запуска. Щелкаем по ней. Если все правильно настроено, появиться уведомление об успешном соединении и присвоении IP адреса 10.10.100.5 на виртуальном интерфейсе.
Пробуем сделать пинг с удаленного компьютера на управляющий ping 10.10.100.1 и обратно с управляющего на управляемый ping 10.10.100.5. Если пинг ходит, значит всё нормально, есть VPN канал между машинами, и теперь можно спокойно подключаться к рабочему столу удаленного компьютера с управляющего. На удаленном компьютере само собой должно быть запущено RDP, VNC либо любой другой софт для перехвата рабочего стола, к которому теперь можно спокойно подключиться через новый канал VPN.
Ну и на последок..
Прописываем в CentOS службу openvpn в автозапуск:
chkconfig openvpn on
Если в CentOS используется iptables, не забываем открыть порт на котором слушает OpenVPN:
iptables -A INPUT -p tcp -m state -m tcp --dport 10100 --state NEW -j ACCEPT
На клиентском компьютере под XP, создаем в папке c:\Program Files\OpenVPN\config\ бат-файл startvpn.bat
Содержание бат-файла startvpn.bat:
"c:\Program Files\OpenVPN\bin\openvpn.exe" "c:\Program Files\OpenVPN\config\user.ovpn"
Прописываем бат-файл startvpn.bat в автозагрузку WinXP.
Теперь, при загрузке удаленного клиентского компьютера под XP, будет стартовать подключение openvpn и пытаться соединиться с серверной частью управляющего компьютера под CentOS, тем самым инициируя VPN соединение со своей сороны (с клиентской стороны). Как только соединение будет установлено, можно управлять удаленным компьютером через новую подсеть.
• комментарии (0)
[ Назад ]
|
|
|