Centos7 + OpenVPN Kurulumu

posted in: Web & Comp. | 0

OpenVPN sunucusu kurmak için oluşturduğum güzel bir yazı oldu. Biraz Linux bilginiz varsa birde VPN nasıl çalıştığına dair bilginiz varsa, kolaylıkla kurabileceksiniz. Tabi buradaki komutların bazıları kullandığım ortama özel olmuş olabilir. Bunları gözardı etmek durumunda kalabilirsiniz.

Takılırsanız, Yorumlara yazın, yardımcı olabilirim.

 

Kurulum için öncelikle sunucun gerekli paketleri indirilebilmesi için repo eklenmesi gerekmektedir. Aşağıdaki komutlar sırasıyla çalıştırılmalıdır.

yum install epel-release -y

yum update -y

Kurulum Paketleri

yum -y install openvpn easy-rsa openvpn-auth-ldap nano mc iptables openssl ca-certificates wget iptables-services

Easy-RSA Kurulumu

Kurulum en son sürüm olan versiyon 3 ile gelmektedir. Bu sürüm ile 2.0’a göre bazı değişiklikler göstermektedir.

Easy-rsa indirilmiş ise sorunsuzca bu paketi openvpn klasörü altına taşıyabiliriz.

 

mkdir /etc/openvpn/easy-rsa   

cp -R /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsa

cd /etc/openvpn/easy-rsa/

Daha sonrasında sertifika üretmeden önce şirket bilgileri girmemiz gerekmektedir. Bu işlemler için aşağıdaki dosyayı açıp içerisinde “set_var” ile olan satırları bulmamız gerekmektedir. Sarı ile belirtilenlerin değiştirilmesi yeterli olacaktır.

 

nano /etc/openvpn/easy-rsa/easyrsa

Nano ile açanlar Ctrl+w “set_var” şeklinde buldukları satırda, gerekli gördüğü bilgileri girebilir.

 

Daha sonra server için sertifika oluşturmak için sırasıyla aşağıdaki komutları çalıştırıyoruz. Bu komutlar ile server.crt, server.key, dh.pem, ca.crt, ca.key, crlm.pem ve ta.key oluşturmuş oluyoruz.

 

./easyrsa init-pki

./easyrsa --batch build-ca nopass

./easyrsa gen-dh

./easyrsa build-server-full server nopass

./easyrsa gen-crl

openvpn --genkey --secret /etc/openvpn/ta.key

 

Oluşturulan tüm dosyaları openvpn dizinine kopyalamak için aşağıdaki komutu çalıştırıyoruz.

cp pki/ca.crt  pki/private/ca.key  pki/dh.pem pki/issued/server.crt  pki/private/server.key pki/crl.pem /etc/openvpn/

 

Server.conf Dosyası

Bu dosya openvpn tanımlarının olması gereken dosyadır. Default olarak gelenin dışında aşağıdaki linkten var olan dosyayı aşağıdaki dizinin altına kopyalayabilirsiniz. Bu dosya içerisinde kuruluma göre değiştirmeniz gereken satırlar renkli olarak aşağıda belirtilmiştir.

 

    /etc/openvpn/server.conf

http://owncloud.32bit.com.tr/owncloud/public.php?service=files&t=5cdc5c9c897f98145ad5443c110998f5

 

port 443

server 10.2.45.0 255.255.255.0

push "dhcp-option DNS 8.8.8.8"

push "dhcp-option DNS 8.8.4.4"

#plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so #/etc/openvpn/auth/ldap.conf

#client-cert-not-required

 

Openvpn Servisi Başlatma

Kurulum başarılı olduysa, openvpn servisi aşağıdaki start komutu ile başlatılır. Status komutu ile durumu kontrol edilir. Sorunsuz bir şekilde başlamış ise. Bu servis son komut ile sunucu başlangıcında otomatik olarak başlatılması için eklenir.

 

systemctl start openvpn@server -l

systemctl status openvpn@server -l

systemctl -f enable openvpn@server.service

 

Firewall Ayarları

Firewall ayarları için aşağıdaki komutlar sırasıyla çalıştırılmalıdır. Öncelikle gelen istekleri yönlendirmeye izin vermeliyiz. Daha sonra openvpn’i çalıştırmak istediğimiz port’a izin vereceğiz. Daha sonra bu verdiğimiz izinleri kalıcı olması için diğer komutları çalıştıracağız.

 

nano /etc/sysctl.conf

net.ipv4.ip_forward=1

 

firewall-cmd --permanent --add-port=443/tcp

sudo firewall-cmd --zone=trusted --add-service openvpn

sudo firewall-cmd --zone=trusted --add-service openvpn --permanent

firewall-cmd --list-services --zone=trusted

sudo firewall-cmd --add-masquerade

sudo firewall-cmd --permanent --add-masquerade


firewall-cmd --query-masquerade

    :yes


firewall-cmd --reload

systemctl restart network.service

 

