Uzaktan güvenli erişim, network yönetiminin en önemli ihtiyaçlarından biri. Özellikle router, switch, sunucu veya iç ağ kaynaklarına dışarıdan erişmek gerekiyorsa, yönetim servislerini doğrudan internete açmak yerine VPN kullanmak çok daha güvenli bir yaklaşımdır.
Bu yazıda MikroTik RouterOS üzerinde L2TP/IPsec VPN kurulumunu, Windows istemci ayarlarını, split tunneling yapılandırmasını ve temel güvenlik kontrollerini adım adım anlatacağım.
Not: Bu örnek RouterOS 6.x yapısı düşünülerek hazırlanmıştır. RouterOS 7 kullanıyorsanız WireGuard da iyi bir alternatif olabilir.
Hedef Mimari
Kurmak istediğimiz yapı şu şekilde:
Uzak Kullanıcı
|
| L2TP/IPsec VPN
|
MikroTik Router
|
İç Ağ / VLAN / Switch / Sunucu
VPN bağlantısı kurulduktan sonra kullanıcı, içerideymiş gibi belirli ağlara erişebilecek:
Router yönetimi
Switch yönetimi
Sunucular
VLAN ağları
İç uygulamalar
Ama internet trafiği istersek kullanıcının kendi internet hattından çıkmaya devam edecek. Bunun için split tunneling kullanacağız.
VPN IP Pool Oluşturma
Önce VPN kullanıcılarına dağıtılacak IP aralığını tanımlıyoruz.
/ip pool add name=vpn-pool ranges=10.30.20.10-10.30.20.50
Bu örnekte VPN kullanıcıları şu aralıktan IP alacak:
10.30.20.10 - 10.30.20.50
Mevcut pool’ları kontrol etmek için:
/ip pool print detail
Eğer aynı isimde pool varsa tekrar oluşturmaya çalıştığınızda şu hatayı alabilirsiniz:
failure: pool with such name exists
Bu durumda mevcut pool’u kullanabilir veya farklı isimle yeni bir pool oluşturabilirsiniz.
PPP Profile Oluşturma
VPN kullanıcılarının hangi IP havuzundan IP alacağını ve hangi DNS sunucularını kullanacağını PPP profile ile belirliyoruz.
/ppp profile add name=l2tp-vpn-profile local-address=10.30.20.1 remote-address=vpn-pool dns-server=8.8.8.8,1.1.1.1 use-encryption=yes
Buradaki önemli alanlar:
local-address: MikroTik’in VPN tarafındaki IP’si
remote-address: VPN kullanıcılarına dağıtılacak IP pool
dns-server: VPN istemcisine verilecek DNS adresleri
use-encryption: şifreleme kullanımı
Profile’ı kontrol etmek için:
/ppp profile print detail where name="l2tp-vpn-profile"
L2TP/IPsec Server’ı Aktif Etme
L2TP server’ı IPsec zorunlu olacak şekilde aktif ediyoruz.
/interface l2tp-server server set enabled=yes use-ipsec=required ipsec-secret="GUCLU_IPSEC_SECRET" default-profile=l2tp-vpn-profile authentication=mschap2 max-mtu=1450 max-mru=1450
Burada GUCLU_IPSEC_SECRET alanına güçlü bir pre-shared key yazılmalı.
Örnek olarak basit şifreler kullanılmamalı. Güçlü bir PSK şu özelliklere sahip olmalı:
En az 16-24 karakter
Büyük/küçük harf
Rakam
Özel karakter
Tahmin edilemeyen yapı
L2TP server durumunu kontrol etmek için:
/interface l2tp-server server print
Beklenen durum:
enabled: yes
use-ipsec: required
authentication: mschap2
default-profile: l2tp-vpn-profile
VPN Kullanıcısı Oluşturma
VPN’e bağlanacak kullanıcıyı PPP Secret altında oluşturuyoruz.
/ppp secret add name=vpn_kullanici password="GUCLU_KULLANICI_SIFRESI" service=l2tp profile=l2tp-vpn-profile
Kullanıcıyı kontrol etmek için:
/ppp secret print detail where name="vpn_kullanici"
Mevcut kullanıcıları görmek için:
/ppp secret print
Kullanılmayan kullanıcıları devre dışı bırakmak için:
/ppp secret disable [find name="eski_kullanici"]
Firewall Üzerinde L2TP/IPsec İzinleri
VPN bağlantısının dışarıdan router’a ulaşabilmesi için firewall input chain üzerinde gerekli izinleri ekliyoruz.
L2TP/IPsec için gerekli portlar:
UDP 500
UDP 1701
UDP 4500
IPsec ESP
Firewall kuralları:
/ip firewall filter add chain=input in-interface=ether1 protocol=udp dst-port=500,1701,4500 action=accept comment="Allow L2TP IPsec VPN"
/ip firewall filter add chain=input in-interface=ether1 protocol=ipsec-esp action=accept comment="Allow IPsec ESP"
Burada ether1, WAN interface örneğidir. Sizin WAN interface adınız farklı olabilir.
WAN interface’i öğrenmek için:
/ip address print
/interface print
Bu kuralların, WAN’dan gelen genel drop kuralının üstünde olması gerekir. MikroTik’te firewall kural sıralaması çok önemlidir.
VPN Kullanıcılarının Router’a Erişmesine İzin Verme
VPN’e bağlanan kullanıcının router’a WinBox/SSH/ping erişimi için input chain üzerinde izin veriyoruz.
/ip firewall filter add chain=input src-address=10.30.20.0/24 action=accept comment="Allow VPN clients to router"
Bu sayede VPN kullanıcısı router’ın iç IP’sine erişebilir.
Örnek:
10.30.20.1
172.16.10.1
192.168.1.1
VPN Kullanıcılarının İç Ağlara Erişmesine İzin Verme
VPN kullanıcılarının belirli iç ağlara erişmesi gerekiyorsa forward chain üzerinde izin veriyoruz.
Örnek management ağı:
/ip firewall filter add chain=forward src-address=10.30.20.0/24 dst-address=172.16.10.0/24 action=accept comment="VPN to Management LAN"
Örnek data ağı:
/ip firewall filter add chain=forward src-address=10.30.20.0/24 dst-address=10.1.0.0/24 action=accept comment="VPN to Data LAN"
Birden fazla VLAN veya subnet varsa her biri için ayrı route/izin tanımlanabilir.
Örnek:
/ip firewall filter add chain=forward src-address=10.30.20.0/24 dst-address=10.0.150.0/24 action=accept comment="VPN to VLAN 10"
Genel forward drop kuralı varsa, bu izin kuralları drop kuralının üstünde olmalıdır.
Split Tunneling Ayarı
Windows Üzerinde VPN Bağlantısı Oluşturma
Windows tarafında:
Settings > Network & Internet > VPN > Add VPN
Aşağıdaki bilgiler girilir:
VPN provider: Windows built-in
Connection name: Company VPN
Server name or address: PUBLIC_IP_ADRESI
VPN type: L2TP/IPsec with pre-shared key
Pre-shared key: MikroTik üzerinde tanımlanan IPsec secret
Type of sign-in info: User name and password
Username: PPP Secret kullanıcı adı
Password: PPP Secret kullanıcı şifresi
Örnek:
Server: x.x.x.x
Username: vpn_kullanici
Password: GUCLU_KULLANICI_SIFRESI
Pre-shared key: GUCLU_IPSEC_SECRET
VPN bağlantısı kurulduktan sonra Windows tarafında IP kontrolü yapılabilir:
ipconfig
VPN adaptörü üzerinde şu tarz bir IP görülmelidir:
10.30.0.x
VPN bağlantısı kurulduktan sonra internet erişimi kesiliyorsa, büyük ihtimalle Windows tüm trafiği VPN üzerinden göndermeye çalışıyordur.
Bu durumda split tunneling kullanabiliriz.
PowerShell’i yönetici olarak açıp şu komutu çalıştırıyoruz:
Set-VpnConnection -Name "Company VPN" -SplitTunneling $True
Sonra VPN üzerinden gitmesini istediğimiz iç ağları route olarak ekliyoruz.
Örnek:
Add-VpnConnectionRoute -ConnectionName "Company VPN" -DestinationPrefix "172.16.10.0/24"
Add-VpnConnectionRoute -ConnectionName "Company VPN" -DestinationPrefix "10.1.0.0/24"
Add-VpnConnectionRoute -ConnectionName "Company VPN" -DestinationPrefix "10.0.150.0/24"
Bu sayede:
İç ağ trafiği VPN’den gider.
Google, WhatsApp, YouTube gibi internet trafiği kullanıcının kendi internetinden çıkar.
VPN’i kapatıp tekrar açtıktan sonra test yapılabilir.
Bağlantı Testleri
VPN bağlantısı kurulduktan sonra Windows CMD üzerinden:
ipconfig
ping 10.99.10.1
ping 172.16.10.1
ping 10.1.0.1
ping 8.8.8.8
MikroTik tarafında aktif VPN kullanıcılarını görmek için:
/ppp active print
IPsec durumunu görmek için:
/ip ipsec active-peers print
Log kontrolü için:
/log print where topics~"ipsec|l2tp|ppp"
Bağlantı sorunu varsa bu loglar oldukça faydalıdır.
Güvenlik İçin Yapılması Gerekenler
VPN çalıştıktan sonra iş bitmiş sayılmaz. Güvenlik tarafında mutlaka bazı kontroller yapılmalı.
Kullanılmayan kullanıcıları kapatın
/ppp secret print
/ppp secret disable [find name="kullanilmayan_kullanici"]
Kullanılmayan servisleri kapatın
Örneğin API kullanılmıyorsa:
/ip service disable api
SSH kullanılmıyorsa:
/ip service disable ssh
WinBox erişimini sadece iç ağ ve VPN ile sınırlandırın
/ip service set winbox address=172.16.10.0/24,10.30.20.0/24
Bu sayede WinBox doğrudan internetten erişilebilir olmaz.
WAN’dan direkt WinBox erişimini engelleyin
VPN çalışıyorsa router’a dışarıdan direkt WinBox açmaya gerek yoktur.
/ip firewall filter add chain=input in-interface=ether1 protocol=tcp dst-port=8291 action=drop comment="Drop WinBox from WAN"
Bu kuralı eklerken mevcut firewall yapınızı ve kural sıralamasını mutlaka kontrol edin.
Şifreleri güçlü tutun
Aşağıdaki bilgileri kimseyle paylaşmayın:
IPsec pre-shared key
VPN kullanıcı şifreleri
Admin kullanıcıları
Public IP ve yönetim portları
Eğer bu bilgiler ekran görüntüsünde, dokümanda veya paylaşımda göründüyse mutlaka değiştirin.
SIKÇA SORUNLAR SORULAR
VPN bağlanıyor ama internet kesiliyor
Sebep: Tüm trafik VPN’e yönleniyor olabilir.
Çözüm:
Set-VpnConnection -Name "Company VPN" -SplitTunneling $True
Gerekli iç ağlar için route ekleyin.
VPN bağlanmıyor
Kontrol edilecekler:
/interface l2tp-server server print
/ip firewall filter print
/log print where topics~"ipsec|l2tp|ppp"
Ayrıca Windows tarafında PSK, kullanıcı adı ve şifre kontrol edilmeli.
VPN bağlı ama iç ağa erişemiyor
Kontrol edilecekler:
/ip firewall filter print
/ip route print
/ppp active print
Forward chain üzerinde VPN ağından iç ağlara izin verildiğinden emin olun.
DNS çalışmıyor
PPP profile üzerinde DNS sunucularını kontrol edin:
/ppp profile print detail where name="l2tp-vpn-profile"
Gerekirse DNS güncelleyin:
/ppp profile set [find name="l2tp-vpn-profile"] dns-server=8.8.8.8,1.1.1.1
VPN’i kapatıp tekrar bağlanın.
SONUÇ
MikroTik üzerinde L2TP/IPsec VPN kurarak dışarıdan güvenli erişim sağlamak oldukça kullanışlıdır. Ancak sadece VPN’i çalıştırmak yeterli değildir.
Doğru yapı için şunlar birlikte düşünülmelidir:
VPN IP pool
PPP profile
L2TP/IPsec ayarları
Firewall input izinleri
Forward erişim kuralları
Split tunneling
DNS ayarları
Kullanıcı güvenliği
Servis kısıtlamaları
En güvenli yaklaşım, yönetim servislerini doğrudan internete açmak yerine önce VPN ile iç ağa dahil olmak, ardından router ve switch yönetimini iç IP’ler üzerinden yapmaktır.
Network tarafında temel prensip şu olmalı:
Çalıştır, test et, sınırlandır, güvenli hale getir ve dokümante et.
Mikrotik VPN Kurulumu