Статья. openvpn под FREE BSD

Статус
В этой теме нельзя размещать новые ответы.

nanovirus

Создатель
Регистрация
22 Сен 2007
Сообщения
33
Реакции
10
Добрый день всем. Вобщем ниже был у меня пост,я там роспрашивал всех,как же всё это сделать. Но все прошол на своих ошибках,и решил выложить практически руководство,по пошаговой настройке)
В этой статье я расскажу один из способов поднятия своего VPN на примере OpenVPN, как самого популярного сервера.Ставить будем на FreeBSD.
Для установки понадобится выделенный сервер.

1) Качаем дистрибутив и библиотеку:
cd /usr/local/src
fetch Для просмотра ссылки Войди или Зарегистрируйся
fetch Для просмотра ссылки Войди или Зарегистрируйся

2) Ставим сначала lzo, т.к. без нее не соберется OpenVPN:
tar zxf lzo-1.08.tar.gz
cd lzo-1.08/
./configure && make && make install

3) Собираем собственно сорцы демона:
tar zxf openvpn-2.0.tar.gz
cd ../openvpn-2.0/
./configure --with-lzo-headers=/usr/local/include/ --with-lzo-lib=/usr/local/lib/ && make && make install

4) Конфиги...
Создаем директорию в которой буду лежать конфиги, стартовые скрипты, .pid
файлы и ключ:
mkdir /usr/local/etc/openvpn/1/

Генерируем статический ключ:
/usr/local/sbin/openvpn --genkey --secret /usr/local/etc/openvpn/1/key

Далее создаем главный конфиг:
cat >/usr/local/etc/openvpn/1/openvpn-tcp.conf
dev tap
proto tcp-server
ifconfig 10.1.1.1 255.255.255.252
secret /usr/local/etc/openvpn/1/key
port 5001 - порт демона
user nobody
group nobody
comp-lzo - включаем сжатие траффа.
ping 15
ping-restart 45
ping-timer-rem
persist-key
verb 3
<CTRL> + <C>

Далее настраиваем ipfw и natd:
cat >/etc/fire.sh
#!/bin/sh
/sbin/kldload if_tap
/sbin/natd -p 8761 -a IP_сервера_из_под_которого_будет_работать_клиент
/sbin/ipfw add divert 8761 all from any to
IP_сервера_из_под_которого_будет_работать_клиент
/sbin/ipfw add divert 8761 all from 10.1.1.2 to any
<CTRL> + <C>


Ставим скрипту права на запуск:
chmod 755 /etc/fire.sh

Пишем скрипт запуска OpenVPN
cat >/usr/local/etc/openvpn/1/openvpn-tcp-start.sh
#!/usr/local/bin/bash
while true ; do
echo $$ > /usr/local/etc/openvpn/1/openvpn-tcp-start.pid
pid='cat /usr/local/etc/openvpn/1/openvpn-tcp.pid'
var='ps ax | awk '{print $1}' | grep $pid'
if [ ! $var ]
then
echo "Not Running !"
/usr/local/sbin/openvpn --config /usr/local/etc/openvpn/1/openvpn-tcp.conf --writepid /usr/local/etc/openvpn/1/openvpn-tcp.pid &
fi
sleep 10
done
<CTRL> + <C>

chmod 755 /usr/local/etc/openvpn/1/openvpn-tcp-start.sh

Добавляем в rc.conf следующие строчки:
gateway_enable="YES"

sysctl net.inet.ip.forwarding=1
(для того чтоб разрешить быть шлюзом без ребута)

Добавляем в /etc/rc.local пути наших конфигов для запуска при старте:
/etc/fire.sh
/usr/local/etc/openvpn/1/openvpn-tcp-start.sh &
kill -9 'cat /usr/local/etc/openvpn/1/openvpn-tcp-start.pid'

5) Теперь настраиваем клиентсткую Windows-часть:
Качаем клиент - Для просмотра ссылки Войди или Зарегистрируйся
Здесь будут храниться стартовые скрипты и ключ:
С:\Program Files\OpenVPN\configdir\

Правим конфиг клиентской части(win-openvpn-tcp.conf:(
remote 1й_IP_сервера
port 5001
proto tcp-client
dev tap
ifconfig 10.1.1.2 255.255.255.252
ifconfig-nowarn
tun-mtu 1500
secret key
ping-restart 60
ping-timer-rem
persist-key
resolv-retry 86400
ping 10
comp-lzo
verb 4
mute 20
route-gateway 10.1.1.1
redirect-gateway

Далее ключ, который мы сгенерировали (/usr/local/etc/openvpn/1/key - 4 пункт) помещаем в
С:\Program Files\OpenVPN\configdir\key

Ну и запуск:
C:\Program Files\OpenVPN\bin\openvpn --redirect-gateway(чтоб весь траф проходил через наш VPN) --config "c:\\Program Files\OpenVPN\configdir\win-openvpn-tcp.conf"
Для выхода - F4

Если все прошло без ошибок - значит твоя защита стала абсолютной! Теперь у тебя есть маскирующий IP.

P.S Статья написана по такому принципу, что всю установку можно провести банальным Copy-Paste, т.е. установить VPN смогут даже новички =)

НЕ ЗАБЫВАЙТЕ НАЖИМАТЬ СПАСИБО:ah:
ЗЫ. Не знал куда запостить,кинул сюда.
 
2 Автор
Я конечно дико извеняюсь но по моему было бы намного проще собрать openvpn из портов раз уж на FreeBSD делаем намного меньше гемороя.

Код:
cd /usr/ports/security/openvpn ; make install clean

Перед данным действием обновите порты командой

Код:
portsnap fetch ; portsnap extract

P.S
Собирать смысл из сорцов имет лиш тогда когда из пакета или портов не ставиться уже или не запускаеться.
 
Предложеный вами вариант,тоже прекрастно годитса. Я вот на выходных ешо напишу про настройку под линухом,и как генерировать сертификаты,про основные конфиги и.т.д
 
Животрепещущая тема. Сколько по времени примерно занимает процесс установки, по вашему опыту?
 
С вистой клиент опенвпн нормально сейчас работает, не в курсе?
 
хорошо расписано, но зачем мучаццо если есть порты? и еще как быть с ДНС? днс запросы тоже через впн?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху