Сетевед Новости Статьи Книги Файлы Вопросы и Ответы Калькулятор Подсетей Правообладателям
Сетевед arrow Linux arrow Сервер OpenVPN на CentOS 5.2
Сервер OpenVPN на CentOS 5.2 Версия для печати
Представим ситуацию, когда пользователям вашей организации понадобился доступ извне к корпоративной почте или каким-либо другим данным. Я уверен, что вы можете настроить RPC over HTTPS, но есть и другие способы для достижения цели. Например, OpenVPN, который я нахожу достаточно удобным и надежным.

как настроить VPN с корпоративной сетью? Как настроить OpenVPN?

В этом простейшем HOWTO я покажу, как настроить это все хозяйство. Опытные пользователи вряд ли найдут здесь что-то интересное для себя.

 В качесте допущения примем, что мы работаем с правами пользователя root и Selinux отключен, что указано в /etc/selinux/config. На случай, если OpenVPN не найдется в основном репозитарии, необходимо добавить репозитарий rpmforge (не описано в этой статье).


    yum install openvpn
    cd /etc/openvpn/
    cp -R /usr/share/doc/openvpn-2.0.9/easy-rsa/ /etc/openvpn/
    cd /etc/openvpn/easy-rsa/2.0/
    ../vars
    chmod +rwx *
    ./clean-all
    source ./vars
 Изменим значения вверху файла, чтобы они соответствовали нашим параметрам

    vi ../vars
 Изменим значения вверху файла, чтобы они соответствовали нашим параметрам

    vi vars
 Создаем сертификат CA:

    ./build-ca
 Создаем файл server.key:

    source ./vars
    ./clean-all
    ./build-ca
    ./build-key-server server
 Редактируем файл openvpn.conf:

    vi /etc/openvpn/openvpn.conf
 Хотя в файле конфигурации указано использовать tcp, считается, что на медленных линиях udp работает быстрее.

    port 1723 # (1194 is the default but on some APN networks this is blocked)
    proto tcp
    dev tun
    ca ca.crt
    cert server.crt
    key server.key
    dh dh1024.pem
    server 172.16.0.0 255.255.255.0
    push "dhcp-option DNS 192.168.168.1"
    push "dhcp-option DNS 168.210.2.2"
    #push "dhcp-option WINS 192.168.1.2"
    push "route 192.168.168.0 255.255.255.0"
    ifconfig-pool-persist ipp.txt
    keepalive 10 120
    comp-lzo
    user nobody
    group users
    persist-key
    persist-tun
    status openvpn-status.log
 Копируем ключи и запускаем OpenVPN:

    cp keys/{ca.crt,ca.key,server.crt,server.key} /etc/openvpn/
    ./build-dh
    cp keys/dh1024.pem /etc/openvpn/
    /etc/init.d/openvpn start
    chkconfig --list | grep vpn
 Генерируем ключи по одному на каждого клиента:

    ./build-key <name>
 Рассылаем ключи клиентам:

    cd keys/
    zip keys.zip ca.crt ca.key <name>.crt <name>.csr <name>.key
    yum install -y nail
    nail -s “Keys" -a keys.zip Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
 Проверяем, запустился ли OpenVPN:

    netstat -ntpl | grep 1723
 Настраиваем правила iptables:

    # External Interface for VPN
    # VPN Interface
    VPNIF="tun0"
    VPNNET="172.16.0.0/24"
    VPNIP="172.16.0.1"
    ### OpenVPN
    $IPTABLES -A INPUT -i $EXTIF -p tcp -s $UNIVERSE -d $EXTIP --destination-port 1723 -j
    ACCEPT # OpenVPN
    $IPTABLES -A INPUT -i $EXTIF -p tcp -s $UNIVERSE -d $EXTIP --destination-port 1723 -j
    ACCEPT # OpenVPN
    # Allow TUN interface connections to OpenVPN server
    $IPTABLES -A OUTPUT -o $INTIF -s $EXTIP -d $VPNNET -j ACCEPT
    $IPTABLES -A OUTPUT -o $VPNIF -s $EXTIP -d $VPNNET -j ACCEPT
    # OpenVPN
    $IPTABLES -A FORWARD -i $EXTIF -o $VPNIF -m state --state ESTABLISHED,RELATED -j
    ACCEPT
    $IPTABLES -A FORWARD -o $INTIF -s $EXTIP -d $VPNNET -j ACCEPT
    $IPTABLES -A FORWARD -o $VPNIF -s $EXTIP -d $VPNIP -j ACCEPT
    $IPTABLES -A FORWARD -o $EXTIF -s $EXTIP -d $VPNNET -j ACCEPT
    $IPTABLES -A FORWARD -o $VPNIF -s $INTNET -d $VPNNET -j ACCEPT
 Устанавливаем OpenVPN GUI на Windows XP

 Поскольку OpenVPN сервер у нас установлен и ключи для клиентов сгенерированы, применим полученные знания на практике и осчастливим кого-нибудь установкой клиентской части.
  • Скачиваем клиентскую часть вот отсюда
  • Устанавливаем ее
  • В каталог C:\Program Files\OpenVPN\config выкладываем наши ключи и смотрим вообще, что там есть:

      ca.crt
      ca.key
      <name>.crt (eg. johnl.crt)
      <name>.csr
      <name>.key
  • Редактируем файл client.ovpn таким образом, чтобы параметры соответствовали нашему серверу:

      # The hostname/IP and port of the server.
      # You can have multiple remote entries
      # to load balance between the servers.
      remote <myserver> 1723
      ;remote my-server-2 1194
      # SSL/TLS parms.
      # See the server config file for more
      # description. It's best to use
      # a separate .crt/.key file pair
      # for each client. A single ca
      # file can be used for all clients.
      ca ca.crt
      cert .crt
      key .key

 Вот это собственно и все. Не забудьте настроить маршрутизацию!

 

Автор: OpenVPN Server On CentOS 5.2
Перевод: Сгибнев Михаил

 
След. >