Настрой VPN, проложи через него самбу

Я получаю 3 IP-адреса от моего провайдера, поэтому после моего модема у меня есть коммутатор с тремя вещами. Два сервера, один маршрутизатор. Все мои персональные компьютеры находятся за роутером. У моего старого сервера было два порта Ethernet, поэтому я помещал один на коммутатор, а другой - на маршрутизатор, чтобы не пропускать трафик сервера за маршрутизатор и при этом иметь возможность использовать общие ресурсы samba для медиа.

Мой новый сервер с низким энергопотреблением имеет только одну локальную сеть. В конце концов я получу для этого USB-разъем Ethernet, но до тех пор я бы хотел, чтобы у меня все еще были общие папки с samba. Я подумал, что должен быть какой-то способ достичь этого через VPN.

Итак, что я хотел бы сделать, это настроить VPN-сервер на сервере, позволить клиентам за маршрутизатором подключаться к нему. Это казалось достаточно простым, за исключением того, что все руководства, которые я видел, предполагают, что вы можете распределять адреса в локальной сети сервера. Поскольку локальная сеть моего сервера является общедоступным Интернетом, я не могу этого сделать. Можно ли как-нибудь создать «воображаемую» локальную сеть, существующую только в сознании сервера, и подключить к ней мои VPN-клиенты?

Чтобы выяснить, является ли сервер 68.232.SSS.SSS, и если маршрутизатор - 68.232.RRR.RRR, и если компьютеры за маршрутизатором - 10.0.0.1-255, могу ли я заставить клиентов VPN использовать адреса, такие как 192.168.0.VPN?

  OOoOoOOOooOOo
OoO  Public  OoOOo-----Server eth0 (Real)    68.232.SSS.SSS
OoO  Internet OoO             eth1 (Virtual) 192.168.0.1
 OoOoOOoOOoOOOo
     |
     \--Router eth0 (WAN) 68.232.RRR.RRR
         |     eth1 (LAN) 10.0.0.1
         |
         \-----Client eth1 (Virtual) 192.168.0.2  
                      eth0 (Real)    10.0.0.2
1
задан 16 February 2012 в 22:27

