Храмы Высота ЧБ Люди Вокзалы Парк Зима. Снег Саратов Сад-огород. Хлеба Грибы Лес Зима. Снег Цветы Живность Кошки Река Хлеба Лес Зима. Снег Новый Год Небо. Облака Радуга Курьезы Река Хлеба Лес Зима. Снег Небо. Облака Курьезы Астро Зима. Снег Новый Год Шарм Эль Шейх. Тропикана Гранд Азур Кошки Ящерица Йошкар-Ола. Казань. Чебоксары Гуамское ущелье Майкоп Грибы Зима. Снег Лошади Сад-огород. Зима. Снег Должанка Египет Люди Санкт-Петербург Санкт-Петербург Финляндия Финляндия Греция. Родос. Детский Сад 158 Новый Год Авто Мото Макро Карта Дети Питание Шарм Эль Шейх. Тропикана Гранд Азур Астро Набережная Петрозаводска Карелия. Путешествия. Весна Макро Карта Отдых Лыжные прогулки Стихи CentOS Oracle SAMBA GlassFish LAMP Motion EJabberd Postfix. Dovecot. Amavisd Perl Jabber VLC M3U Ubuntu
Обои для рабочего стола. Лучшее качество 1600x1200.
ДНЕВНИКИ


Назад >> Сергей ШИБКА >> 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)


[ Назад ]


© 2005 - 2024 * Сергей Шибка