Kendi Ubuntu Sunucumda PPTP VPN'yi nasıl ayarlarım?


16

Ubuntu çalıştıran Linode gibi birinden Sanal Özel Sunucum olduğunu varsayarsak , Ubuntu istemcilerinin buna bağlanabilmesi için nasıl kolayca PPTP VPN kurabilirim?

Varsayılan olarak, Ubuntu bu PPTP ağlarına bağlanmayı önerir. Bağlanmak çok kolay olacak şekilde ayarlamak istiyorum (yani istemciye herhangi bir paket yüklemeden).

Yanıtlar:


28

Mutlak Minimum Sunucu Kurulumu

Aşağıda, Ubuntu altında çalışan temel bir PPTP VPN sunucusuna sahip olmanız için gereken minimum talimatlar verilmiştir. İstemciler daha sonra sunucuya VPN gönderebilecek ve internet trafiğini sunucudan internete geçecek şekilde yönlendirebileceklerdir. Her zaman olduğu gibi, her şeyin ne yaptığını anlamak için belgelerin tamamına bakın .

İlk olarak, gerekli yazılımı yükleyin:

sudo apt-get install pptpd

İkinci olarak, /etc/sysctl.conf dosyasındakiip_forward ilişkili satırı açığa çıkararak IPv4 çekirdeğinde etkinleştirin :

sudo sed -i -r 's/^\s*#(net\.ipv4\.ip_forward=1.*)/\1/' /etc/sysctl.conf
# Reload the config file to have the change take effect immediately.
sudo -i sysctl -p

Üçüncü olarak, özel VPN ağındaki kullanıcıların paketlerinin internete yönlendirilebilmesi için NAT'ı etkinleştirin (zaten etkinleştirilmemişse):

OUTIF=`/sbin/ip route show to exact 0/0 | sed -r 's/.*dev\s+(\S+).*/\1/'`
sudo -i iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE
# Enable NAT on boot from the rc.local script.
CMD="iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE"
sudo sed -i "\$i$CMD\n" /etc/rc.local

Not: Bu kılavuz, sunucuda yapılandırılmış güvenlik duvarınız olmadığını varsayar. Sunucuda UFW gibi bir güvenlik duvarınız varsa bunun yerine ilgili belgelere başvurun .

Dördüncüsü, her VPN kullanıcısı için / etc / ppp / chap-secrets dosyasında bir hesap oluşturun . $USERSöz konusu VPN kullanıcısı için kullanmak istediğiniz gerçek kullanıcı adıyla değiştirin .

KEY=`head -c 20 /dev/urandom | sha1sum | nawk '{print $1}'`
echo "$USER pptpd $KEY *" | sudo tee -a /etc/ppp/chap-secrets

Sonunda ...

İstemciyi Yapılandırma

Gelen Ağ Yöneticisi uygulaması , seçmek VPN BağlantılarıYapılandırma VPN , ardından Ekle . Bir sonraki ekranda VPN türü için PPTP'yi seçin , ardından Oluştur'u tıklayın .

resim açıklamasını buraya girin

Bu pencerede, sunucudaki / etc / ppp / chap-secrets dosyasına eklediğiniz kullanıcı adı ve anahtarla birlikte sunucunuzun ana bilgisayar adını veya IP'sini girin .

Şimdi Gelişmiş'e tıklayın .

resim açıklamasını buraya girin

Bu pencerede, "Noktadan Noktaya şifrelemeyi kullan (MPPE)" seçeneğini etkinleştirin ve 128 bit güvenliği seçin . Kullanımını devre dışı bırakın MSCHAP kimlik doğrulaması (bırakın MSCHAPv2 etkin).

Son olarak, tıklayın Ok ve ardından Kaydet önceki pencereyi kapatmak için.

Artık Network Manager uygulaması → VPN Bağlantıları'na gidip az önce oluşturduğunuz bağlantıyı seçerek VPN bağlantısını test edebilirsiniz . VPN bağlantısının başarılı olduğunu belirten bir mesaj aldığınızdan emin olun, ardından IP'nizin sunucunun IP'si olarak göründüğünü doğrulamak için bir IP kontrol web sitesine göz atın .

Sunucuya VPN bağlantısının başarısız olduğunu belirten bir mesaj alırsanız: önce istemci ayarlarını doğru girdiğinizi doğrulayın; ikinci olarak, istemcinin sunucudaki TCP bağlantı noktası 1723 ile ağ bağlantısı olup olmadığını kontrol edin; son olarak, daha fazla ipucu için sunucudaki günlük dosyası / var / log / messages'a bakın . VPN bağlantınız başarılı olursa, ancak daha sonra istemciden herhangi bir web sitesine göz atamıyorsanız , pptpd web sitesindeki bu inanılmaz yardımcı tanılama kılavuzuna başvurun .

notlar