3 ответа

  1. установите openvpn на своем сервере и своем клиенте
  2. генерируйте сертификаты как в официальном ПРАКТИЧЕСКОМ РУКОВОДСТВЕ:

    root@server:/etc/openvpn/easy-rsa# cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa
    root@server:/etc/openvpn/easy-rsa# cd /etc/openvpn/easy-rsa
    

    Отредактируйте/etc/openvpn/easy-rsa/vars и заполните значения appropiate

    root@server:/etc/openvpn/easy-rsa# . ./vars
    NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys
    root@server:/etc/openvpn/easy-rsa# ./clean-all
    root@server:/etc/openvpn/easy-rsa# ./build-ca
    Generating a 1024 bit RSA private key
    ......................++++++
    ........++++++
    writing new private key to 'ca.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [HK]:
    State or Province Name (full name) [New Territories]:
    Locality Name (eg, city) [Tuen Mun]:
    Organization Name (eg, company) [Home]:
    Organizational Unit Name (eg, section) [changeme]:
    Common Name (eg, your name or your server's hostname) [OpenVPN-CA]:
    Name [OpenVPN-CA]:
    Email Address [test@example.com]:
    root@server:/etc/openvpn/easy-rsa# ./build-key-server server
    Generating a 1024 bit RSA private key
    ...............++++++
    ..........++++++
    writing new private key to 'server.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [HK]:
    State or Province Name (full name) [New Territories]:
    Locality Name (eg, city) [Tuen Mun]:
    Organization Name (eg, company) [Home]:
    Organizational Unit Name (eg, section) [changeme]:
    Common Name (eg, your name or your server's hostname) [server]:
    Name [OpenVPN-CA]:
    Email Address [test@example.com]:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    countryName           :PRINTABLE:'HK'
    stateOrProvinceName   :PRINTABLE:'New Territories'
    localityName          :PRINTABLE:'Tuen Mun'
    organizationName      :PRINTABLE:'Home'
    organizationalUnitName:PRINTABLE:'changeme'
    commonName            :PRINTABLE:'server'
    name                  :PRINTABLE:'OpenVPN-CA'
    emailAddress          :IA5STRING:'test@example.com'
    Certificate is to be certified until Mar 18 13:18:09 2022 GMT (3650 days)
    Sign the certificate? [y/n]:y
    
    
    1 out of 1 certificate requests certified, commit? [y/n]y
    Write out database with 1 new entries
    Data Base Updated
    root@server:/etc/openvpn/easy-rsa# ./build-key client
    Generating a 1024 bit RSA private key
    ..........++++++
    ...................................................++++++
    writing new private key to 'client.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [HK]:
    State or Province Name (full name) [New Territories]:
    Locality Name (eg, city) [Tuen Mun]:
    Organization Name (eg, company) [Home]:
    Organizational Unit Name (eg, section) [changeme]:
    Common Name (eg, your name or your server's hostname) [client]:
    Name [OpenVPN-CA]:
    Email Address [test@example.com]:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    countryName           :PRINTABLE:'HK'
    stateOrProvinceName   :PRINTABLE:'New Territories'
    localityName          :PRINTABLE:'Tuen Mun'
    organizationName      :PRINTABLE:'Home'
    organizationalUnitName:PRINTABLE:'changeme'
    commonName            :PRINTABLE:'client'
    name                  :PRINTABLE:'OpenVPN-CA'
    emailAddress          :IA5STRING:'test@example.com'
    Certificate is to be certified until Mar 18 13:20:00 2022 GMT (3650 days)
    Sign the certificate? [y/n]:y
    
    
    1 out of 1 certificate requests certified, commit? [y/n]y
    Write out database with 1 new entries
    Data Base Updated
    root@server:/etc/openvpn/easy-rsa# ./build-dh
    Generating DH parameters, 1024 bit long safe prime, generator 2
    This is going to take a long time
    ............................................................................+..................+...........+...........................+..............+..............................................................+......................................................................................................+......................................................................................+..............................................................................+..................+.................+..................................................................+.........................................+...........+..........................................................................................+..............................................+....................................+...................+....+..+................+.+.........+..............................................................+....................................................................................................................+...........+.....................................................................................................................................+.........................................................+...........................................................+.......................................................................................................................................................................................................................................+..............+..............................................................................................................................................+............................+..........................................+....................................................................................................................................++*++*++*
    
  3. скопируйте необходимые файлы с/etc/openvpn/easy-rsa/keys на сервере к/etc/openvpn

    для сервера: ca.crt dh1024.pem server.crt server.key

    для клиента: ca.crt client.crt client.key

  4. скопируйте соответствующие демонстрационные конфигурационные файлы от/usr/share/doc/openvpn/examples/sample-config-files/до/etc/openvpn и распакуйте их

    сервер: server.conf.gz

    клиент: client.conf

  5. Конфигурационный файл сервера должен быть осуществим по умолчанию
  6. отредактируйте "удаленную" запись на клиенте/etc/openvpn/client.conf

    Введите имя сервера / IP-адрес. Никакие другие изменения не должны быть сделаны

  7. Откройте UDP 1194 на брандмауэре сервера
  8. Сервис готов запуститься теперь, сервер в 10.8.0.1

    Я предполагаю, что только необходимо получить доступ к серверу, дополнительная работа должна быть сделана, если Вы хотите получить доступ к другим внутренним сетям.

  9. настройте самбу для слушания на 10.8.0.0/24

Все должно было быть сделано, комментарий отпуска здесь, если что-то идет не так, как надо.

2
ответ дан 16 February 2012 в 22:27

Хотя это и не прямой ответ на ваш вопрос, я советую вам смонтировать ваш сервер, используя вместо этого sshfs. Все, что вам нужно, это работающий ssh-сервер, а не сложная комбинация samba и vpn-решения с болтовым соединением.

На клиенте посмотрите Как выполнить автоматическое монтирование с помощью sshfs? для решения с графическим интерфейсом или http://ubuntuforums.org/showthread.php?t=430312 для общесистемного решения fstab.

0
ответ дан 16 February 2012 в 22:27

Установка openvpn на сервере и клиентах. На сервере это поднимет tun0 туннельный интерфейс с подсетью IP Вашего выбора. Соответствующие опции в конфигурационном файле /etc/openvpn/server.conf :

dev tun
server 192.168.1.0 255.255.255.0

Если Вы не хотите, чтобы клиенты направили весь свой трафик через VPN, прокомментируйте любое сходство со строк push "route A.B.C.D W.X.Y.Z" из конфигурации.

В дополнение к конфигурации сети необходимо генерировать сертификаты для сервера, и для клиентов (обе стороны проходят проверку подлинности). Как сделать, который охвачен в документации OpenVPN.

Наконец, необходимо настроить клиенты, чтобы смочь использовать это соединение, таким образом, Вы вставляете их /etc/openvpn/client.conf:

remote 68.232.SSS.SSS 1194

1194/udp является портом стандарта OpenVPN, который должен быть открыт для мира в Вашем брандмауэре (следовательно потребность в сертификатах).

Я надеюсь, что этот ответ и документация и демонстрационная конфигурация от openvpn запустят Вас.

0
ответ дан 16 February 2012 в 22:27

Другие вопросы по тегам:

Похожие вопросы: