OpenVPN Access Server ile Web Tabanlı Yönetim Paneli Kurulumu ve Yapılandırması
Kurumsal ağ yönetiminde VPN çözümleri arasında OpenVPN Access Server, hem güçlü özellikleri hem de web tabanlı yönetim arayüzü sayesinde sysadminler arasında popüler bir tercih haline geldi. Komut satırı ile uğraşmadan, tarayıcı üzerinden kullanıcı ekleyip bağlantıları yönetebilmek büyük bir kolaylık sağlıyor. Bu yazıda sıfırdan bir OpenVPN Access Server kurulumu yapacağız, web panelini yapılandıracağız ve gerçek dünya senaryolarında karşılaşılan sorunlara çözüm üretmeye çalışacağız.
OpenVPN Access Server Nedir ve Ne Zaman Kullanmalısınız?
OpenVPN Access Server (AS), açık kaynaklı OpenVPN’in ticari versiyonunu temel alan, web tabanlı yönetim arayüzüyle gelen bir VPN sunucu çözümüdür. Ücretsiz lisansla 2 eş zamanlı bağlantıya kadar kullanılabilir. Küçük ofisler, geliştirme ortamları veya test sistemleri için bu limit genellikle yeterlidir.
Şu senaryolarda OpenVPN AS tercih edilebilir:
- Teknik olmayan personelin VPN yönetimine dahil olması gerektiğinde
- Hızlı kullanıcı ekleme/çıkarma ihtiyacı olan ortamlarda
- LDAP veya RADIUS entegrasyonu yapılacak durumlarda
- İki faktörlü kimlik doğrulama (2FA) entegre edilmek istendiğinde
- Detaylı bağlantı logları ve raporlama gerektiğinde
Eğer 2 kişiden fazla kullanıcı bağlantısı gerekiyorsa lisans satın almanız gerekecek. Alternatif olarak topluluğun katkısıyla geliştirilen açık kaynaklı OpenVPN çözümüne geçilebilir, ancak o kurulum bu yazının kapsamı dışında.
Sistem Gereksinimleri ve Hazırlık
Kuruluma geçmeden önce sunucunuzun hazır olduğundan emin olun. Bu yazıda Ubuntu 22.04 LTS kullanıyoruz. Benzer adımlar Debian ve CentOS için de geçerlidir.
Minimum sistem gereksinimleri şöyle sıralanabilir:
- İşlemci: 1 vCPU (üretim için 2+ önerilir)
- RAM: 1 GB minimum, 2 GB önerilir
- Disk: 10 GB boş alan
- Ağ: Statik IP adresi veya sabit DNS kaydı
- İşletim Sistemi: Ubuntu 20.04/22.04, Debian 10/11, CentOS 7/8
Kuruluma başlamadan önce sistemi güncelleyin ve gerekli bağımlılıkları yükleyin:
sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates wget net-tools gnupg
Firewall durumunu kontrol edin. OpenVPN AS şu portları kullanır:
- TCP 943: Web yönetim paneli (Admin UI)
- TCP 443: Client web arayüzü ve HTTPS VPN
- UDP 1194: OpenVPN protokolü (varsayılan)
sudo ufw status
sudo ufw allow 943/tcp
sudo ufw allow 443/tcp
sudo ufw allow 1194/udp
sudo ufw allow 22/tcp
sudo ufw enable
OpenVPN Access Server Kurulumu
OpenVPN AS’yi resmi depolar üzerinden yüklemek en sağlıklı yöntemdir. Bu sayede güncellemeler otomatik olarak yapılabilir.
# OpenVPN AS GPG anahtarını ekleyin
wget -qO - https://as-repository.openvpn.net/as-repo-public.gpg |
sudo gpg --dearmor -o /usr/share/keyrings/as-repository.gpg
# Depoyu sisteme ekleyin
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/as-repository.gpg]
https://as-repository.openvpn.net/as/debian jammy main" |
sudo tee /etc/apt/sources.list.d/openvpn-as-repo.list
# Paketi yükleyin
sudo apt update
sudo apt install -y openvpn-as
Kurulum tamamlandığında terminal çıktısında admin kullanıcısının geçici şifresi görünecektir. Bu çıktıyı mutlaka kaydedin:
+++++++++++++++++++++++++++++++++++++++++++++++
Access Server 2.x.x has been successfully installed.
Admin UI: https://YOUR_SERVER_IP:943/admin
Client UI: https://YOUR_SERVER_IP:943/
To login please use the "openvpn" account with
"<random_generated_password>" password.
+++++++++++++++++++++++++++++++++++++++++++++++
Kurulum sonrası servis durumunu doğrulayın:
sudo systemctl status openvpnas
sudo systemctl enable openvpnas
İlk Giriş ve Temel Yapılandırma
Tarayıcınızdan https://SUNUCU_IP:943/admin adresine gidin. Self-signed sertifika uyarısını geçerek devam edin (bu uyarıyı gidermek için ileride Let’s Encrypt kuracağız).
Kullanıcı adı olarak openvpn, şifre olarak kurulum çıktısındaki geçici şifreyi kullanın. İlk girişte şifre değiştirmeniz istenecektir.
Admin şifresini komut satırından da değiştirebilirsiniz:
sudo passwd openvpn
Ya da OpenVPN AS’nin kendi araçlarıyla:
sudo /usr/local/openvpn_as/scripts/sacli --user openvpn
--new_pass "YeniGucluSifre123!" SetLocalPassword
Hostname ve Ağ Yapılandırması
Sol menüden Configuration > Network Settings bölümüne gidin. Burada yapmanız gereken ilk ayar sunucunuzun dışarıya açık IP adresini veya domain adını girmektir.
Hostname ayarını komut satırından yapmak isterseniz:
sudo /usr/local/openvpn_as/scripts/sacli --key "host.name"
--value "vpn.sirketiniz.com" ConfigPut
sudo /usr/local/openvpn_as/scripts/sacli start
VPN Modu Seçimi
OpenVPN AS iki farklı modda çalışabilir:
- Routing modu: Her istemciye ayrı IP atanır, trafik yönlendirme kurallarına göre ilerler. Kurumsal kullanım için önerilir.
- Bridging modu: İstemciler sanki aynı fiziksel ağdaymış gibi davranır. Özel senaryolar için kullanılır.
Çoğu durumda routing modu yeterlidir. Configuration > VPN Settings altından ayarları düzenleyebilirsiniz.
Let’s Encrypt ile SSL Sertifikası Kurulumu
Self-signed sertifika ile çalışmak, özellikle kullanıcılara istemci dağıtırken sorun yaratır. Let’s Encrypt ile ücretsiz ve güvenilir bir sertifika alabiliriz. Bunun için sunucunuzun internetten erişilebilir olması ve bir domain adı olması şart.
# Certbot kurulumu
sudo apt install -y certbot
# Sertifika alın (OpenVPN AS'yi geçici durdurmanız gerekebilir)
sudo systemctl stop openvpnas
sudo certbot certonly --standalone
-d vpn.sirketiniz.com
--agree-tos
--email [email protected]
--non-interactive
sudo systemctl start openvpnas
Sertifikaları OpenVPN AS’ye tanıtın:
sudo /usr/local/openvpn_as/scripts/sacli
--key "cs.ca_bundle"
--value "$(cat /etc/letsencrypt/live/vpn.sirketiniz.com/fullchain.pem)"
ConfigPut
sudo /usr/local/openvpn_as/scripts/sacli
--key "cs.priv_key"
--value "$(cat /etc/letsencrypt/live/vpn.sirketiniz.com/privkey.pem)"
ConfigPut
sudo /usr/local/openvpn_as/scripts/sacli start
Sertifika yenileme için cron görevi oluşturun:
sudo crontab -e
# Şu satırı ekleyin:
0 3 * * 1 certbot renew --pre-hook "systemctl stop openvpnas"
--post-hook "systemctl start openvpnas" --quiet
Kullanıcı Yönetimi
Web Panelinden Kullanıcı Ekleme
Admin panelinde User Management > User Permissions bölümüne gidin. Yeni bir kullanıcı adı yazıp Save Settings butonuna tıklayın. Kullanıcıya VPN erişimi için şifre belirlemeniz gerekiyor.
Komut Satırından Kullanıcı Yönetimi
Toplu kullanıcı eklemek veya otomasyon senaryolarında komut satırı araçları çok daha pratiktir:
# Yeni kullanıcı oluştur
sudo /usr/local/openvpn_as/scripts/sacli
--user "ali.veli"
--key "prop_autologin"
--value "false"
UserPropPut
# Kullanıcıya şifre ata
sudo /usr/local/openvpn_as/scripts/sacli
--user "ali.veli"
--new_pass "KullaniciBSifre456!"
SetLocalPassword
# Kullanıcı listesini görüntüle
sudo /usr/local/openvpn_as/scripts/sacli UserPropGetAll
# Kullanıcıyı devre dışı bırak
sudo /usr/local/openvpn_as/scripts/sacli
--user "ali.veli"
--key "prop_deny"
--value "true"
UserPropPut
# Kullanıcıyı sil
sudo /usr/local/openvpn_as/scripts/sacli
--user "ali.veli"
UserPropDelAll
Kullanıcı Grupları ve İzin Yönetimi
Farklı departmanlar için farklı erişim seviyeleri tanımlamak istiyorsanız grup yapısını kullanabilirsiniz. Örneğin muhasebe ekibinin yalnızca muhasebe sunucusuna erişmesi, geliştirme ekibinin ise tüm iç ağa erişmesi gibi senaryolar mümkün.
Admin panelinde User Management > Group Permissions bölümünden grupları yönetebilirsiniz. __DEFAULT__ grubu tüm kullanıcılar için temel politikayı belirler.
Split Tunneling Yapılandırması
Varsayılan kurulumda tüm internet trafiği VPN üzerinden geçer. Çoğu kurumsal senaryoda yalnızca iç ağ trafiğinin VPN üzerinden geçmesi, diğer trafiğin direkt internete gitmesi istenir. Bu split tunneling olarak adlandırılır.
Admin panelinde Configuration > VPN Settings altında “Should client Internet traffic be routed through the VPN?” seçeneğini No olarak ayarlayın.
Ardından yalnızca iç ağ için route ekleyin. Komut satırından:
# İç ağ olarak 192.168.10.0/24 alt ağını yönlendir
sudo /usr/local/openvpn_as/scripts/sacli
--key "vpn.client.routing.reroute_gw"
--value "false"
ConfigPut
sudo /usr/local/openvpn_as/scripts/sacli
--key "vpn.server.routing.private_network.0"
--value "192.168.10.0/255.255.255.0"
ConfigPut
sudo /usr/local/openvpn_as/scripts/sacli start
İki Faktörlü Kimlik Doğrulama (2FA) Kurulumu
OpenVPN AS, Google Authenticator veya benzeri TOTP uygulamalarıyla uyumlu 2FA desteği sunar. Özellikle uzaktan çalışma politikalarında 2FA zorunlu hale getirilmelidir.
Admin panelinden Configuration > Client Settings altında “Google Authenticator two-factor authentication” seçeneğini etkinleştirin.
Kullanıcılar ilk VPN bağlantısında QR kod tarayarak hesaplarını uygulamaya ekleyebilir. Belirli bir kullanıcı için 2FA sıfırlamak gerekirse:
sudo /usr/local/openvpn_as/scripts/sacli
--user "ali.veli"
--key "prop_google_auth"
--value "false"
UserPropPut
LDAP Entegrasyonu
Active Directory veya OpenLDAP kullanan ortamlarda merkezi kimlik yönetimi için LDAP entegrasyonu şarttır. Böylece kullanıcılar mevcut domain şifreleriyle VPN’e bağlanabilir.
Admin panelinde Authentication > LDAP bölümüne gidin. Temel ayarlar şunlardır:
- Primary Server:
ldap://dc01.sirket.local - Bind DN:
CN=vpn-service,OU=Service Accounts,DC=sirket,DC=local - Bind Password: Servis hesabının şifresi
- Users Base DN:
OU=Users,DC=sirket,DC=local - Username Attribute:
sAMAccountName(AD için) veyauid(OpenLDAP için)
LDAP bağlantısını komut satırından test edin:
sudo /usr/local/openvpn_as/scripts/sacli
--user "testkullanici"
--password "testSifre"
LocalAuthTest
Loglama ve İzleme
Bağlantı Loglarını Görüntüleme
OpenVPN AS logları /var/log/openvpnas.log dosyasında tutulur. Ayrıca admin panelinde Log Reports bölümünden web arayüzü üzerinden de görüntülenebilir.
# Canlı log takibi
sudo tail -f /var/log/openvpnas.log
# Belirli bir kullanıcının bağlantılarını filtrele
sudo grep "ali.veli" /var/log/openvpnas.log | tail -50
# Başarısız giriş denemelerini listele
sudo grep "AUTH_FAILED" /var/log/openvpnas.log |
awk '{print $1, $2, $NF}' | sort | uniq -c | sort -rn | head -20
Anlık Bağlantı Durumu
Şu anda bağlı olan kullanıcıları görmek için:
sudo /usr/local/openvpn_as/scripts/sacli VPNStatus
Yedekleme ve Geri Yükleme
OpenVPN AS yapılandırmasını düzenli olarak yedeklemek kritik önem taşır. Sunucu arızalanırsa yapılandırmayı sıfırdan girmek saatlerce sürebilir.
# Yapılandırmayı yedekle
sudo /usr/local/openvpn_as/scripts/sacli --cn "backup_$(date +%Y%m%d)"
GetActiveWebCerts > /backup/openvpn_certs_$(date +%Y%m%d).json
# Tüm konfigürasyonu dışa aktar
sudo /usr/local/openvpn_as/scripts/sacli ConfigQuery >
/backup/openvpn_config_$(date +%Y%m%d).json
# Tam veritabanı yedeği (SQLite tabanlı)
sudo systemctl stop openvpnas
sudo cp -r /usr/local/openvpn_as/etc/ /backup/openvpn_as_etc_$(date +%Y%m%d)/
sudo systemctl start openvpnas
Yedekleri otomatikleştirmek için cron görevi:
sudo crontab -e
# Her gece 02:00'de yedek al
0 2 * * * /usr/local/openvpn_as/scripts/sacli ConfigQuery >
/backup/openvpn_config_$(date +%Y%m%d).json 2>&1
Yaygın Sorunlar ve Çözümleri
Sorun: Web arayüzüne erişilemiyor. Çözüm: Servis durumunu ve firewall kurallarını kontrol edin.
sudo systemctl restart openvpnas
sudo netstat -tlnp | grep -E "943|443|1194"
sudo ufw status verbose
Sorun: Kullanıcılar bağlanabiliyor ama iç kaynaklara erişemiyor. Çözüm: IP forwarding etkin olduğundan emin olun:
sudo sysctl net.ipv4.ip_forward
# Çıktı 1 değilse:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# NAT kuralı ekle
sudo iptables -t nat -A POSTROUTING -s 172.27.0.0/16
-o eth0 -j MASQUERADE
sudo apt install -y iptables-persistent
sudo netfilter-persistent save
Sorun: Sertifika hatası, istemciler güvenmiyor. Çözüm: Let’s Encrypt sertifikasını doğru şekilde yüklediğinizden ve otomatik yenilemenin çalıştığından emin olun. Ayrıca sunucu saatinin doğru olduğunu kontrol edin:
sudo timedatectl status
sudo timedatectl set-ntp true
Performans İyileştirmeleri
Yoğun kullanım senaryolarında birkaç iyileştirme yapılabilir:
# OpenVPN AS worker sayısını artır
sudo /usr/local/openvpn_as/scripts/sacli
--key "vpn.server.daemon.udp.n_workers"
--value "4"
ConfigPut
# TLS cipher suitelerini optimize et
sudo /usr/local/openvpn_as/scripts/sacli
--key "vpn.server.tls_version_min"
--value "1.2"
ConfigPut
sudo /usr/local/openvpn_as/scripts/sacli start
Sonuç
OpenVPN Access Server, web tabanlı yönetim arayüzü sayesinde VPN altyapısını yönetimi en az teknik gereksinim ile yapılabilir hale getiriyor. Bu yazıda kurulumdan başlayarak SSL yapılandırması, kullanıcı yönetimi, 2FA, LDAP entegrasyonu, loglama ve yedekleme konularını ele aldık.
Küçük ve orta ölçekli işletmeler için 2 kullanıcı limiti olan ücretsiz sürüm bir başlangıç noktası olabilir. Daha fazla kullanıcıya ihtiyaç duyulduğunda lisans alınması ya da tam açık kaynaklı OpenVPN çözümüne geçilmesi değerlendirilebilir.
Unutmayın ki VPN kurulumu tek seferlik bir iş değildir. Düzenli güncellemeler, sertifika yenilemeleri, kullanıcı denetimleri ve log analizi güvenli bir VPN altyapısının temelini oluşturur. İyi yapılandırılmış bir VPN çözümü, uzaktan çalışma güvenliğinin belkemiğini oluşturur.
