VPN-сервер в стиле how-to (pptpd+mysql+radius) на CentOS6

    image Хотя статьи в стиле how-to и не очень комментируемые, и в основном не с положительными комментариями, однако, именно их, больше всего добавляют в закладки.
    Здесь я постараюсь описать процесс установки и настройки VPN-сервера на CentOS6 с пользователями в MySQL и авторизацией через радиус для шифрованного соединения по ms-chap-v2 и mppe.

    Преамбула

    Откуда берутся данные статьи? Все просто. Когда мы ищем соискателей работы, например, на должность системного администратора, то после отбора кандидатов на предварительном собеседовании, состовляются тестовые задания, реализуются своими силами, а потом предлагаем их решить соискателям. Для исполнения заданий, соискателю предоставляется виртуальная машина, доступ в интернет, и определенное время. Время расчитывается просто — наша реализация *2. При этом, Вы можете считать, что все необходимые решения (how-to) можно найти на просторах интернета, однако, мы учитываем это, и поэтому не берем готовых решения, а состовляем и решаем предварительно их сами, на свежих дистрибютивах. Кстати, бывают случаи, когда мы натыкаемся на определенные проблемы при реализации (маленькие незадокументированные шалости разработчиков), и в случае, если кандидат идет правильным курсом, но попадает в затык именно на этой проблеме, подсказываем найденное нами, её решение.


    Дано

    Виртуальная машина на KVM с белым IP и свежеустановленной CentOS6 x86_64 minimal.

    Задача

    1. Установить и настроить в связке pptpd, freeradius2, radiusclient-ng и mysql.
    2. Создать 2-х клиентов для подключения к настроенному VPN-серверу, с выходом в нет четез NAT. Один клиент с динамическим получением адреса, второй с постоянным IP.
    3. Перенести pool адресов для раздачи динамическим клиентам из pptpd в radius.

    Решение

    Первым делом необходимо установить все необходимые пакеты. radiusclient-ng и pptpd нет в стандартных репозиториях, поэтому для radiusclient-ng мы подключим EPEL-репозиторий, а pptpd-пакет скачаем напрямую.
    # rpm -Uhv fedora-epel.mirror.lstn.net/6/x86_64/epel-release-6-5.noarch.rpm
    # yum install freeradius freeradius-mysql radiusclient-ng radiusclient-ng-utils freeradius-utils mysql mysql-devel mysql-server
    #rpm -Uhv poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.x86_64.rpm


    далее настроим mysql и зададим пароль:
    mysql_secure_installation

    Собственно перейдем к настройке pptpd. Приводим файлы настройки к следующему виду:
    # cat /etc/pptpd.conf
    option /etc/ppp/options.pptpd
    logwtmp
    localip 192.168.80.1
    remoteip 192.168.80.5-35


    # cat /etc/ppp/options.pptpd
    name pptpd
    refuse-pap
    refuse-chap
    refuse-mschap
    require-mschap-v2
    require-mppe-128
    proxyarp
    lock
    nobsdcomp
    novj
    novjccomp
    nologfd
    plugin radius.so
    plugin radattr.so


    с pptpd закончено, переходим к настройке radiusclient-ng:

    Первая проблема, с которой мы столкнулись, это нежелание pptpd работать с radiusclient-ng из-за путей куда он установлен, поэтому создаем софт-линк следующим образом
    # ln -s /etc/radiusclient-ng /etc/radiusclient
    и закоментируем в файле /etc/radiusclient-ng/radiusclient.conf строчку
    #bindaddr *
    иначе ругается на неизвестный параметр.
    редактируем /etc/radiusclient-ng/servers, добавляем локальный radius-сервер, к которому будет обращаться клиент
    localhost YouRsUpErpAAs

    Вторая проблема, с которой нам пришлось столкнуться, это отсутствие в пакете radiusclient-ng атрибутов от mircosoft, после гугления, необходимые артибуты были найдены. копируем имеющиеся файлы с атрибутами из /usr/share/radiusclient-ng/ в /etc/radiusclient-ng/
    # cp /usr/share/radiusclient-ng/diction* /etc/radiusclient-ng/
    в /etc/radiusclient-ng/ создаем файл dictionary.microsoft со следующим содержимым:
    VENDOR Microsoft 311 Microsoft

    ATTRIBUTE MS-CHAP-Response 1 string Microsoft
    ATTRIBUTE MS-CHAP-Error 2 string Microsoft
    ATTRIBUTE MS-CHAP-CPW-1 3 string Microsoft
    ATTRIBUTE MS-CHAP-CPW-2 4 string Microsoft
    ATTRIBUTE MS-CHAP-LM-Enc-PW 5 string Microsoft
    ATTRIBUTE MS-CHAP-NT-Enc-PW 6 string Microsoft
    ATTRIBUTE MS-MPPE-Encryption-Policy 7 string Microsoft
    ATTRIBUTE MS-MPPE-Encryption-Type 8 string Microsoft
    ATTRIBUTE MS-MPPE-Encryption-Types 8 string Microsoft
    ATTRIBUTE MS-RAS-Vendor 9 integer Microsoft
    ATTRIBUTE MS-CHAP-Domain 10 string Microsoft
    ATTRIBUTE MS-CHAP-Challenge 11 string Microsoft
    ATTRIBUTE MS-CHAP-MPPE-Keys 12 string Microsoft
    ATTRIBUTE MS-BAP-Usage 13 integer Microsoft
    ATTRIBUTE MS-Link-Utilization-Threshold 14 integer Microsoft
    ATTRIBUTE MS-Link-Drop-Time-Limit 15 integer Microsoft
    ATTRIBUTE MS-MPPE-Send-Key 16 string Microsoft
    ATTRIBUTE MS-MPPE-Recv-Key 17 string Microsoft
    ATTRIBUTE MS-RAS-Version 18 string Microsoft
    ATTRIBUTE MS-Old-ARAP-Password 19 string Microsoft
    ATTRIBUTE MS-New-ARAP-Password 20 string Microsoft
    ATTRIBUTE MS-ARAP-PW-Change-Reason 21 integer Microsoft
    ATTRIBUTE MS-Filter 22 string Microsoft
    ATTRIBUTE MS-Acct-Auth-Type 23 integer Microsoft
    ATTRIBUTE MS-Acct-EAP-Type 24 integer Microsoft
    ATTRIBUTE MS-CHAP2-Response 25 string Microsoft
    ATTRIBUTE MS-CHAP2-Success 26 string Microsoft
    ATTRIBUTE MS-CHAP2-CPW 27 string Microsoft
    ATTRIBUTE MS-Primary-DNS-Server 28 ipaddr Microsoft
    ATTRIBUTE MS-Secondary-DNS-Server 29 ipaddr Microsoft
    ATTRIBUTE MS-Primary-NBNS-Server 30 ipaddr Microsoft
    ATTRIBUTE MS-Secondary-NBNS-Server 31 ipaddr Microsoft
    VALUE MS-BAP-Usage Not-Allowed 0
    VALUE MS-BAP-Usage Allowed 1
    VALUE MS-BAP-Usage Required 2
    VALUE MS-ARAP-PW-Change-Reason Just-Change-Password 1
    VALUE MS-ARAP-PW-Change-Reason Expired-Password 2
    VALUE MS-ARAP-PW-Change-Reason Admin-Requires-Password-Change 3
    VALUE MS-ARAP-PW-Change-Reason Password-Too-Short 4
    VALUE MS-Acct-Auth-Type PAP 1
    VALUE MS-Acct-Auth-Type CHAP 2
    VALUE MS-Acct-Auth-Type MS-CHAP-1 3
    VALUE MS-Acct-Auth-Type MS-CHAP-2 4
    VALUE MS-Acct-Auth-Type EAP 5
    VALUE MS-Acct-EAP-Type MD5 4
    VALUE MS-Acct-EAP-Type OTP 5
    VALUE MS-Acct-EAP-Type Generic-Token-Card 6
    VALUE MS-Acct-EAP-Type TLS 13


    редактируем файл /etc/radiusclient-ng/radiusclient.conf на предмет
    dictionary /etc/radiusclient-ng/dictionary

    редактируем файл /etc/radiusclient-ng/dictionary, добавляя в конец
    INCLUDE /etc/radiusclient-ng/dictionary.microsoft
    INCLUDE /etc/radiusclient-ng/dictionary.merit


    с клиентом тоже закончили, переходим к настройке mysql:
    пакет freeradius-mysql содержит необходимые файлы для импорта их в mysql, находятся они в /etc/raddb/sql/mysql/
    подредактируем файл admin.sql, что бы задать пароль отличный от стандартного
    vim admin.sql
    :%s/radpass/radpass235/g
    :wq

    подключаемся к mysql, создаем DB, импортируем таблицы и создаем пользователей
    mysql -p
    mysql> create database radius;
    mysql> \. admin.sql
    mysql> use radius;
    mysql> \. schema.sql

    далее создаем пользователей и их настройки
    mysql> INSERT INTO radusergroup (username,groupname) values ('user1','static-ip-vpn');
    mysql> INSERT INTO radusergroup (username,groupname) values ('user2','dinamic-ip-vpn');

    должно получится следующее
    mysql> select * from radusergroup;
    +----------+----------------+----------+
    | username | groupname | priority |
    +----------+----------------+----------+
    | user1 | static-ip-vpn | 1 |
    | user2 | dinamic-ip-vpn | 1 |
    +----------+----------------+----------+

    mysql> INSERT INTO radcheck (username,attribute,op,value) values ('user1','User-Password','==','pass1');
    mysql> INSERT INTO radcheck (username,attribute,op,value) values ('user2','User-Password','==','pass2');

    mysql> select * from radcheck;
    +----+----------+---------------+----+-------+
    | id | username | attribute | op | value |
    +----+----------+---------------+----+-------+
    | 1 | user1 | User-Password | == | pass1 |
    | 2 | user2 | User-Password | == | pass2 |
    +----+----------+---------------+----+-------+

    заполняем таблицу radgroupreply
    mysql> INSERT INTO radgroupreply (groupname, attribute, op, value) values ('dinamic-ip-vpn','Service-Type',':=','Framed-User');
    и так далее, чтоб получить следующее
    mysql> select * from radgroupreply;
    +----+----------------+--------------------+----+---------------------+
    | id | groupname | attribute | op | value |
    +----+----------------+--------------------+----+---------------------+
    | 1 | dinamic-ip-vpn | Service-Type | := | Framed-User |
    | 2 | dinamic-ip-vpn | Framed-Protocol | := | PPP |
    | 3 | dinamic-ip-vpn | Framed-Compression | := | Van-Jacobsen-TCP-IP |
    | 4 | static-ip-vpn | Framed-Compression | := | Van-Jacobsen-TCP-IP |
    | 5 | static-ip-vpn | Framed-Protocol | := | PPP |
    | 6 | static-ip-vpn | Service-Type | := | Framed-User |
    +----+----------------+--------------------+----+---------------------+


    заполняем таблицу radreply чтобы задать постоянный ip для первого клиента
    mysql> INSERT INTO radreply (username, attribute, op, value) values ('user1','Framed-IP-Netmask',':=','255.255.255.255');
    mysql> INSERT INTO radreply (username, attribute, op, value) values ('user1','Framed-IP-Address',':=','192.168.80.90');

    mysql> select * from radreply;
    +----+----------+-------------------+----+-----------------+
    | id | username | attribute | op | value |
    +----+----------+-------------------+----+-----------------+
    | 1 | user1 | Framed-IP-Netmask | := | 255.255.255.255 |
    | 2 | user1 | Framed-IP-Address | := | 192.168.80.90 |
    +----+----------+-------------------+----+-----------------+

    В итоге, мы занесли в базу данный 2-х клиентов, user1 с паролем pass1 и статическим ip — 192.168.80.90, и user2 с паролем pass2 и получением динамического ip из пула указанного в настройках pptpd. Здесь намеренно пользователи разнесены по группам, с учетом дальшейшего увеличения клиентов, можно было просто создать все атрибуты для обоих клиентов в таблице radreply, но при большом количестве клиентов, удобнее использовать группы, где указываются одинаковые для клиентов группы атрибуты. Так же, в группах можно указывать разные пулы адресов и еще многое другое, но об этом сейчас не будем, ведь нам необходимо решить задачу в поставленные сроки.

    Переходим к настрокам radius. Здесь я приведу примеры файлов, в которых производились изменения:
    /etc/raddb/clients.conf
    client 127.0.0.1 {
    secret = YouRsUpErpAAs
    shortname = localhost
    nastype = other
    }


    Третья проблема, на момент отладки, когда еще radius не был подключен к mysql, столкнулись с тем, что если в файле /etc/raddb/users клиенты оказывались прописанными не в начале файла, ничего не работало.

    /etc/raddb/users
    DEFAULT Simultaneous-Use := 1
    Fall-Through = 1

    Это необходимо прописать, чтоб не было нескольких подключений с одним и тем же логином одновременно

    /etc/raddb/radiusd.conf
    в секции modules уберем комментарии с
    $INCLUDE sql.conf

    /etc/raddb/sql.conf
    прописываем данные для подключения к mysql
    password = "radpass235"

    /etc/raddb/sites-enabled/default
    в секциях authorize, session, post-auth и accounting включаем sql
    в секции authorize включаем mschap

    /etc/raddb/modules/mschap
    mschap {
    use_mppe = yes
    require_encryption = yes
    require_strong = yes
    }


    Пожалуй, задача практически решена, остались некоторые штрихи:

    Настроить iptables и разрешить форвард, чтоб выпустить клиентов в мир
    iptables -I INPUT -p gre -j ACCEPT
    iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT
    iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -I FORWARD -s 192.168.80.0/24 -o eth0 -j ACCEPT
    iptables -I FORWARD -d 192.168.80.0/24 -i eth0 -j ACCEPT
    iptables -t nat -I POSTROUTING -s 192.168.80.0/24 -o eth0 -j MASQUERADE


    /etc/sysctl.conf
    net.ipv4.ip_forward = 1
    # sysctl -p


    Уже на данной стадии, если мы запустим установленные сервисы, мы сможем подключится к нашей машине по vpn, осталось только перенести пул адресов выдаваемых динамическим клиентам из pptpd в radius. Для этого есть несколько вариантов, вплоть до помещения пула в mysql. Мы используем простой вариант.

    /etc/raddb/modules/ippool
    в секции ippool main_pool, делаем правки для своего пула адресов
    range-start = 192.168.80.35
    range-stop = 192.168.80.65


    в файле /etc/raddb/sites-enabled/default добавляем в соответствующие секции

    accounting {
    main_pool
    }

    post-auth {
    main_pool
    }


    далее, создаем файлы, где пул будет храниться
    touch /etc/raddb/db.ipindex /etc/raddb/db.ippool
    chmod 664 /etc/raddb/db.ipindex /etc/raddb/db.ippool
    chown root:radiusd /etc/raddb/db.ipindex /etc/raddb/db.ippool


    и добавляем в /etc/raddb/users
    DEFAULT Pool-Name := main_pool
    Fall-Through = Yes


    перезапускаем radius, и пробуем подключится к машине по vpn, все должно работать. Подробную статистику подключений мы можем увидеть в таблице radius.radacct
    выделенные адреса из пула, можно посмотреть командой:
    rlm_ippool_tool -av /etc/raddbdb/db.ippool /etc/raddbdb/db.ipindex

    Послесловие


    Я намеренно подчеркивал проблемы, с которыми нам пришлось столкнутся. Нами было потрачено чуть более часа на развертование данной системы. Для кандидатов было выделенно 2,5 часа. Ни один из 4-х соискателей не выполнил данное задание в полном объеме. Лишь один из них практически дошел до конца пути. С ним, возможно, мы продолжим сотрудничество.
    Я конечно понимаю, что не все работодатели используют такой метод тестов соискателей работы. Однако, я считаю, это один из лучших способов, действительно проверить знания и возможности кандидатов. Ведь если кандидат решил (или почти решил) подобную задачу, значит, через какое то время, вхождения в коллектив и погружение в структуру сети, на него вполне можно положиться.

    Я бы мог назвать статью — «Как мы выбираем работников», и описать процес предварительного отбора и практического задания в общих чертах, но тогда, статья бы не имела свою ценность как около-техническая, и не была бы в виде how-to, а значит была бы менее полезной, на мой взгляд. Я знаю что здесь есть несколько похожих статей, вплоть до связывания с abills, но им более полутора лет и они под другие дистры.

    UPD: возможно соискатели читают Хабр, и увидят, наконец, решение не пройденного ими задания.

    UPD2: По поводу нехватки времени на реализацию, пишут, что 2,5 часа это мало. Подчеркну, время не главный, хотя и существенный показатель. Главное «верный путь».

    UPD3: Навеяно комментами об отстойности pptp протокола. Идентично обстоит дело с l2tp.
    Вместо pptpd ставим xl2tpd
    #yum install xl2tpd
    Файлы настроек приводим к следующему виду:
    # cat /etc/xl2tpd/xl2tpd.conf
    [global]
    port = 1701
    auth file = /etc/xl2tpd/l2tp-secrets
    access control = no
    rand source = dev
    [lns default]
    exclusive = no
    ip range = 192.168.80.5-192.168.81.35
    local ip = 192.168.80.1
    require chap = yes
    refuse pap = yes
    require authentication = yes
    name = VPNserver
    ppp debug = yes
    pppoptfile = /etc/ppp/options.xl2tpd
    length bit = yes
    flow bit = yes


    # cat /etc/ppp/options.xl2tpd
    ipcp-accept-local
    ipcp-accept-remote
    lcp-echo-failure 30
    lcp-echo-interval 5
    noccp
    nodeflate
    auth
    crtscts
    idle 1800
    mtu 1410
    mru 1410
    defaultroute
    debug
    proxyarp
    connect-delay 5000
    lock
    plugin radius.so
    plugin radattr.so
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 65

      +1
      Способ хороший, но признаюсь — я тоже не справился бы за поставленное время с задачей. Интересно было бы узнать, какие требования к кандидатам были для этой вакансии
        –1
        Стандартный минимальный набор для системного администратора *nix:

        bind
        shell scripting (хотя б на начальном уровне)
        mysql (управление и тюнинг)
        apache
        nginx
        pppoe
        radius
        php (настройка как модуль и как cgi, хотяб начальные знания языка)
        маршрутизация

        вроде ничего для минимума не забыл
          0
          Забыл вот еще что, обязательно:
          snmp
            0
            мда… значит я перерос минималку лет на 10 — это радует, хотя и поиском работы не обременен :)
            А вообще, не очень понятен выбор радиуса, если, конечно, не сотни/тясячи клиентов
              +1
              Радиус необходим главным образом для того, что б не разрешать дублированный вход с одним логином, средствами pptpd этого не решить никак.
              –1
              Настоящий администратор начинается с того момента, когда он сам может настроить почту
            +2
            спасибо)
              +2
              >возможно соискатели читают Хабр, и увидят, наконец, решение не пройденного ими задания.

              Вот бы все работодатели так отписывались на хабре (или, хотя бы, сообщали, чем конкретно им соискатель не подошёл) — чтоб знать, что нужно подтянуть, на что обратить особое внимание и т. п.
                0
                2.5 часа?.. ээ… хотя бы 4 бы давали… если человек сталкивался с такой, или похожей, связкой — справится за час… если не сталкивался, то 2.5 всё-таки маловато…
                  0
                  Мы же не выбираем, кто сталкивался, а кто нет. Судя по Вашему высказыванию, получается, что любую задачу можно решить, вопрос в том, сколько времени на это потребуется.
                  На самом деле, кандидаты, изначально указали, что работали с радиусом, а это значит, что они должны быть способны решить поставленную задачу.
                  Кстати, один из них, судя по всему, вообще не знал что такое радиус, и видать, указывал в ремюме знакомые слова.
                  И еще, в действительности, время не очень критично, и если б, мы увидели, что «дорога верная», и не хватает времени, то просто бы попросили растолковать дальнейшие действия. Нов нашем случае, такого не произошло.
                    +1
                    И еще, в действительности, время не очень критично, и если б, мы увидели, что «дорога верная», и не хватает времени, то просто бы попросили растолковать дальнейшие действия.
                    Ну это меняет дело, согласен. Разобраться в предмете и начать действия за 2.5 часа вполне можно. Просто за себя пытаюсь оценить, сколько бы времени потратил, не просмотрев ваши конфиги, и совсем не уверен что вписался бы в 2.5 часа с получением полностью функционального решения.
                      0
                      А вы почаще пробуйте реализовывать задания такого типа, благо виртуалки это позволяют, глядишь и опыта будет много больше, пусть даже не в продакш, но по крайней мере, в суть вникнуть в дальнейшем будет намного проще.
                        0
                        Мне уже теперь опыт другого плана нужен, я в программисты ушел :-). Хотя надеюсь иногда, как минимум раз в год, при решении задач в категории admin с очередных RuCTF Quals, буду стряхивать пыль со своих отложенных на полку знаний. В прошлом году, например, там был таск на настройку маршрутизатора с сотней интерфейсов, полумиллионом статических правил и просчет на нем шлюзов для нескольких миллионов пакетов — при решении с помощью Linux пришлось немного оттюнинговать сборщик мусора в ядре… А уж какие они извращения с аутентификацией в кривом AD и настройкой SSH в restricted mode или с SELinux устраивали…
                          0
                          Странно, обычно бывает наоборот, из программеров в админы, но в начальной и средней стадии. как то так.
                            0
                            Не знаю. Хороший админ на мой взгляд как правило должен быть хоть каким-то программистом, а вот из разработчиков админы зачастую никудышние… Хотя вопрос, конечно, спорный. Возможно что и нет никакой разницы в какую сторону…
                              0
                              Хотя вообще всё-таки из простых разработчиков скорее в тим-лиды, в менеджеров и в руководителей уходят… Правда про админов тоже можно так сказать, что они превращаются в главных админов и технических директоров.
                            0
                            А с Radius'ом я ещё на первой работе познакомился, правда не слишком близко — всё сводилось к перенастройке с нуля старого PPP-шлюза с пулом модемов, и переходом с какого-то уж больно старого radius-сервера (не помню как назывался но он не собирался под тогдашней свежей FreeBSD) на freeradius.
                    +3
                    Есть вещь, которая поражает меня уже много лет: на всех форумах полно ругани в адрес MS по поводу PPTP — и не криптостойкий де, и аутенфикации сервера не производит, и NAT'ить GRE сложно, и вообще — его MS придумал, и называется он не OpenVPN.
                    Критика в общем справедливая, протокол старый, MS его и сам давно использовать не рекомендует.
                    Вместо него уже чего только нет — L2TP/IpSec, SSTP (привет OpenVPN!), IKEv2, DirectAccess — на любой вкус и цвет.
                    Но мы не будем использовать, мы напишем 100-500-й howto по настройке pptpd.
                      –1
                      Здесь совсем не принципиально, pptpd это или openvpn, речь идет о тестовом задании, или Вы не удосужились прочитать?
                      Далее, в каждой how-to, что здесь выкладывают, находятся люди вроде Вас, которые обязательно скажут — «очередной how-to».
                      То что используют вместо него на продакш системах много лет, к Вашему сведению, мы все здесь знаем, да и используем. Новичкам же, pptpd очень удобен, и не потому что он от M$, и даже не потому что очень много how-to на эту тему, а просто потому что, обычные юзеры, которые используют виндовс, могут к нему подключится нативно, без установки дополнительных приложений и вмешательства более продвинутых юзеров со стороны.
                        +2
                        По-моему это вы не удосужились прочитать, что я написал. К Вашему сведению, все перечисленное работает без установки дополнительных приложений и вмешательства более продвинутых юзеров со стороны.
                        Спасибо, что насрали в карму.
                          0
                          Ну для начала, я никуда не какал, так что не стоит, это раз
                          Два — попробуйте предложить простому юзеру настроить L2TP/IPSec со своего компа и простое ВПН подключение, будете сильно удивлены, уверяю Вас.
                          Далее, диалог считаю бессмысленным, ибо, Вы изначально настроены враждебно.
                            0
                            Я выразил личное недоумение — где вы увидели враждебность? С чего вы вдруг решили перейти на личности и рассказать мне про «людей вроде меня»?

                            Основное предназначение L2TP/IpSec — удаленный доступ доменных машин. Установка сертификата на машину в доменной среде производится без участия пользователя. Вся прочая настройка VPN абсолютно(!) идентична настройке при PPTP.
                            Для недоменных (домашних) машин установка сертификата возможна через создание гостевой PPTP зоны и принудительному перенаправлению клиента на CA. Дополнительные действия пользователя — нажать одну кнопку.
                              +1
                              Не надо высоких Выражений, типа CA, Гостевая зона, и т.д. — Вы это не мне (мне не стоит, уверяю), Вы это простому пользователю объясните.
                              Впрочем, это Ваше личное дело как считать.
                              По поводу перехода на личности — такого не было, ибо «людей вроде Вас» и Вы, не одно и то же.
                              В конце концов, Вы высказались, Вам ответили, слава Богу, все в пределах правил. Чего же боле…
                                0
                                Бред какой-то. Зачем простому пользователю вообще об этом знать?
                                  0
                                  Действительно бред.
                                  Как Вы считаете, если работодатель поставит задачу потенциальному соискателю установить и настроить, скажем FreeBSD 4.0, потому что «так надо», должен ли соискатель назвать это бредом?
                                  Просто посмотрите на это без эмоций.
                                    0
                                    Пожалуйста прочитайте мой начальный комментарий. Есть в нем что-нибудь про соискателей, работодателей и интервью?
                                    Нет. Он про протоколы.
                                      0
                                      Все, закончили, он(комментарий) действительно про протоколы, но статья то не про них — теперь усвоили.
                                      Если выйдет новость, что в скором времени, к примеру, выйдем Windows8, Вы же не станете писать в комментах о том, что «нах это надо» и «ведь есть давно уже гном третий» и т.д.
                                      То же самое и сейчас — отписались не по теме — жнёте плоды.
                                        0
                                        Действительно, разговор о VPN протоколах в теме «VPN-сервер в стиле how-to (pptpd+mysql+radius) на CentOS6» — это чудовищный оффтопик.
                                        Нет мне прощения.
                                          0
                                          Да Вы проще сделайте. Напишите статью, про те протоколы, которые Вам по нраву, и будет толка больше, чем Ваше теперешнее разглагольствование ни о чем.
                                            0
                                            Теперь вы решили указать мне, что я должен делать?
                                            Спасибо. До свидания.
                                              0
                                              Я бы мог написать еще много приятных слов, но воздержусь.
                                        0
                                        Добавлю: в данном, конкретном случае, нужен был pptp, именно он, ну или мы так посчитали нужным, сделать тест по pptp.
                                        Удовлетворены?
                              0
                              Да, еще, возможно для Вас это будет новостью, но куча мелких провайдеров используют именно pptp для выхода в интернет, к примеру в домашних сетях.
                              Более того, я Вас еще удивлю — многие системы бронирования, в том числе Amadeus и Galileo (общемировые системы), в некоторых случаях до сих пор используют pptp.
                              Я не «за» и не «против» pptp, я лишь довожу до Вашего сведения.
                                +1
                                Посылаю лучи высококогерентного поноса таким недопровайдерам, во главе с корбилайном. Производители soho-роутеров настолько офигели от этого, что называют его теперь Russian-VPN. Никому в мире, млеать, не приходит в голову использовать VPN для аутентификации пользователей в биллинге.
                                  0
                                  во всех ваших комментах в топике наблюдается чсв over9000, не понятные факты которые вы кому-то доводите до сведения и ни грамма информации. путаетесь в своих же словах и создаете впечатление что сами вчера прочитали по диагонали чьи-то записки или послушали на работе чье-то мнение отчего почувствовали себя всезнайкой, но в теме то по-прежнему плаваете…

                                  >Да, еще, возможно для Вас это будет новостью, но куча мелких провайдеров используют именно pptp для выхода в интернет, к примеру в домашних сетях.

                                  вы приводите в пример хоминеты (на которые тащемто вообще грех ориентироваться) и кого-то еще (корбилайны мир в себе и варятся в собственном соку) с целью показать «смотрите они пользуют что-то там значит и нам надо это пользовать», — мышление нуба ничего не смыслящего в отрасли. вы бы хотя бы задумались о причинах по которым хоминеты/корбилайны и ко пользуют в данном случае vpn'ы для предоставления доступа интернета. если хорошо подумать, то в списке этих причин пункт «это самый удобный и лучший способ доступа» будет отсутствовать вовсе. и с чего вы решили что никто из вышеперечисленных не мечтает избавиться от ненавистных vpn'ов, но в силу определенных и местами разных причин не может это сделать?
                                    0
                                    Я рад, что в Ваших комментах чвс «не наблюдается», в порыве навязать свою точку зрения.

                                    Не вижу ни разу никакой путаницы в своих ответах, если Вы про pptp от M$, то я не сказал, что это так и есть, обратите внимание, кто это сказал. Я вообще не вдавался в подробности о начальном происхождении pptp. А то, что он символизируется с M$, то, надеюсь, этого Вы не будете отрицать.
                                +1
                                > Новичкам же, pptpd очень удобен, и не потому что он от M$, и даже не потому что очень много how-to на эту тему, а просто потому что, обычные юзеры, которые используют виндовс, могут к нему подключится нативно, без установки дополнительных приложений и вмешательства более продвинутых юзеров со стороны.

                                запутались в своих же словах. pptpd не от MS, а порождение разработчиков из gnu-коммьюнити. от MS протокол pptp.

                                windows нативно умеет как-минимум еще l2tp, почему не l2tp? у него кстате транспорт не gre => лишен проблем с nat'ами.

                                ну и да, я не понимаю, как этот конструктор из костылей и подпорок для pppd/pptpd может быть удобным? в vpn линуксам всегда было нечем гордиться. тестовое задание на «задрочить». мне бы и в голову не пришло соискателя роботы насиловать тестовым заданием «а ну настрой мне впн на костылях на линуксе за N минут». и не только потому что это бессмысленные мучения, а еще и потому что навык «нагуглить хавту» хоть и приветствуется, но не является самым важным и приоритетным. а именно его вы и «тестируете» такими заданиями.

                                впрочем критерии и их приоритеты в поиске сотрудника каждый определяет сам. кому-то нужен специалист понимающий суть вещей в его работе, а кому-то нужна обезъяна обученная гуглить хавтушки и за N минут делать по ним что-то.
                                  0
                                  ну xl2tpd настроить не сложнее, ради интереса вечером попробую привязать его к радиусу.

                                    0
                                    а кстати,

                                    > в vpn линуксам всегда было нечем гордиться.

                                    > ну и да, я не понимаю, как этот конструктор из костылей и подпорок для pppd/pptpd может быть удобным?

                                    Про костыли напомнило.
                                      0
                                      псто нытиков о побеждании рраса на клиентском виндовсе. не понимаю зачем впн-сервер в клиентской системе. впрочем виндовс жжот не своими впнами и сетевыми возможностями, в инфраструктуре сети MS этими вещами занимается железо правильных вендоров.

                                      «просто сделать vpn сервер» и «есть чем гордиться в сетях и vpn» относилось к FreeBSD вообще и mpd частности.

                                      но вобщем-то суть моего коммента не в том где проще или где лучше. суть в том что вы замеряете на собеседовании не совсем то что нужно на мой скромный взгляд.
                                        0
                                        Ну это на Ваш взгляд, ведь так.
                                        Замеряют то, что надо, или то, что считают нужным — вроде как должно быть понятно
                                          0
                                          я на собеседовании ничего не замеряю, а топикстартер и на мой взгляд тоже не совсем корректен при построении задач для него.

                                          p.s. " в инфраструктуре сети MS этими вещами занимается железо правильных вендоров" — в нормальных конторах само собой asa/pix имюет место быть, а в разного рода офисах «в инфрастрктуре сети MS zver cd этими вещами занимается windows server 2003 с рутрэкера» я бы так сказал =)
                                            –1
                                            в инфраструктуре сети MS этими вещами занимается железо правильных вендоров.


                                            ну это вы зря, RRAS и «надстройки» к нему ISA\TMG — более чем внятное решение
                                            а уж UAG — так вообще мечта поэта
                                              +1
                                              емнип isa не ставится на что-то кроме windows server.
                                                0
                                                Само собой, ну так мы же вроде про инфраструктуру MS сети? Куда ж там без windows server.
                                                  0
                                                  ну в ссылке то товарища phoen'а про windows xp и vpn-сервер речь Ж)
                                                0
                                                Гыгы, про UAG это вы хорошо пошутили. Он ущербен. Он в принципе не может работать так, как должен — потому что даже его разработчики не знают, как он работает (у меня есть прямые телефоны этих разработчиков). Хотите, я вам подкину контакты людей, которые ЭТО пытаются заставить работать в продакшене уже полтора года?
                                                Уже то, что UAG рубит урлы с диакритическими символами, ставит под очень большое сомнение факт применимости этой поделки в реальной жизни.
                                                  0
                                                  В продуктив пока не ставили, крутим в виртуалках — с виду работает, особых спецэффектов не заметно.
                                                  Спасибо за информацию, присмотримся поплотнее.
                                    0
                                    так а расскажите про вакансию?
                                      +2
                                      Ты уже не прошел. Должен был по нику выявить сайт, далее через 0-day уязвимость в hardened-linux проникнуть на фронт-сервер, оттуда просочиться сквозь файервол и ips в доверенный сегмент, оттуда сквозь database-файервол попасть на сервер БД, найти там кадровую базу (которая, естественно, называется «бухгалтерия» и вложена в базу «склад»), далее найти вакансию и вписать там свое имя. На все это тебе 2.5 часа и сделать это надо с android-телефона по GPRS.
                                        +1
                                        так, теперь вакансия не интерестна — рассказывайте про database-файервол :)
                                          +1
                                          Это логическое развитие систем класса ips, эдакий level-up. Входит в класс систем application-level файерволов, наиболее известны web-application firewall (apache mod_security, Imperva WAF, cisco WAF, citrix netscaler имеет такую функцию и пр.) и database firewall (Imperva DBF/DSS, Guardium DBF). DBF (как и WAF, впрочем) работает не только на уровне транспортно-прикладного протокола, как ips, но и понимает саму суть транзакций, разбирая payload целиком, выискивая аномалии, заведомо вредоносные запросы, выявляя растянутые во времени атаки путем внутренней корреляции отдельных срабатываний в комплексные алерты, умеет мониторить и контроллировать в том числе и локально залогинившихся админов, вплоть до SYSDBA.
                                          Весьма полезные штуки, особенно в больших организациях с критичными сервисами.
                                        0
                                        Вакансия за пределами СНГ, в одном славном, но не большом, европейском провайдере.
                                          0
                                          соискатели местные?
                                            0
                                            само-собой
                                            +1
                                            Решили принести в Европу Russian VPN? ;) Правильно, давно пора заставить этих зажравшихся западников реализовать нормальную поддержку pptp в NetworkManager!
                                          0
                                          придумать бы как сделать что-б он ещё некий маршрут посылал при установке pptp сессии, но кроме как 33ей опции dhcp (релэить?) ничего на ум не приходит.
                                            0
                                            Через 249-ю опцию и DHCP Relay это делается. Gateway при этом можно указать любой — все маршруты полученные от DHCP через VPN — будут рутиться в него.
                                            Альтернатива — CMAK, там можно даже возможность по HTTP забирать таблицу рутинга настроить можно. Но по мне — оно излишне.
                                              0
                                              121-ая опция. Vista и выше понимают из коробки. Linux после напильника.
                                                0
                                                Так до Vista ее винда не понимает.
                                                Можно конечно обе слать — 121, 249. Если клиент понимает обе, то приоритет будет у 121.
                                              0
                                              Спасибо за статью! Очень хорошо что именно на примере центоси 6-й пример!
                                                0
                                                Пользуясь случаем спрошу (т.к. еще нигде в статьях не видел проработки этого вопроса):
                                                Планировались ли подключения клиентов с Windows (стандартными средствами)?
                                                Если да, то каким образом клиенты на Windows подключаются из-за NAT? (Вы ведь строите vpn-сервер не только в локалке) — ведь виндовый pptp работает через GRE (не IP!) протокол, а L2TP отучается от GRE только «грязным хаком» реестра…
                                                  0
                                                  Читал статью и думал — «К чему бы докопаться?». Но когда дочитал, понял, что как то так и стоит поступать. Действительно зачем душить людей теорией. Приблизительно так же поступал и я, когда искал человека на свое место на прошлое место работы. Единственное что было не так — задач было больше и они были более мелкие, чтобы можно было более обширно оценить знания соискателя(наверное с каждым случается дикий затуп с какой-нибудь мелкой задачей и не хотелось бы быть предвзятым). Ах и да — я бы наверное не стал ставить это дело на 6 центос — кто его знает — где там вылезет проблема, но это уже больше дело привычки.

                                                  PS. Спасибо за статью. Толковый мануал побуждает развернуть это дело на тестовой платформе)
                                                    0
                                                    лучше взять accel-ppp и не страдать с pptp.
                                                    0
                                                    Как можно проверить связку radiusclient-ng -> freeradius? Сам фрирадиус проверен и отвечает как положено, а единственное, что использует radiusclient-ng это pppd, который ставился до радиуса и ужасно не хочется ломать продакшн. Есть ли у него тулзы для проверки запроса на RADIUS хотя бы вида user/password?

                                                    PS: в словарях radiusclient-ng микрософта нет до сих пор. Ну не редиски?

                                                    Only users with full accounts can post comments. Log in, please.