Anonim

2017, ve bir VPN kullanmak hiç de şık değil. Dış gizlilik endişeleri ile kendi ISS'nizin göz atma geçmişinizi satabilmesi arasında, birini kullanmamayı haklı çıkarmazsınız.

Elbette, yüzlerce VPN hizmetinden birini ödeyebilirsiniz, ancak bir kez daha verilerinizle bir başkasına güveniyorsunuz. Gerçekte çoğu harikadır, ancak tam bir kontrol istiyorsanız, kendi sanal sunucunuzu V irtual P rivate S erver (VPS) üzerine kurabilir veya gerçekten özel olmak istiyorsanız, kendi özel sunucunuzu kiralayabilirsiniz.

Bir VPN inşa etmek için ihtiyacınız olan şey açık kaynaklı OpenVPN yazılımı ve Linux (veya BSD). Yapılandırma söz konusu olabilir, ancak Ubuntu gibi bir dağıtımdan çekebilmek için temel Linux becerilerine sahip birisiyle imkansız değildir.

Bu kılavuz için, Ubuntu çalıştıran bir VPS'ye ihtiyacınız olacak. DigitalOcean veya Linode gibi birinden çok kolay bir şekilde birini alabilirsiniz. Kurulum için temel güvenlik kılavuzlarını takip edin. SSH üzerinden kök erişimine izin vermek gibi temel hatalar yapmadığınızdan emin olun.

Ayrıca, bu ayarın tamamını SSH üzerinden VPS'nize komut satırında yapacağınızı unutmayın. Linux bilgisinde çılgınca bir miktar gerektiren herhangi bir şey yoktur, ancak tıklamak yerine yazmaya hazır olun.

İhtiyacınız Olanı Almak

Hızlı Linkler

  • İhtiyacınız Olanı Almak
  • Güvenlik Duvarını Kur
    • Arabirimi Bul
    • Iptables Temelleri
    • Kurallarınızı ayarlayın
      • Geri Döngü
      • Ping
      • SSH
      • OpenVPN
      • DNS
      • HTTP / S
      • NTP
      • TUN
      • Kerestecilik
      • Başka Her Şeyi Reddet
      • NAT Maskeleme
    • IPv4 Trafiğini İlet
    • Tüm IPv6 Bağlantılarını Durdur
    • Iptables'ı İçe Aktar ve Kaydet

Ubuntu, OpenVPN'i depolarına paketler ve dağıtır. Sadece yüklemek için apt kullanmanız gerekir. Ayrıca şifreleme anahtarları üretmek için araca ihtiyacınız olacaktır. İkisini de yükleyin.

$ sudo apt yüklemek openvpn easy-rsa

Güvenlik Duvarını Kur

Ardından, güvenlik duvarına dikkat etmeniz gerekir. VPN'inizi güvenli tutmak ve hem veri sızıntısını hem de istenmeyen erişimi engellemek için önemli bir parçadır.

Iptables, Linux için ana güvenlik duvarıdır ve Ubuntu'nun portlarına erişimi kontrol etmek için en iyi seçenektir. Zaten yüklü olacak, böylece güvenlik duvarı kurallarınızı kurmaya başlayabilirsiniz.

Arabirimi Bul

Kuralları iptables içine yazmaya başlamadan önce, sunucunuzun İnternete hangi arayüzle bağlı olduğunu öğrenin. Ağ arayüzlerinizi görüntülemek için ifconfig komutunu çalıştırın. Bir giriş adresi olan: bağlı olduğunuz IP adresiyle eşleşen doğru arayüzdür.

Iptables Temelleri

Nesneleri rasgele kopyalayıp İnternetten terminale yapıştırmak iyi bir fikir değildir. Bu, özellikle güvenlik konularıyla uğraşırken geçerlidir. Bu yüzden, girmeden önce iptables kuralları hakkında biraz bilgi edinmek için biraz zaman ayırın.

Bir iptables kuralı örneğine bir göz atın.

-Bir GİRİŞ -i eth0 -p tcp -m devlet –statik KURULUŞ -spor 443 -j KABUL

