04.05.2018 19:25 Tarihinde oluşturuldu. Son güncelleme: 04.05.2018 12:44 / 84 Kez okundu.
CentOS 7 üzerine Strongswan IKEV2 VPN kurulumu

Bu yazı için digitalocean VPS hizmetini kullanarak kendimize özel bir sanal server kiralayacağız. Digitalocean'dan daha önce Godaddy VPS kiralayarak kurulum denediğimde godaddy'nin linux kernel yapısında ipv4 yönlendirmesini kısıtlanmış olduğunu anladım. Firewall ayarlarında NAT yönlendirmesi yapmıyordu. Bir şekilde sizin kendi güvenliğiniz için demiş olsalar da ana server veri trafiğini azaltmakla alakalı olduğunu düşünüyorum.

Internette genellikle OpenVPN ile alakalı yazılara rastladım, mâlesef strongswan ikev2 şeklinde çok fazla bir kaynak bulamadım, bulduklarımda da kurulum ayarlamaları kısmında hep bir sorun ile karşılaştım. Neden Strongswan'da ısrar ettim derseniz, bilgisayar tablet ve cep telefonunda ekstra bir yazılım yüklemeyi gerektirmeden bilgisayarın kendi ayarları ile bağlantı yapabilmemizi sağlıyor ve oldukça da hızlı bir şekilde bağlantı yapılabiliyor. Yazımda anlattığım aylık 5 dolar olan VPS'de dahi internet videolarında herhangi bir sıkıntı ile karşılaşmadım.

Bu yazıda EAP kullanıcı adı ve şifresi yöntemini kullanacağım. Elimden gelmiş olduğunca basit anlatmaya çalışacağım. 

 

KİŞİSEL SANAL SERVER KİRALAMAK

Strongswan ve ikev2 ayarlarına geçmeden önce digitalocean'dan bir VPS kiralamakla başlayalım. Benim kendi kullanmış olduğum VPS özellikleri; 2GB Ram, 1 vCPU, 50GB SSD, 4TB transfer özellikli, siz kendi bütçenize göre kiralama yaparak deneyebilirsiniz. 

 

 

 

 

 

1GB VPS sadece VPN kurulumu için işimizi görecektir. ancak VPN yanı sıra web server ve diğer işlerinizde de kullanmak istiyorsanız daha yüksek RAM ve CPU kapasiteli VPS seçmenizi tavsiye ediyorum.

 

Droplet oluşturduğunuzda VPS bağlantınız için size bir IP adresi sunulacaktır. Bizim örneğimizde bu ip adresi 104.131.24.183 olarak görünüyor.

SSH bağlantısı ile ip adresine bağlandıktan sonra strongswan kurulumu ve gerekli ayarlamaların yapılmasına geçebilirsiniz. SSH bağlantısının nasıl yapılacağı ile ilgili yazıyı arama kısmından ulaşabilirsiniz.

https://minimalpro.net/read/server-ssh-baglantisi

SSH bağlantınızı yaptıktan sonra ilk olarak güncellemeleri kontrol etmemiz her zaman önemlidir. Hatta aylık periyotlarla bu komutu girerek kullanmış olduğunuz yazılımları güncellemek güvenlik açısından da önemlidir.

yum update -y

 

 

STRONGSWAN IKEV2 KURULUMU

Öncelikle bu yazının uzun olması gözünüzü korkutmasın, Her bir komutu SSH bağlantınıza yapıştırdığınızda bile kurulumu sağlamış olacağınıza inanıyorum.

Öncelikle yapılacak işlemleri sıralayacak olursak;

  1. Kurulum için yardımcı olacak genel linux programlarının kurulumu (text editor vb.)
  2. EPEL Repository kurulumu
  3. Stronswan programının kurulumu
  4. Server için güvenli bağlantı sertifikası oluşturmak
  5. IPSEC ayarlamaları (Gerekli IP yönlendirmelerinin yapılacağı bölüm.)
  6. IPSEC.secret ayarları (VPN kullanıcı ve şifre ayalarmaları)
  7. Güvenlik duvarından gerekli ayarlamaları yaparak, gerekli portlardan server giriş çıkışlarının aktifleştirilmesi
  8. Strongswan yazılımının yeniden başlatılması.
  9. FTP Kurulumu (VPS Sertifikasını kendi bilgisayarımıza indirmek için)
  10. MacOS için bağlantı ayarları
  11. IOS telefon için bağlantı ayarları

 

Yardımcı olacak Linux programları;

yum install nano nmap firewalld -y
  • nano text editorü
  • nmap port scanner
  • firewall-cmd güvenlik duvarı

 

EPEL Repository kurulumu;

yum install epel-release -y
yum repolist

 

Strongswan ve yardımcı programların kurulumu

yum install strongswan strongswan-plugin-eap-mschapv2 moreutils iptables-persistent haveged -y
systemctl enable haveged
systemctl start haveged

 

Server için güvenli bağlantı sertifikası oluşturmak

Oluşturacağımız sertifikalar strongswan klasörünün içinde yer alacağından /etc/strongswan dizinine giriyoruz;

cd /etc/strongswan

root CA özel anahtarı oluşturmak için;

strongswan pki --gen --type rsa --size 4096 --outform der > ipsec.d/private/strongswanKey.der
chmod 600 ipsec.d/private/strongswanKey.der

Oluşturulan özel anahtarın etc/strongswan/ipsec.d/private/ dizinine oluşturduğumuzu unutmayın. 

Oluşturulan özel anahtar içindeki değerleri değiştirmemiz gerekmektedir, kendi VPS değerlerimizi girmek için;

strongswan pki --self --ca --lifetime 3650 --in ipsec.d/private/strongswanKey.der --type rsa --dn "C=NL, O=GOServer Company, CN=GOServer Root CA" --outform der > ipsec.d/cacerts/strongswanCert.der

Bu kısımda C, O, ve CN değerlerini kendine göre kişiselleştirebilirsiniz. Örnekte görüldüğü üzere GOServer olarak değiştirilmiştir.

Oluşturduğumuz CA sertifikasının nasıl göründüğünğü merak ediyorsunuz (hem de kontrol amaçlı) aşağıdaki komutu yazarak konsol ekranına yazdırabilirsiniz.

strongswan pki --print --in ipsec.d/cacerts/strongswanCert.der

Örnek ekran çıktısı şu şekilde görünecektir.

 

VPN host sertifikası oluşturmak

Bu anahtar çifti sayesinde VPN server kendisi ile kullanıcılar arasında bir kimlik doğrulaması yapacaktır. Bu sertifika bilgisayarınıza tanımlamadan bağlantı mümkün olmayacaktır.

Öncelikle gizli anahtar dosyası oluşturmak için;

strongswan pki --gen --type rsa --size 2048 --outform der > ipsec.d/private/vpnHostKey.der
chmod 600 ipsec.d/private/vpnHostKey.der

 

Oluşturulan anahtarı bir önceki aşamada oluşturulan CA özel anahtarını kullanarak kendi server'ımıza göre düzenlemek için;

strongswan pki --pub --in ipsec.d/private/vpnHostKey.der --type rsa | strongswan pki --issue --lifetime 730 --cacert ipsec.d/cacerts/strongswanCert.der --cakey ipsec.d/private/strongswanKey.der --dn "C=NL, O=GOServer Company, CN=104.131.24.183" --san 104.131.24.183 --flag serverAuth --flag ikeIntermediate --outform der > ipsec.d/certs/vpnHostCert.der

Bu bölümde not olarak --san olarak belirlenmiş kısımları kendi server'ınızın bilgilerini girmeniz gerekmektedir. dns adı tarzında giriş yapmak için vpn.ornekserver.net şeklinde giriş yapabilirsiniz. Ancak DNS adı olarak bir giriş yapmayacaksanız başında @ olmadan ip adresinizi yazmalısınız. bizim örneğimizde sadece bir adet --san değeri girip ip formatında gireceğiz. Sadece bu yazıyı inceleyerek VPN oluşturuyorsanız sadece  C, O, CN ve --san değerlerini kendinize göre düzenleyiniz. IP adresinizin doğru yazılması önemli!

