VPN с помощью PPTP с авторизацией в домене windows.

From SysadminWiki.ru
Jump to: navigation, search
Проверено
PPTPD v1.3.4 CentOS release 5.5 (Final) 2010.12.02 Cyber

Устанавливаем pptpd:

yum update
rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm
yum install pptpd

Правим smb.conf:

[global]
workgroup = YOURDOMAIN
realm = YOURDOMAIN.COM
server string = your-server-name
load printers = no
log file = /var/log/samba/%m.log
security = ads
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
local master = no
domain master = no
preferred master = no
wins server = your-wins-server-ip-address
dns proxy = no
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind use default domain = yes
interfaces = your-server-ip lo

Настраиваем фаерволл:
Настраиваем Kerberos /etc/krb5.conf:

[logging]
  default = FILE:/var/log/krb5libs.log
  kdc = FILE:/var/log/krb5kdc.log
  admin_server = FILE:/var/log/kadmind.log

[libdefaults]
  default_realm = YOURDOMAIN.COM
  dns_lookup_realm = false
  dns_lookup_kdc = false

[realms]
  YOURDOMAIN.COM = {
    kdc = your-domain-controller-ip-address:88
    admin_server = your-domain-controller-ip-address:749
    default_domain = YOURDOMAIN.COM
  }

[domain_realm]
  .YOURDOMAIN.COM = YOURDOMAIN.COM
  YOURDOMAIN.COM = YOURDOMAIN.COM

[kdc]
  profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]
  pam = {
    debug = false
    ticket_lifetime = 36000
    renew_lifetime = 36000
    forwardable = true
    krb4_convert = false
  }

Синхронизируем время с контроллером домена:

yum install ntp
ntpdate your-domain-controller.domain.realm

Подключаем машину в домен:

kinit adminlogin@DOMAIN.REALM
net rpc join -U somedomainadmin

Правим /etc/pptpd.conf:

option /etc/ppp/options.pptpd
ppp /usr/local/sbin/pppd
localip your-tunnel-local-ip-address
remoteip your-tunnel-remote-ip-address-range

Правим /etc/ppp/options.pptpd:

lock
debug
nologfd
name pptpdev
nobsdcomp
proxyarp
refuse-pap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns your-first-domain-name-server-ip-address
ms-dns your-second-domain-name-server-ip-address
plugin winbind.so
ntlm_auth-helper "/usr/bin/ntlm_auth --helper-protocol=ntlm-server-1"

Включаем IP forwarding в /etc/sysctl.conf:

net.ipv4.ip_forward = 1

Прим: изменения произойдут только после перезагрузки. Для применения немедленно пишем в консоли:

echo 1 > /proc/sys/net/ipv4/ip_forward

Стартуем winbind:

chkconfig winbind on && service winbind start

Стартуем pptpd:

chkconfig pptpd on && service pptpd start

Проверка принадлежности к группе в AD

Правим smb.conf:

  winbind separator = +

Правим последнюю строчку в /etc/ppp/options.pptpd:

ntlm_auth-helper "/usr/bin/ntlm_auth --helper-protocol=ntlm-server-1 --require-membership-of="DOMAIN+access_group"

..где DOMAIN - имя вашего домена, access_group - группа в Active Directory пользователи которой будут проходить авторизацию.

Перезапускаем сервисы:

service winbind reload
service pptpd restart

См. также

Создание vpn туннеля - Общая информация по созданию VPN с перечислением нескольких способов.

Cсылки

http://poptop.sourceforge.net/dox/replacing-windows-pptp-with-linux-howto.phtml - Основано на этой статье.