Tamam, öyleyse -A yeni bir kural ekleyeceğin anlamına geliyor. O zaman INPUT, sunucunuza girdi ile ilgili olacağı anlamına gelir. Bir ÇIKIŞ da var. -İ bayrağı, bu kuralın hangi arabirime ait olduğunu iptables'a söyler. Kuralın -p ile hangi protokol için olduğunu belirleyebilirsiniz. Bu kural tcp'yi işler. -m, bağlantının yerine getirmesi gereken bir koşulu belirtir. Bu durumda, belirtilen durumla eşleşmesi gerekir. Tabii ki, -state bir durumu belirtir, bu durumda KURULAN bir bağlantı. Bir sonraki kısım iptables'a bu kuralın hangi port için olduğunu söyler. Buradaki 443 numaralı bağlantı noktası, HTTPS bağlantı noktası. Son bayrak -j. “Atlama” anlamına gelir ve iptables'a bağlantı ile ne yapmaları gerektiğini söyler. Bu bağlantı kuraldaki tüm gereklilikleri karşılarsa iptables bunu kabul ederdi.

Kurallarınızı ayarlayın

Öyleyse, iptables kurallarının şimdi nasıl çalıştığı hakkında genel bir fikriniz olmalı. Bu bölümün geri kalanında size kurallarınızı parça parça nasıl ayarlayacağınız anlatılacaktır.

Bir dizi iptables kuralı oluşturmanın en iyi yolu, hepsini içeren bir dosya oluşturmaktır. Daha sonra, hepsini bir defada iptables içine alabilirsiniz. Kuralları tek tek ayarlamak, özellikle sıfırdan yeni bir kurallar dizisi başlatıyorsanız kafa karıştırıcı olabilir.

Kurallarınızı oluşturmak için / tmp dizininde bir dosya oluşturun.

$ vim / tmp / ipv4

Bu dosyayı * filter ile başlatın. Bu, iptables'a aşağıdakilerin paket filtreleme için kurallar olacağını söyler.

Geri Döngü

Kuralların ilk bölümü geri döngü arayüzünü kilitler. İptables'a sunucunun loopback arayüzünde kendisinden trafik alması gerektiğini söylerler. Ayrıca geri döngüden gelmeyen, kendisinden gelen trafiği de reddetmelidir.

-Bir GİRİŞ -i lo -j KABUL ET -Bir GİRİŞ! -i lo -s 127.0.0.0/8 -j KONUŞMAK-ÇIKIŞ -o lo -j KABUL ET

Ping

Ardından, ping'e izin verin. Aksi takdirde ulaşılamaması durumunda çevrimiçi olduğundan emin olmak için sunucunuza ping yapabilmelisiniz. Bu durumda, yalnızca yankı isteklerine izin verilir ve sunucu ICMP çıkışı göndermesine izin verir.

-Bir GİRİŞ -p icmp -m durumu - durum YENİ --icmp-tipi 8 -j KABUL ETMEK - Bir GİRDİ - p icmp -m durumu - devlet KURULDU, İLGİLİ -J KABUL ETMEK

SSH

SSH'ye ihtiyacınız var. Sunucunuza ulaşmanın tek yolu bu. SSH kuralları internet arabiriminize özel olduğundan, sunucunuzun gerçekte kullandığı arabirim yerine eth0 kullandığınızdan emin olun.

Ayrıca, SSH bağlantılarınızı 22 numaralı bağlantı noktasından değiştirmek de iyi bir fikir olabilir, çünkü potansiyel saldırganların deneyeceği varsayılan değer budur. Bunu yaparsanız, iptables kurallarınızda da değiştirdiğinizden emin olun.

-Bir GİRİŞ -i eth0 -p tcp -m devlet - devlet YENİ, KURULAN - - 22 - KABUL KABUL - - ÇIKIŞ - -et00 - p tcp - devlet - KABUL EDİLDİ -

OpenVPN

Bu sonraki parça, OpenVPN sunucusundan UDP üzerinden trafiğe izin veriyor.

-Bir GİRİŞ -i eth0 -p udp -m durumu --tat devlet YENİ, KURULAN - --d 1194 -j KABUL - Bir ÇIKIŞ - -et00 - ud ud devlet - m Devlet - statülü KURULAN - -

DNS

Şimdi UDP ve TCP üzerinden DNS bağlantılarına izin verin. VPN'inizin ISS'nizi değil DNS'yi işlemesini istiyorsunuz. Bu, ilk etapta bir VPN kurmanın nedeninin bir parçası.

-Bir GİRİŞ -i eth0 -p udp -m devlet - devlet KURULAN - devlet 53 - j KABUL - Bir ÇIKIŞ - -et00 - p udp -m devlet - Devlet YENİ, KURULAN - - 54 GİRİŞ -i eth0 -p tcp -m devlet - devlet KURULAN - - spor 53 - j KABUL - Bir ÇIKIŞ - - eth0 - p tcp - m devlet - Devlet YENİ, KURULAN - -

HTTP / S

Ubuntu'nun kendisini güncelleyebilmesi için, HTTP ve HTTPS'nin giden bağlantısına izin vermek için bir dizi kural eklemeniz gerekir. Bu kuralların yalnızca sunucunun HTTP bağlantılarını başlatmasına izin verdiğine dikkat edin, bu nedenle bir web sunucusu olarak kullanamazsınız veya 80 ya da 443 numaralı bağlantı noktası üzerinden bağlanamazsınız.

-A GİRİŞ -i eth0 -p tcp -m devlet - devlet KURULDU - spor 80 -j KABUL --GİRİŞ -i eth0 -p tcp -m devlet - Devlet KURULAN - - 443- o eth0 -p tcp -m devlet - devlet YENİ, KURULAN - 80d -port KABUL - Bir ÇIKIŞ - o et0 -p tcp -m devlet - devlet YENİ, KURULAN - 443 -j devlet KABUL

NTP

Sunucu saatinizin düzgün çalışmasını sağlamak için NTP’ye ihtiyacınız olacak. NTP, sunucunuzun dünyanın dört bir yanındaki zaman sunucularıyla senkronize edilmesini sağlar. Sunucunuzda yanlış bir saatin olması bağlantı sorunlarına neden olabilir, bu nedenle NTP'yi çalıştırmak iyi bir fikirdir. Bir kez daha, yalnızca giden ve önceden kurulmuş bağlantıları kabul etmelisiniz.

-BİR GİRİŞ -i eth0 -p udp -m devlet - devlet KURULAN - devlet 123 - j KABUL - Bir ÇIKIŞ - etp - udp - devlet Devlet - devlet YENİ, KURULAN --dport 123 -j ACCEPT

TUN

OpenVPN'in trafiği tünellemek için kullandığı TUN arayüzünün engellemesini kaldırın.

-Bir GİRİŞ -i tun0 -j KABUL -BİR BİR İLERİ -i tun0 -j KABUL -Bir ÇIKIŞ -o tun0 -j KABUL ET

TUN’un VPN için trafiği normal arayüzünüze yönlendirmesine izin vermeniz gerekir. Bu IP adresini OpenVPN yapılandırmasında bulabilirsiniz. Yapılandırmada değiştirirseniz, kurallarınızda da değiştirin.

-Bİ İNSANLAR -i tun0 -o eth0 -s 10.8.0.0/24 -j KABUL -Bir KABUL -M devlet - devleti KURULDU, İLGİLİ -J KABUL

Kerestecilik

Iptables tarafından reddedilen her şeyin kayıtlarını tutmak iyi bir fikirdir. Bu durumda, bu kuralların hiçbirine uymayan herhangi bir şey anlamına gelir. Kayıtlar, sunucunuz üzerinde zararlı bir şey olup olmadığını veya sunucunuz için zararlı bir şey yapmayı denediğinizi görmenizi sağlar.

-Bir GİRİŞ -m sınırı - sınır 3 / dak -j LOG –log-öneki “iptables_INPUT_denied:” –log-seviye 4
-Bİ FORWARD -m sınırı - sınır 3 / dak -j LOG –log öneki “iptables_FORWARD_denied:” –log-seviye 4
-Bir ÇIKIŞ -m limiti –birim 3 / dak -j LOG –log-öneki “iptables_OUTPUT_denied:” –log-seviye 4

Başka Her Şeyi Reddet

Son olarak, kurallarınıza uymayan her şeyi engellemeniz gerekir. Bu aslında ilk olarak bir güvenlik duvarına sahip olmanın amacı.

