PPP

Поднимаем ppp на Centos
  • Устанавливаем ppp и pptpd:
    rpm -i http://poptop.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm
    yum install -y ppp pptpd
  • Правим /etc/pptpd.conf, а точнее раскомментируем строки:
    localip 192.168.0.1
    remoteip 192.168.0.234-238,192.168.0.245
    Здесь loсalip это адрес на другой стороне нашего ppp тунеля, a remoteip диапазон адресов, ip из которого будут выдаваться клиентам.
  • Правим /etc/ppp/options.pptpd. Совершенно точно нам необходимо указать ДНС - в примере указаны DNS сервера Google:
    ms-dns 8.8.8.8
    ms-dns 8.8.4.4
    А в секции BSD шифрования необзодимо обязательно указать 2 опции (без этого не будет работать на ipad или iphone):
    # Disable BSD-Compress compression
    nobsdcomp 
    noaccomp
  • Обязательно в файле /etc/ppp/chap-secrets необходимо прописать логин и пароль для доступа к VPN. Как-то так:
    # Secrets for authentication using CHAP
    # client        server  secret                  IP addresses
    your_vpn_login      pptpd    password       *
    your_vpn_login1      pptpd    password1       *
  • Стартуем VPN сервер и добавляем в автозагрузку:
    /etc/init.d/pptpd start
    chkconfig pptpd on
    Теперь можем проверить, что поднятие тунеля с нашего устройства проходит успешно, хотя дотянуться до внешнего мира мы еще не сможем - надо настраивать NAT.
  • В файле /etc/sysctl.conf разкоменчиваем строку:
    net.ipv4.ip_forward=1
    И применяем изменения, выполнив команду в консоли:
    sysctl -p
  • Добавляем правило NATа, где 1.2.3.4 реальный ip на интерфейсе eth0 вашего сервера:
    iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source 1.2.3.4
    Сохраняем изменения:
    /etc/init.d/iptables save
    Ну и добавим iptables в автостарт (если у вас еще это не сделано):
    chkconfig iptables on
  • Тестируем с удовольствием!