Bağlandığınız yerel ağ 192.168.0.0/24 ve 192.168.1.0/24 alt ağlarını kullanıyorsa, PPTP sunucusunun varsayılan olarak kullandığı budur. PPTP'yi pptpd.conf dosyasında farklı alt ağlar kullanacak şekilde yapılandırmanız gerekir .

Yapmak isteyebileceğiniz başka yapılandırma değişiklikleri de vardır. Örneğin, tüm alan adı aramalarınız PPTP sunucusundan geçmek yerine yerel DNS sunucunuz kullanılarak sorgulanmaya devam edecektir. Bu ayarın ve diğer birçok ayarın nasıl değiştirileceğini öğrenmek için zamanın tamamını okuyun .


4

Yazdığım bu öğretici size yol gösterecektir. VPS kullanan kişiler tarafından yapılan yaygın hatalardan kaçınmanıza yardımcı olacaktır.

Önce VPS Panelinize giriş yapın ve TUN / TAP ve PPP'yi etkinleştirin . Böyle bir seçeneğiniz yoksa bunu etkinleştirmek için ISS'nize başvurun.

resim açıklamasını buraya girin

İlk önce bu paketi yükleyin:

sudo apt-get install pptpd

VPN'imizin herkese açık olmasını istemediğimiz için kullanıcı oluşturacağız.
VI kullanıyorum, NANO'yu veya istediğiniz metin düzenleyicisini kullanabilirsiniz

vi /etc/ppp/chap-secrets

Biçim

[username] [service] [password] [ip]

Misal

john pptpd johnspassword *

* tüm IP adreslerinden erişime izin verildiği anlamına gelir, IP'yi yalnızca statik adresiniz varsa belirtin.

PPTPD Ayarlarını Düzenleme

vi /etc/pptpd.conf

Localip ve remoteip ayarlarını bulun. #Bu ayarların gerçekten tanınması için her ikisinin de (yorum karakterini) kaldırın . Localip'i sunucu IP'nize değiştirin. Sunucu IP'nizi bilmiyorsanız, VPS kontrol panelinize bakabilirsiniz.