Sertifikanızın nasıl göründüğüne bakmak ve kontrol etmek için; 

strongswan pki --print --in ipsec.d/certs/vpnHostCert.der

Şu şekilde görünecektir;

 

Oluşturduğumuz bu sertifika (vpnHostCert.der) VPN server'ınıza bağlanmaya çalıştığınız tüm cihazlara kurulu olması gerekmektedir. Aksi halde bağlanmaya çalıştığınızda VPN server tarafından reddedilecektir.

Önemli uyarı: oluşturmuş olduğunuz CA kişisel anahtarınızı (/etc/strongswan/ipsec.d/private/strongswanKey.der) daha güvenli bir dizine taşıyın. hatta mümkün ise host ile internet bağlantısı olmayan bi yere taşıyarak güvenli bi hale getirin. Bu işlemi yapmasanız bile bağlantınız sağlanacaktır ancak güvenlik gerekcesiyle yapmanız önemlidir. 

 

IPSEC Ayarlamaları

ipsec ayar dosyası strongswan programının kullandığı bir dosyadır. dosya dizini /etc/strongswan/ipsec.conf dir

Strongswan dizinine ulaşmak için;

cd /etc/strongswan/

ipsec dosyasının bir yedeğini almak için;

cp ipsec.conf yedek_ipsec.conf

Dosya içeriğini düzenlemek için;

nano ipsec.conf

Dosyanın içindeki verilerin tamamını silerek aşağıdakiler ile değiştirin. Bu değerler bağlantılarda hangi yöntemlerin ve protokollerin kullanılacağına ilişkindir. Bizim kurulumumuz için en uygun ayarlamalar bu şekilde olacaktır.

Bu verilerin ne anlama geldiğini merak ediyorsanız https://wiki.strongswan.org/projects/strongswan/wiki/ConnSection adresine bakabilirsiniz. 

config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no

conn ikev2-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    fragmentation=yes
    forceencaps=yes
    ike=aes256-sha1-modp1024,3des-sha1-modp1024!
    esp=aes256-sha1,3des-sha1!
    dpdaction=clear
    dpddelay=300s
    rekey=no
    left=%any
    leftid=104.131.24.183
    leftcert=vpnHostCert.der
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    rightdns=8.8.8.8,8.8.4.4
    rightsourceip=10.10.10.0/24
    rightsendcert=never
    eap_identity=%identity

 

VPN kullanıcı girişleri ve kullanıcılar için şifre ayalarmaları

Bu ayarları yapacağımız dosya dizini /etc/strongswan/ipsec.secrets dosyası olacak.

nano /etc/strongswan/ipsec.secrets

 Dosyayı açtığımızda örnek bir dosyanın olması gereken şekil şu şekilde olacaktır;

# ipsec.secrets - strongSwan IPsec secrets file
: RSA vpnHostKey.der

ahmet any% : EAP "123456"
mehmet any% : EAP "789012345"

Burada kullanıcı adı ve şifreleri ayarlayabilirsiniz. En üst satırda dikkat ederseniz RSA bölümünde daha önce ayarlamış olduğumu vpnHostKey.der sertifikasının kontrolü sağlanmaktadır. Bağlanmasına izin vereceğiniz kullanıcılar ve şifrelerini girebilirsiniz. Aynı şifre ile iki bağlantı sağlanamamaktadır bu nedenle cep telefonunuz için farklı bir kullanıcı adı ve şifre oluşturmanız gerekmektedir.

 

Güvenlik duvarından gerekli ayarlamaları yaparak, gerekli portlardan server giriş çıkışlarının aktifleştirilmesi

Aşağıdaki komutları sırası ile girerek bunu yapabilirsiniz ayrıca firewall-cmd komutları yazısını inceleyerek komutlar hakkında biraz fikir edinebilirsiniz;

firewalld kurulumunu ilk aşamada yaptık ancak server yeniden başladığında otomatik olarak başlatılması için;