Manuel Kullanıcı Ekleme

Kurulum aşağıdaki komut ile yapılabilir. Bu komut çalıştırıldığında /etc/openvpn/easy-rsa/ altında issued ve privated klasörleri içerisinde sertifikalar yaratılmış olur.

 

cd /etc    /openvpn/easy-rsa

./easyrsa build-client-full deneme nopass

 

Kullanıcıya gönderilmesi gereken dosyalar aşağıdakilerdir. Ayrıca kullanıcı_adı.ovpn dosyası yaratılmalıdır. Aşağıda belirtilen 4 dosya ile beraber linkten indirilen dosyayı düzenleyerek toplamda 5 dosyayı kullanıcıya iletmeniz yeterli olacaktır.

 

Bu dosya aşağıdaki linkten kopyalayabilirsiniz.

http://owncloud.32bit.com.tr/owncloud/public.php?service=files&t=4241199c1bddc7afef5670de47d05f7e

 

/etc/openvpn/ca.crt

/etc/openvpn/ta.key

/etc/openvpn/pki/issued/kullanıcı_adı.crt

/etc/openvpn/pki/private/kullanıcı_adı.key

 

Otomatik Kullanıcı Ekleme Tool Kurulum ve Çalıştırma

Otomatik kullanıcıların ovpn dosyaları oluşturmak için hazırlanmış tool kullanmak istiyorsanız. Aşağıdaki işlemleri yapınız. Aşağıdaki bash dosyasını aşağıdaki klasöre kopyalayınız.

 

/etc/openvpn/easy-rsa/

 

http://owncloud.32bit.com.tr/owncloud/public.php?service=files&t=0bc8d142f32d00c7cf1d2334a3b90d39

Daha sonrasında aşağıdaki linkten indirdiğiniz client-common.txt ,  ovpn içerisinde kullanılan tanımlar vardır. Default olarak gelir. Değiştirilmesi istenen bir durum olursa burada tanımları değiştirebilirsiniz. Bu dosyayı altına kopyalayınız.

 

/etc/openvpn/

 

http://owncloud.32bit.com.tr/owncloud/public.php?service=files&t=8bee5fc8574dd95708dd8e1f103779a1

 

Yeni kullanıcı ekleme çıkartma işlemleri için aşağıdaki komutu çalıştırmanız gereklidir. Daha sonra [1 – 2 – 3] Seçenekleri ile devam edebilirsiniz. Ekleme işlemi tamamlandığında Kullanıcı.ovpn dosyası /etc/openvpn/client/ altında bulunmaktadır. Silme işlemi yaptığınızda ise ilgili dosya ile ilişkili tüm sertifika ve ovpn dosyası silinir.

 

sh /etc/openvpn/easy-rsa/openvpn-install.sh

 

LDAP Kurulumu

 

LDAP kontrolü için daha önce kurduğumuz için burada sadece gerekli alanları kontrol edip bazı değişikliker uyguluyoruz. Öncelikle aşağıdaki dosya içerisinde “openvpn-auth-ldap.so”, “ldap.conf” dosyalarının yolunun doğru olduğunu ve comment var ise aşağıdaki 2 satırdan kaldırılması gerekmektedir.

 

/etc/openvpn/server.conf

 

plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so /etc/openvpn/auth/ldap.conf

client-cert-not-required

 

Daha sonra aşağıdaki dosya içeriği düzenlenir. Burada düzenlenecek satırlar sunucuya göre değişiklik gösterebilir.

 

/etc/openvpn/auth/ldap.conf

 

URL         ldap://IP:389/

BindDN    cn=notes,o=şirket domaini

Password    aloha32

TLSEnable       no


<Authorization>

       # Base DN

       BaseDN          "o=Şirket domain"


       # User Search Filter

       #SearchFilter    "(&(uid=%u)(accountStatus=active))"

       SearchFilter    "(mail=%u)"


       # Require Group Membership

       RequireGroup    false


       # Add non-group members to a PF table (disabled)

       #PFTable        ips_vpn_users


       <Group>

               BaseDN          "o=32bit.com.tr"

               SearchFilter    "(cn=biz)"

               #SearchFilter    "(|(cn=developers)(cn=managers))"

               MemberAttribute uniqueMember

               # Add group members to a PF table (disabled)

               #PFTable        ips_vpn_eng

       </Group>

</Authorization>

 

VPN internet Çıkış IP

 

Kurulumu tamamladıktan sonra istenirse, default Gateway internet hızını düşürmemek için bağlanılan local IP üzerinden çıkış şekilde ayarlanabilir.

 

Bunlar için;

Server.conf dosyası içerisinde aşağıdaki satır comment’lenir. Ve openvpn servisi restart edilir.

#push "redirect-gateway def1 bypass-dhcp"

Daha sonra aşağıdaki dosya içerisindeki tanım aşağıdaki gibi değiştirilir.

Nano /etc/sysctl.conf

net.ipv4.ip_forward=0

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.