Uzaktan kumanda temel olarak istemcilere (VPN'nize bağlı bilgisayarlar) atanacak IP aralığıdır. Örneğin, şu IP aralığını istiyorsanız: 192.168.120.231-235, VPN sunucunuz istemcilere 192.168.120.232, 192.168.120.233, 192.168.120.234 ve 192.168.120.235 atayabilir. Bu alan için ne kullanmak istediğiniz size kalmış.

Şahsen ben bu ayarları seçiyorum:

localip 10.0.0.1
remoteip 10.0.0.100-200

Böylece yaklaşık 200 müşteri bağlı olabilirim.

DNS sunucuları ekle /etc/ppp/pptpd-options

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Bunu dosyanın sonuna ekleyebilir veya bu satırları bulabilir, onları kaldırabilir ve IP'leri istediğiniz Genel DNS ile değiştirebilir.

Yönlendirmeyi Ayarla

PPTP sunucunuzda IP yönlendirmeyi etkinleştirmeniz önemlidir. Bu, paketleri genel IP ile PPTP ile ayarladığınız özel IP'ler arasında yönlendirmenize olanak tanır. /Etc/sysctl.conf dosyasını düzenleyin ve orada yoksa aşağıdaki satırı ekleyin:

net.ipv4.ip_forward = 1

Değişiklikleri etkin hale getirmek için çalıştırın sysctl -p

İptables için bir NAT kuralı oluşturma

Bu önemli bir parçadır, eğer VPS kullanıyorsanız muhtemelen eth0 kullanmayacaksınız, ancak venet0 yerine çalıştırarak hangi arayüze sahip olduğunuzu kontrol etmelisiniz. ifconfig

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save

PPTP istemcilerinizin birbirleriyle konuşmasını isterseniz, aşağıdaki iptables kurallarını ekleyin:

iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT

VPS kullanıyorsanız, eth0 yerine venet0 yazmanız gerekir.

Koşmayı tavsiye ederim

sudo iptables-save

Şimdi PPTP sunucunuz aynı zamanda yönlendirici olarak da işlev görür.

VPN hizmetinin önyüklemede başlaması için bu komutu çalıştırabilirsiniz

systemctl enable pptpd

Kuralların yeniden başlatıldıktan sonra bile kalması için iptables kalıcı özelliğini yüklemenizi öneririm

sudo apt-get install -y iptables-persistent

Bağlantı herhangi bir yere gitmeyecek, esas olarak bu alan adını asla bırakmayacağım, ikincisi benim hosting sunucum, üçüncü olarak bana inan: DI gerçekten öğretici kopyala yapıştıramaz burada çok uzun.
Luka

Korkarım ki bu sitede sadece link cevaplarını kabul etmiyoruz. Gördüğünüz gibi, bu cevap muhtemelen yakında silinecek, zaten inceleme kuyruğunda (önceki yorumumdaki bağlantı).

Zanna çok teşekkürler! @Paranoid Panda iyi o zaman bağlantıyı içerdiği için 2 oy içeren benim cevabımı kaldırmalısınız: P
Luka

1
Burada sorun oldu cevap bağlantı sadece olduğunu. Bu, bağlantının herhangi bir nedenle aşağı düşmesi durumunda (bağlantının asla düşmeyeceği bile olsa), yanıtın geçersiz olacağı anlamına gelir. Şimdi cevap kendine bağımlı hale geldiğine (ve referans için bağlantıyı kullandığına) göre, cevap olduğu gibi iyi. Gönderiniz gibi uyarlanmadığı sürece, söz konusu cevap şu anda kaldırılıyor.
Kaz Wolfe

1
Çok hoş geldiniz, öğretici yaptığınız için teşekkürler. Bir dahaki sefere bu uzunlukta bir yazı yapmaktan korkmayın; tamamen kabul edilebilir.
Zanna

3

Bu öğreticiyi izleyin: Ubuntu ile PPTP VPN Sunucusu

  1. Yazılım seçimi altında, makinenin uzaktan yönetimi için OpenSSH sunucusunu ve gerçek pptpd paketi için manuel paket seçimini seçin. Daha fazla hizmet istiyorsanız, örneğin bilgisayarı bir web sunucusu olarak da kullanmak istiyorsanız, elbette ek yazılımı da seçebilirsiniz. Güvenlik nedeniyle, genellikle kritik bir ortamda kuruluysa, insanlara makine başına dışarıdan erişilebilen hizmetten yalnızca bir tanesini çalıştırmasını öneririm, ama bu tamamen size kalmış.

  2. Manuel seçimde pptpd'yi bulabileceğiniz kurulu olmayan paketler> net'e gidin. Paketi seçin ve paketi kurmak için 'g' tuşuna iki kez basın.

  3. Kurulumun tamamlanmasını bekleyin ve sisteminizi yeniden başlatın.

  4. SSH'yi yeni kurulan makinenize yerleştirin ve sudo aptitude update && sudo aptitude safe-upgradetüm paketleri güncellemek için önce çalıştırın . Gerekirse yeniden başlatın.

  5. Pptpd.conf dosyasını açın: En sudo nano /etc/pptpd.confalttaki IP ayarlarını ihtiyaçlarınıza göre ayarlayın. Yerel IP altında IP'yi VPN sunucunuzun yerel ağına girersiniz (bilmiyorsanız 'sudo ifconfig' yazın ve ağ arayüzlerinizi ve atanan IP'leri gösterecektir). Bu nedenle / etc / network / arabirimlerinde veya yönlendirici yapılandırmanızda statik bir IP kurmanızı öneririz.

  6. İsterseniz, ana bilgisayar adını /etc/ppp/pptpd-options

  7. VPN'nize erişim vermek istediğiniz kullanıcı adları ve şifreleri belirtin: sudo nano /etc/ppp/chap-secrets. Önceki adımda ana bilgisayar adını değiştirdiyseniz, şimdi aynı ana bilgisayar adını yazdığınızdan emin olun.server

    Misal:

    # client        server  secret                  IP addresses
    eubolist   pptpd   myübersecretpassword   *
    

    Pptp'de olduğu gibi, yalnızca parolaya bağlı hiçbir anahtar dosyası güvenliği yoktur. Bu yüzden uzun (ör. 32 karakter) rastgele bir şifre seçmelisiniz. Burada böyle bir şifre oluşturabilirsiniz.

  8. Şimdi ip maskesini kurmamız gerekiyor: sudo nano /etc/rc.local

    'Çıkış 0' yazan satırın üstüne aşağıdaki satırları ekleyin

    # PPTP IP forwarding
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    

    İsteğe bağlı olarak SSH sunucunuzu kaba kuvvet saldırılarına karşı korumanızı öneririz:

    #SSH Brute Force Protection
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j
    

    DÜŞÜRMEK

    ('çıkış 0'ın üstüne de eklenecektir)

    Makinenizde internete bağlanmak için hangi arayüzün yapılandırıldığına bağlı olarak 'eth 0'ı başka bir arayüzle değiştirmeniz gerekebilir.

  9. Son olarak, şu satırın açıklamasını kaldırın /etc/sysctl.conf:

    net.ipv4.ip_forward=1
    
  10. Yeniden Başlatma

  11. VPN sunucunuz doğrudan internete bağlanmazsa, 1723 TCP ve GRE bağlantı noktasını vpn sunucunuzun LAN IP'sine iletmeniz gerekebilir. Satıcıya özgü talimatlar için yönlendiricinizin kılavuzuna veya portforward.com'a bakın. Yine, statik bir ip atamanız gerekebilir /etc/network/interfaces.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.