chkconfig firewalld on
systemctl start firewalld

 

Güvenlik duvarının gerekli ayarların yapılması

firewall-cmd --zone=dmz --permanent --add-rich-rule='rule protocol value="esp" accept'
firewall-cmd --zone=dmz --permanent --add-rich-rule='rule protocol value="ah" accept'
firewall-cmd --zone=dmz --permanent --add-port=500/udp
firewall-cmd --zone=dmz --permanent --add-port=4500/udp
firewall-cmd --permanent --add-service="ipsec"
firewall-cmd --zone=dmz --permanent --add-masquerade
firewall-cmd --set-default-zone=dmz
firewall-cmd --reload

Yaptığımız ayarlamaları görebilmek için --list-all komutunu koşturmamız gerekmektedir;

firewall-cmd --list-all

Daha sonra sysctl dosyasını ayarlayarak veri paketlerinin yönlendirilmesini sağlamanız gerekmektedir. Bunun için sysctl.conf dosyasını düzenlemek için nano editör ile açalım; 

nano /etc/sysctl.conf

 En alt satıra bu kodları ekleyerek IPV4 yönlendirmelerine izin verin, Buradaki mantık server internete bağlandığında gelen verilerin yönlendirilmesini sağlamaktır.

#VPN
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

Aşağıdaki komut ile yaptığınız değişiklikleri ekleyebilirsiniz ya da sistemi reboot edebilirsiniz. Benim tavsiyem reboot etmekten yanadır. 

sysctl -p

 

Strongswan yazılımının yeniden başlatılması.

Strongswan yazılımını açılışta otomatik başlatılması için;

systemctl enable strongswan

 Strongswan yazılımını başlatmak için;

systemctl start strongswan

Strongswan yazılımını yeniden başlatmak için 

strongswan restart

 Strongswan'a yapılan bağlantılar dahil olarak durumunu görmek için;

strongswan statusall

 

 

 

BİLGİSAYAR VE TELEFON İLE BAĞLANTI AYARLARI

Bağlantı ayarlarına geçmeden önce, VPN server'a bağlanacak cihazlara oluşturmuş olduğumuz vnpHostCert.der sertifikasını bilgisayarımıza kurmamız gerekecektir.

Sertifika dosyasının bilgisayara indirmesi;

Sertifikayı bilgisayarımıza indirmek için VSFTP kurulumu gerçekleştirelim

yum install vsftpd -y

Ayar dosyasında güvenliği sağlamak için;

nano /etc/vsftpd/vsftpd.conf

nano editör ile açmış olduğunuz bu dosya içerisindeki  anonymous_enable=YES  olan kısımı   anonymous_enable=NO  olarak değiştirin.

service vsftpd restart
chkconfig vsftpd on
firewall-cmd --permanent --add-service=ftp
systemctl restart firewalld

Bu aşamalardan sonra FTP server hazır duruma gelecektir. Bağlantımız için yeni bir kullanıcı oluşturarak bağlantımızı sağlamayalım;

<mplesson> yazan yerleri kendinize göre düzenleyin.

adduser mplesson

kullanıcı şifresini oluşturmak için;

passwd mplesson

Host sertifikamızı kolay ulaşabileceğimiz bi yere kopyalamak için;

cp /etc/strongswan/ipsec.d/certs/vpnHostCert.der /home/mplesson/

 

FTP programı aracılığla Host sertifikasını bilgisayarınıza indirin;

 

İndirdiğiniz dosyayı açtığınızda MacOS bilgisayarlar için Anahtar zinciri erişimi penceresi otomatik olarak gelecektir.

IPSEC güvenilirliğini açın;

Cep telefonunuz için oluşturduğunuz sertifika dosyanızı kendinize mail atarak mail aracılığıyla açabilirsiniz. VPN bağlantınızı IKEV2 formatında kullanıcı adı ve şifrenizi girerek bağlantınız sağlanmış olacaktır.

İsim:
Yorum:
Doğrulama:
Yorum Ekle