İnternetin gidişatı için VPN in mantığını ve önemini bu makalede anlatacak değilim konuya direk girmek lazım VPN şifreli bir network sunar böylelikle güvenliğinizi ve gizliliğinizi sağlayabilirsiniz.
epel depolarını sistemimize eklememiz gerekecek yoksa openvpn paketlerini kuramayız bunun için aşağıdaki yönergeleri takip edin
yum install epel-release -y
bu işlemimizden sonra OpenVPN kurulumu için komutumuzu veriyoruz.
yum install openvpn wget -y
OpenVPN in haberleşmesi ve bağlantıyı şifrelemesi içinde Easy RSA kurmamız lazım bunu eski depodakini kullanarak yakacağız.
wget -O /tmp/easy_rsa https://github.com/OpenVPN/easy-rsa2.3.3.tar.gz
indirdiğimiz bu easy-rsa’yı tar.gz dosyasından çıkartıyoruz.
tar xfz /tmp/easy_rsa
Gereken adımları takip ederek devam ediyorsunuz.
sudo mkdir /etc/openvpn/easy-rsa
sudo cp -rf easy-rsa-old-2.3.3/easy-rsa/2.0/* /etc/openvpn/easy-rsa
sudo chown -R mertcan:mertcan /etc/openvpn/easy-rsa/
en önemli noktamıza geldik ayar dosyası oluşturmamız lazım ama önce yedek yapalım ve gereken yerlere dosyamızı taşıyalım
sudo cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn
hemen sonrasında yapacağımız şey dosyamızı açmak aşağıdaki çoğu işlemi bu dosya içerisinde yapacağız aklınızda olsun
nano /etc/openvpn/server.conf
açtığımızda karşımıza bir sürü satır gelecek değiştirmemiz gereken yer var dh diye bir satır göreceksiniz bunun ismini dh2048.pem yapıyoruz.
dh dh2048.pem
işlem bitiminde networkdeki tüm trafiği VPN yönlendirmemiz lazım ki bağlantı şifrelensin bunun için ise
push "redirect-gateway def1 bypass-dhcp"
hemen ardından DNS sunucularını değiştirmek lazım böylelikle işimiz biraz daha kolay olabilir DNS sorgularında sıkıntı çekmemiş oluruz ve birazda sorgularımız hızlanır
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
kullanıcımızı kimsesiz yapalım hemen
user nobody
group nobody
topology subnet
remote-cert-eku "TLS Web Client Authentication"
TLS auth için işlemlerimiz var bunları şu şekilde yapabilirsiniz server.conf içerisine eklemenizi yapınız.
tls-auth ta.key 0
tls-crypt auth_key.tlsauth
anahtarı oluşturalım
sudo openvpn --genkey --secret /etc/openvpn/auth_key.tlsauth
yukarıdaki yazanları server.conf dosyamıza kayıt ettikten yada gereken satırları yukarıdaki ayarlara göre değiştirip kayıt ettikten sonra bir sonraki aşamamıza geçebiliriz. Geçtiğimiz bu aşamada sisteme sertifika ürettiriyoruz böylelikle bağlantımız güzel bir şekilde güvenli ve şifreli hale gelecek.
mkdir -p /etc/openvpn/easy-rsa/keys
cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa
nano /etc/openvpn/easy-rsa/vars
komutlarınının bitiminde vars nano aracılığı ile açmıştık. KEY_ ile başlayan bazı satırlar göreceksiniz orda onların hepsini kafanıza göre doldurun.yada doğru bilgilerinizi girin
. . .
export KEY_COUNTRY="TR"
export KEY_PROVINCE="TR"
export KEY_CITY="Ankara"
export KEY_ORG="mertcan"
export KEY_EMAIL="nobody@mertcangokgoz.com"
export KEY_OU="Community"
export KEY_NAME="server"
export KEY_CN=openvpn.umertcangokgoz.com
. . .
versiyonumuzu kaldıralım belli olmaz uyuşmazlık yapabilir belirli bir isim verelim
cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf
şimdi sertifikamızı tam olarak oluşturmaya geldi sıra
cd /etc/openvpn/easy-rsa
source ./vars
./clean-all
./build-ca
./build-key-server server
./build-dh
yukarıdaki işlemlerin tamamlanması yaklaşık bi 3 dknızı alacaktır bu işlemlerin bitiminde oluşan dosyaları openvpn klasörü içerisine kopyalıyoruz.
cd /etc/openvpn/easy-rsa/keys
cp dh2048.pem ca.crt server.crt server.key /etc/openvpn
son olarak client tarafında ufak bi ayara
cd /etc/openvpn/easy-rsa
./build-key client
işlemimiz böylelikle kurulum aşamasında sonlanmış oluyor bundan sonra geriye yönlendirme ve yetkilendirme kaldı
yum install iptables-services -y
systemctl mask firewalld
systemctl enable iptables
systemctl stop firewalld
systemctl start iptables
iptables --flush
tertemiz bir firewall ayarlarına merhaba diyoruz ve yapmamız gerekenleri sırasıyla yapıyoruz ilk olarak ip aralıklarını firewall onaylatmak
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
yaptığımız bu onaylatma işlemini kayıt edelim ki sonra sıkıntı çıkartmasın başımıza
iptables-save > /etc/sysconfig/iptables
ip yönlendirmeyi açmamız lazım ipv4 için bunu da aşağıdakileri yaparak halledebilirsiniz.
nano /etc/sysctl.conf
aşağıdaki gibi yapıyoruz içerisindekini
net.ipv4.ip_forward = 1
ve bi restart atıyoruz network servisine
systemctl restart network.service
OpenVPN başlatmaya geldi sıra sabırla bu işlemleri yaptıysanız sona yaklaşmanıza az bir işlem kalmış demektir sabredin
systemctl -f enable openvpn@server.service
systemctl start openvpn@server.service
yukarıda clienti ayarlamaktan bahsetmiştim az bir kısmını yapmıştık şimdi onuda sonlandırmamız gerekiyor böylelikle bilgisayarımızdan bağlanabilelim VPN imize
Aşağıdakileri bir şekilde bilgisayarınıza kopyalayın bunu kullanırken SFTP ile yapabilirsiniz WinSCP önerilir.
/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key
yukarıdakileri sisteminize kopyaladıktan sonra .ovpn dosyası oluşturmanız gerekiyor aşağıdaki yönergeyi takip ederek yapabilirsiniz.tek yapılacak olan dosya yollarını ve ip adresini belirleyip kaydetmek
client
dev tun
proto udp
remote sunucunuzun ip adresi 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca dosya yolu/ca.crt
cert dosya yolu/client.crt
key dosya yolu/client.key
hata almadan son aşamaya kadar geçebildiyseniz. Windows için OpenVPN kurmak ve yukarıda oluşturmuş olduğunuz .ovpn dosyasını C:Program FilesOpenVPNconfig yoluna atmak sonrasında programdan kolaylıkla bağlanabilirsiniz.
Mertcan bey selamlar.. Benim sormak istediğim hayati bir konu var.
Web server olarak kullandığım Centos7 makinaya bu VPN yukarıda yazdığımız gibi kurulabilir mi?
IP yönlendirmeleri falan var, biliyorsunuz. Server üzerinde çalışan internet sitelerine ulaşılamaz hale getirir mi diye tedirginim.
Bir ikincisi, bu VPN’i kurduğumuzda sadece tek bir Browser üzerinden VPN’e bağlanabilme imkanımız var mı? Diğer Browser’lar kendi ISS’mden çalışacak şekilde..
Bu iki meseleyi internette bir kaç gündür araştırıyorum, bir türlü bilgi edinemedim.
Merhaba
Kurulabilir. Bir sorun ile karşılaşmazsınız maximum firewall tarafında sitenize giriş yapılamaz izin verdiğiniz taktirde o sorunda kalkar ancak yapacağınız şeyi kesinlikle önermiyorum. VPN bildiğiniz gibi gizllik için kullanılan bir yöntemdir. Web site arkasında aynı zamanda VPN kullanmak hoş olmaz.
Benim size önerim sunucunuz üzerine proxy kurmanız böylelikle istediğiniz gibi tarayıcı üzerinden girmiş olursunuz. Diğer türlü VPNi direk olarak tarayıcıda kullanma diye birşey benim bildiğim yok
O halde hemen proxy kurulumu ile ilgili araştırmaya geçiyorum. İşin aslı çok fazla bilgiye sahip değilim. Bir türlü şu Linux’a giriş için kendime zaman tanımadım bu güne kadar. Ufak çaplı internet siteleri yapıyorum ama, arkaplanda neler olur, bir arıza çıkarsa ne yapmalıyım, hiç bilmem. Fena eksiklik..
Açıkcası, aylardır Opera kullanıyorum gizlilik sözkonusu olduğunda ama, bazen çok fazla yavaşlayabiliyor. Plesk 12 VPN Eklentisini de aktif edip gerekli işlemleri yaptım. OpenVPN client bağlantısına kadar herşey okey. Bu sefer de ağ bağlantılarında oluşan yerel ağ bağlantısında Tanımlanamayan Ağ diyor. IP’leri manuel olarak atamaya vanrana kadar uğraştım ama, açıkcası en sonunda sabah 6’da ağlaya ağlaya vurdum kafayı yattım. :))
Biraz da proxy ile cebelleşelim.
Çok teşekkür ederim ilgilendiğiniz için.
Merhaba
Keşke bana ulaşmayı deneseymişsiniz. Sorununuza çözüm getirmeye çalışırdık yönlenmeme sorunları genelde DNS ve firewall kaynaklı oluyor. Proxy olarakta Squid proxy kullanabilirsiniz. İşinizi oldukça görecektir. Ayrıca Linux konularında acele etmeyin bu bir süreç sorunları çözmeye çalışın çözemesenizde yılmayın.
Çözülmeyen hiç bir şey yok ve olmazda 🙂
Tam şu anda Squit kurdum ve onu çalıştırmaya çalışıyordum. Zira eşşek herifin damadı, Job for squid.service failed because the control process exited with error code. diyor. 🙂 Neymiş, /usr/lib64/squid/ncsa_auth: (2) No such file or directory imiş..
Halbuki rpm -ql squid | grep ncsa_auth yaptığımda bana bu yolu göstermişti. Google’da site: komutuyla arattım, sizde bunun kurulum makalesi yok. Ben de Zülfü Meh met ‘in blogunda yakalamıştım makaleyi.
Neyse, cebelleşmeye devam. Murphy Kanunları’nı aşabilirsek ne ala.. 🙂
Merhaba
Umarım sorununuzu çözdünüz ve kurabildiniz. Yol gene yanlış gözüküyor ama kontrol edin.
Merhaba! Yardımlarınızdan dolayı size teşekkür etmezsem kabalık etmiş olurum. Evet proxy’yi kurdum. Şifrelendirme ve güvenlik ayarları 4/4’lük oldu. Çok fazla umursanmayacak bir gecikme ile bağlanıyorum istediğim sayfaya. Cache ayarını açmadım bilerek. Server’a sürekli kayıt yapmasın diye. Sizin de dediğiniz gibi, aldığım hatada yol sorunu varmış. Yol da yaptık! (!) 😀
Sağlıcakla kalın.. Çok teşekkürler..
Merhaba
Asıl ben teşekkür ederim. Temiz anlatım ile isteklerinizi yakında yayınlayacağım. Kolay gelsin
Bu arada, ver12 Plesk’ten aktif edilen OpenVPN ile ilgili hiçbir şeyi kaldırmadım daha. Hatta şu an bile client OpenVPN bağlanabiliyor. XXXXXXX ip aresine bağlantı kuruldu diyor lakin DHCP ile ip almıyor sistemim ve Ağ bağlantısında Tanımlanamayan Ağ diyor.
Plesk 12’nin oluşturduğu client’le bir süre bağlanamayınca plesk’in yardım forumlarında birisi gerçek OpenVPN client’i indirmeyi ve şifrelenmiş Key dosyası ile Config dosyasını buna nasıl import edebileceğini anlatmış. Faydalı oldu, bağlantı kurabildim ama, bir de amacına uygun bağlanmış olsa. Şu anda sadece görüntüde bağlıyım. Whatismyip ile baktığımda yine normal ip’mi görüyorum.
Aslında bu konu ile ilgili de bir makale yazsanız Plesk kullanıcılarını bir hayli sevindirirsiniz. Çünkü Plesk VPN modülü ile ilgili hiçbir Türkçe Doküman yok.
Merhaba
İstediğiniz üzere 1 adet Squid proxy ve 1 adette plesk server üzerinde VPN yapılandırması hakkında makale hazırlıyorum. İlerleyen günlerde yayınlamış olurum.
Kolay Gelsin
Merhaba, öncelikle emeğinize sağlık.
Makalenizdeki gibi centos7 üzerine vpn sunucuyu kurdum çalışıyor. Ancak client kullanıcısı ile deneme yapmak istediğimde bağlantı sağlayamadım ve log dosyasında aşağıdaki uyarı mevcut. (Windows 10 işletim sistemi ile bağlantı deniyorum)
acaba nerede hata yapmış olabilirim?
WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.ht… for more info.
Merhaba
Client için kullandığınız sertifikayı kontrol edin. Bbu bir bağlantı hatasıdır sertifika uyuşmadığında vermektedir. Özellikle son güncellemelerde openvpn çok değişti, kontrollerinizi sağlayıp yeni sertifika oluşturabilirsiniz gene hata alırsanız. İletin makaledeki parametrelerde değişiklik yapmamız gerekebilir.
Merhaba, sizce şu anda aktif olarak apache mysql vb. için kullanılan yani bir sitenin yayınlandığı sunucuya openvpn kurmanın bir zararı vs olur mu sizce mantıklı mı?
Gizlilik açısından zararı olabilir, ancak onun dışında güvenlik vb bir sorun oluşacağını sanmam. Gizlilik sorun değilse kurabilirsiniz.
Openvpn kurulumunu yaptım ve vpn bağlantısı kurabiliyorum. VPN bağlantısı kurduktan sonra internet bağlantısı kopuyor ve internete çıkış yapamıyorum. Bu durum ile ilgili bir öneriniz var mıdır?
VPN bağlandıktan sonra, bilgisayarınızdaki DNS ayarlarını kontrol edin. OpenVPN bilgisayarınızda kullanılacak olan DNS ayarını yapmamış olabilir.
Merhaba Mertcan GÖKGÖZ,
VPN server üzerinde çoklu kullanıcı oluşturmak ve birden fazla kullanıcının VPN sistemini kullanmasını istiyorum bunu nasıl yapabilirim?
Linux sistem üzerinde, yeni bir kullanıcı tanımlayıp yapılabilir. Kullanıcı alanlarını tanımlayıp auth aktif etmek gerekli internetten araştırmanızda fayda var.
Rica etsem örnek bir makale paylaşarak yardımcı olabilir misiniz?