-Bir GİRİŞ -J KONUŞMASI-Bir İLERİ -J DEVRİF-ÇIKIŞI -J KONUŞMASI

Iptables'a tüm kuralları yerine getirmesini söylemek için dosyayı COMMIT ile kapatın.

NAT Maskeleme

Sunucudan geliyor gibi görünmek için VPN'den gelen bağlantılara ihtiyacınız var. Bu parça normal iptables dosyasına dahil edilemez çünkü farklı bir tablo kullanır. Sorun değil, yine de, sadece bir satır.

$ sudo iptables -t nat -Bir POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

IPv4 Trafiğini İlet

IPv4 trafiğini iletmeyi etkinleştirmeniz gerekecek, böylece VPN ile sunucunuzun gerçek ağ arabirimi arasında geçiş yapabilir. /Etc/sysctl.d/99-sysctl.conf dosyasını sudo ile açın.

Aşağıdaki satırı bulun ve # işaretini kaldırın.

net.ipv4.ip_forward = 1

Tüm IPv6 Bağlantılarını Durdur

Üzgünüz, henüz iptables ile bitmedi. Tüm IPv6 trafiğini engellemeniz gerekir. Bu OpenVPN sunucusu IPv4'ü destekleyecektir, çünkü IPv6'ya ihtiyacınız olan bir durumla karşılaşmayacaksınız. Sonuç olarak, herhangi bir IPv6 bağlantısı, VPN kullanırken istediklerinin tam tersi olan bilgileri sızdırabilir.

IPtables için kuralları ayarlamadan önce, IPv6'yı sistemde başka bir yerde devre dışı bırakmanız gerekir.

Aşağıdaki satırları /etc/sysctl.d/99-sysctl.conf dosyasına ekleyin. Önceki bölümden kapattıysanız, sudo ile yeniden açın.

net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 net.ipv6.conf.eth0.disable_ipv6 = 1

Değişikliklerinizi etkinleştirin.

$ sudo sysctl -p

/ Etc / hosts dosyasındaki tüm IPv6 satırlarını yorumlayın. Burada da sudo'ya ihtiyacın olacak.

# :: 1 ip6-localhost ip6-geridöngü # fe00 :: 0 ip6-yerel ağ # ff00 :: 0 ip6-mcastprefix # ff02 :: 1 ip6-allnodes # ff02 :: 2 ip6-allrouters

Sonunda IPv6 iptables kurallarını yazabilirsiniz. / Tmp / ipv6'da onlar için bir dosya oluşturun.

* filtre - Bir GİRİŞ - j KONUŞMA - BİR İLERİ - J KONUŞMA - Bir ÇIKIŞI - J BİRLEŞTİRME KOMİTESİ

Bak, basitler. Her şeyi reddet.

Iptables'ı İçe Aktar ve Kaydet

Bir şey yapmaları için bu kuralları almanız gerekir. Yani, şimdi bunu yapma zamanı.

Orada olan diğer her şeyi temizleyerek başlayın. Eski kuralların önüne geçmek istemezsin.

$ sudo iptables -F && sudo iptables -X

Hem IPv4 hem de IPv6 kurallarınızı içe aktarın.

$ sudo iptables-restore </ tmp / ipv4 $ sudo ip6tables-restore </ tmp / ipv6

Muhtemelen bir daha asla yapmak istemezsin. Bu yüzden, kurallarınızı kalıcı olarak kaydetmek için yeni bir pakete ihtiyacınız olacak.

$ sudo apt kurulum iptables-persistent

Yükleme sırasında, paket sizden mevcut kurallarınızı kaydetmenizi isteyecektir. “Evet” cevabını verin.

Daha sonra değişiklik yaparsanız, kaydedilen yapılandırmalarınızı da güncelleyebilirsiniz.

$ sudo servis netfilter kalıcı

Biraz zaman aldı, ancak güvenlik duvarınız gitmeye hazır. Bir sonraki sayfada, gerekli şifreleme anahtarlarını oluşturmakla uğraşacağız.

Buraya tıklayın: Sonraki Sayfa

Vpns hakkında her şey: openvpn ile kendi vpn'nizi nasıl kurarsınız (bölüm 3)