CentOS Sunucumuza VPN Server Kuruyoruz

Türkiye’deki durum malüm, biz de IT sektöründeki insanlar olarak belki erişim konusunda sıkıntılar yaşayanlar için bir nebze katkımız olabilir. Sunucuza bunu kurarak eşinizle dostunuzla VPN Sunucunuzu paylaşabilirsiniz.

Burada anlatacaklarım için bir CentOS sunucuya ihtiyacınız var ama bu sunucu Türkiye’de ise yaptıklarınız pek işe yaramayacaktır çünkü engelleme zaten Türkiye’de. 🙂

EPEL Repository

Başlamadan önce Extra Packages for Enterprise Linux (EPEL)’u aktif etmemiz gerekiyor.

wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm

OpenVPN Sunucusu kurulumu

Önce OpenVPN‘i indirip kuruyoruz:

yum install openvpn -y

OpenVPN örnek konfigurasyon dosyaları ile geliyor. Onları şimdi kopyalayalım.

cp /usr/share/doc/openvpn-*/sample-config-files/server.conf /etc/openvpn

Not: /etc/openvpn klasörü yoksa mkdir /etc/openvpn komutu ile yaratabilirsiniz.

Şimdi ilk düzenlememize başlıyoruz.

nano /etc/openvpn/server.conf

İlk değişikliğimiz client üzerinde gelen istekleri vpn’e yönlendirmesi için aşağıdaki satırları server.conf içerisinden uncomment etmek olacak.

push "redirect-gateway def1 bypass-dhcp"

Daha sonra Google DNSleri kullanmak için aşağıdaki satırları ekliyoruz:

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

Güvenlik içinde şu satırları uncomment ediyoruz:

user nobody
group nobody

dh dh1024.pem satırını bulup şu şekilde değiştiriyoruz:

dh dh2048.pem

Daha sonra aşağıdaki satır önündeki commenti kaldırıyoruz. Bu ayar bize, bir sertifika ile birden fazla cihazdan erişim için olanak sağlıyor.

duplicate-cn

Key ve Sertifikaları easy-rsa ile yaratmak

Server’ı kurduk. Şimdi de güvenlik için gereken sertifikaları yaratacağız. Bunun için easy-rsa aracını yüklüyoruz:

yum install easy-rsa -y

Şimdi gerekli dosyaları ve klasörleri alıyoruz:

mkdir -p /etc/openvpn/easy-rsa/keys
cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa

easy-rsa gerekli bilgilerini düzenlemek için vars dosyasını düzenlememiz gerekiyor:

nano /etc/openvpn/easy-rsa/vars

Şimdi KEY_ ile başlayan değişkenleri düzenlememiz gerekiyor. Alttakine benzer bir görüntü olması gerekiyor.

export KEY_COUNTRY="US"
export KEY_PROVINCE="NY"
export KEY_CITY="New York"
export KEY_ORG="Organization Name"
export KEY_EMAIL="administrator@example.com"
export KEY_CN=example.com
export KEY_NAME=server
export KEY_OU=server

CentOS 6 üzerinde OpenSSL conf dosyasını bulma konusunda sıkıntı çıkabilir o yüzden OpenSSL conf dosyasını da kopyalıyoruz.

cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

Şimdi CA (Certificate Authority) yaratıyoruz (ENTER, ENTER diyerek geçebilirsiniz hepsini):

cd /etc/openvpn/easy-rsa
source ./vars
./clean-all
./build-ca

Şimdi bu bilgiler ışığında sertifikamızı yaratıyoruz:

./build-key-server server

Ayrıca Diffie Hellman key exchange dosyalarını yaratmamız gerekiyor:

./build-dh
cd /etc/openvpn/easy-rsa/keys
cp dh2048.pem ca.crt server.crt server.key /etc/openvpn

Şimdi bir de client sertifikası yaratmamız gerekiyor.

cd /etc/openvpn/easy-rsa
./build-key client

OpenVPN Server’ı başlatmak

iptables ayarımızı yapıyoruz:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
service iptables save

sysctl üzerinde IP Routing’i aktif ediyoruz:

nano /etc/sysctl.conf

# Controls IP packet forwarding
net.ipv4.ip_forward = 1

Son olarak yeni sysctlyi aktif edip sunucuyu başlatıyoruz.

sysctl -p
service openvpn start
chkconfig openvpn on

Hayırlı olsun.

OpenVPN Client ayarları

Aşağıdaki dosyaların hepsini kendi bilgisayarınıza kopyalayın:

/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key

Daha sonra client.ovpn isminde bir dosya yaratıyoruz. (Bu dosya server üzerinde yazdığımız client ismi ile eşleşmek zorunda). Ve içeriği

client
dev tun
proto udp
remote x.x.x.x 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
<ca>
ca.crt dosyasının içerikleri
</ca>
<cert>
client.crt dosyasının içerikleri
</cert>
<key>
client.key dosyasının içerikleri
</key>
  1. x.x.x.x yerine sunucu ipsini yazın.
  2. ca.crt, client.crt ve client.key dosyalarının içeriklerini dosyada gösterilen yerlere yapıştırın.

Daha sonra bilgisayarınıza veya telefonunuza indirdiğiniz OpenVPN programına import etmeniz gerekiyor.

OpenVPN Clientları:

Bilgisayarlar için: http://openvpn.net/index.php/access-server/download-openvpn-as-sw/357.html

Android: https://play.google.com/store/apps/details?id=net.openvpn.openvpn&hl=tr

iOS: https://itunes.apple.com/app/openvpn-connect/id590379981

İşte bu kadar basit. Kolay gelsin 🙂

One thought on “CentOS Sunucumuza VPN Server Kuruyoruz

  1. Doğuş Özdemir

    Çok güzel anlatmışsın tebrik ederim. Diğer sitelerden yaptıklarım olmadı bu bilgilerle tek seferde sorunsuz kurulum yaptım şu an vpne bağlı olarak yazıyorum :d

    Reply

Leave a Reply

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

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax