• Как настроить сервер для VPN over proxy?

    @TechStudent Автор вопроса
    Ошибки "no shared ciphers" больше нет. Пробую зайти через роутер со встроенным впн (есть еще один сервер, он не заблокирован) - все работает. Пробую UDP+53 - не всегда работает. Есть еще варианты?
  • Как настроить сервер для VPN over proxy?

    @TechStudent Автор вопроса
    Помог вариант с UDP + 53 портом, спасибо за наводку. Но пока что не могу отметить решением, так как провайдер может заблокировать этот порт на моем IP. UDP почти полностью заблокирован, при смене порта с TCP ничего не меняется. Есть еще варианты? Вариант с ssh отпадает, так как нужно использовать на iOS и Android.
  • OpenConnect+AnyConnect. Как сделать авторизацию по сертификату?

    @TechStudent Автор вопроса
    ValdikSS: Да, поставил ocserv и gnutls-bin на Ubuntu 16.04 и сделал так:

    /etc/ocserv/ocserv.conf:

    auth = "certificate"
    max-clients = 16
    max-same-clients = 10
    tcp-port = 443
    udp-port = 443
    keepalive = 10
    dpd = 240
    mobile-dpd = 1800
    try-mtu-discovery = true
    server-cert = /etc/ssl/certs/server-cert.pem
    server-key = /etc/ssl/private/server-key.pem
    ca-cert = /etc/ocserv/ca-cert.pem
    tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT"
    auth-timeout = 40
    mobile-idle-timeout = 2400
    cookie-timeout = 86400000
    rekey-time = 86400000
    rekey-method = ssl
    use-utmp = true
    use-occtl = true
    cert-user-oid = 2.5.4.3
    cert-group-oid = 2.5.4.11
    pid-file = /var/run/ocserv.pid
    socket-file = /var/run/ocserv-socket
    run-as-user = nobody
    run-as-group = nogroup
    device = vpns
    default-domain = www.example.com
    ipv4-network = 10.10.0.0
    ipv4-netmask = 255.255.255.0
    dns = 77.88.8.8
    dns = 77.88.8.1
    ping-leases = false
    cisco-client-compat =true
    compression = yes
    no-compress-limit = 256

    ca.tmpl:

    cn = "CA"
    organization = "Organization"
    serial = 1
    expiration_days = 7777
    ca
    signing_key
    cert_signing_key
    crl_signing_key

    server.tmpl:

    cn = "Мой_IP"
    organization = "Organization"
    expiration_days = 3650
    signing_key
    encryption_key
    tls_www_server

    cn = "User"
    unit = "users"
    expiration_days = 7777
    signing_key
    tls_www_client

    certtool --generate-privkey --outfile ca-key.pem
    certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca-cert.pem
    certtool --generate-privkey --outfile server-key.pem
    certtool --generate-certificate --load-privkey server-key.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem
    certtool --generate-privkey --outfile user-key.pem
    certtool --generate-certificate --load-privkey user-key.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem --template user.tmpl --outfile user-cert.pem
    openssl pkcs12 -export -inkey user-key.pem -in user-cert.pem -certfile ca-cert.pem -out client.user.p12

    Потом скинул сертификат сервера и ключ в /etc/ssl/ (не знаю зачем это нужно, если честно).

    Разумеется, нужно все сделать более грамотно, но и сейчас работает отлично. Спасибо за помощь! Все мы в самом начале тупим, я тоже не исключение.
  • OpenConnect+AnyConnect. Как сделать авторизацию по сертификату?

    @TechStudent Автор вопроса
    ValdikSS: Не взлетело, хотя и NAT, и Forwarding, и сертификаты расставил как надо. Думаю, стоит завтра на свежую голову сделать все по-хорошему, то есть с доменом и официальным сертификатом.
  • OpenConnect+AnyConnect. Как сделать авторизацию по сертификату?

    @TechStudent Автор вопроса
    ValdikSS: Можете подробнее, как сделать все нужные сертификаты? Желательно с самоподписанным сертификатом, так как не хочу светить домен, а без домена сертификаты уже не дают. И что должен содержать файл profile.xml? С forwarding и NAT, благо, проблем нет.

    Простите уж за наглость, но я уже немного отчаялся.
  • OpenConnect+AnyConnect. Как сделать авторизацию по сертификату?

    @TechStudent Автор вопроса
    ValdikSS: Дело в том, что я не могу разобраться с сертификатами, так как это все для меня новое. Например, только что я наконец-то понял, что помимо всего этого еще и нужен сертификат, подписанный со стороны. Подписал его сам командой openssl x509 -req -days 3650 -in server-cert.csr -signkey server-key.pem -out server.crt, дальше сделал cat server.crt > server-key.pem.

    Добавил user.p12 в телефон, подключаюсь к серверу, выключив блокировку недоверенных серверов. Пытаюсь подключиться, в ответ только "Неудачная попытка соединения".

    Пожалуйста, распишите по возможности все пошагово. Мне очень стыдно, что так сильно туплю, но как-то уже нужно заставить виндофон обойти великий файрволл (да, я из той самой страны, только название лучше писать не буду).
  • OpenConnect+AnyConnect. Как сделать авторизацию по сертификату?

    @TechStudent Автор вопроса
    ValdikSS: То есть сделать те же самые сертификаты, только вашим форком EasyRSA?
  • OpenConnect+AnyConnect. Как сделать авторизацию по сертификату?

    @TechStudent Автор вопроса
    Сделал так, только понимаю, что очень сильно туплю. Подскажите, пожалуйста, что я пропустил?

    auth = "certificate" в конфиге

    certtool --generate-privkey --outfile ca-key.pempem

    Содержимое ca.tmpl:
    cn = "Мой_IP"
    organization = "Big Corp"
    serial = 1
    expiration_days = -1
    ca
    signing_key
    cert_signing_key
    crl_signing_keykey

    certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca-cert.pem
    certtool --generate-privkey --outfile server-key.pem

    Содержимое server.tmpl:
    cn = "Мой_IP"
    organization = "MyCompany"
    expiration_days = -1
    signing_key
    encryption_key
    tls_www_server

    certtool --generate-certificate --load-privkey server-key.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem --template server.tmpl --outfile server-cert.pem

    certtool --generate-privkey --outfile server-key.pem

    certtool --generate-request --load-privkey server-key.pem --template server.tmpl --outfile server-cert.csr

    certtool --generate-privkey --outfile user-key.pem

    user.tmpl:

    cn = "user"
    unit = "admins"
    expiration_days = 9999
    signing_key
    tls_www_client

    certtool --generate-certificate --load-privkey user-key.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem --template user.tmpl --outfile user-cert.pem

    certtool --to-p12 --load-privkey user-key.pem --pkcs-cipher 3des-pkcs12 --load-certificate user-cert.pem --outfile user.p12 --outder

    Добавляю user.p12 в AnyConnect, но не работает.