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

Тема в разделе "Администрирование серверов", создана пользователем nanovirus, 23 янв 2008.

Статус темы:
Закрыта.
Модераторы: mefish, stooper
  1. nanovirus

    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:
    ЗЫ. Не знал куда запостить,кинул сюда.
     
    flaer и Nova нравится это.
  2. Nova

    Nova Постоялец

    Регистр.:
    31 мар 2007
    Сообщения:
    61
    Симпатии:
    14
    2 Автор
    Я конечно дико извеняюсь но по моему было бы намного проще собрать openvpn из портов раз уж на FreeBSD делаем намного меньше гемороя.

    Код:
    cd /usr/ports/security/openvpn ; make install clean
    Перед данным действием обновите порты командой

    Код:
    portsnap fetch ; portsnap extract
    P.S
    Собирать смысл из сорцов имет лиш тогда когда из пакета или портов не ставиться уже или не запускаеться.
     
  3. nanovirus

    nanovirus Создатель

    Регистр.:
    22 сен 2007
    Сообщения:
    33
    Симпатии:
    10
    Предложеный вами вариант,тоже прекрастно годитса. Я вот на выходных ешо напишу про настройку под линухом,и как генерировать сертификаты,про основные конфиги и.т.д
     
  4. flaer

    flaer Создатель

    Регистр.:
    21 янв 2008
    Сообщения:
    26
    Симпатии:
    3
    Животрепещущая тема. Сколько по времени примерно занимает процесс установки, по вашему опыту?
     
  5. Nova

    Nova Постоялец

    Регистр.:
    31 мар 2007
    Сообщения:
    61
    Симпатии:
    14
    У меня 10 минут + кофниги с нуля
    Собираться дольше будет.
     
  6. flaer

    flaer Создатель

    Регистр.:
    21 янв 2008
    Сообщения:
    26
    Симпатии:
    3
    С вистой клиент опенвпн нормально сейчас работает, не в курсе?
     
  7. nanovirus

    nanovirus Создатель

    Регистр.:
    22 сен 2007
    Сообщения:
    33
    Симпатии:
    10
    Да,прекрастно работает,вот вам линк,там есть настройка под висту
    https://secretsline.com/manual/openvpn-vista/
     
  8. Toro

    Toro Прохожие

    хорошо расписано, но зачем мучаццо если есть порты? и еще как быть с ДНС? днс запросы тоже через впн?
     
Статус темы:
Закрыта.