Linux Üzerinde StrongSwan ile IPsec IKEv2 VPN Sunucusu Kurulumu
Linux VDS üzerinde strongSwan ile IPsec IKEv2 VPN sunucusu: swanctl, sertifikalar, EAP-MSCHAPv2, NAT ve Windows, iOS, Android istemcileri adım adım.

İçindekiler
- Örnek Topoloji ve Kullanılan Değerler
- strongSwan ve IKEv2 Nedir?
- strongSwan IKEv2 Kimler İçin Uygun?
- strongSwan Kurulum Öncesi Gereksinimler
- VDS Neden IKEv2 VPN Sunucusu İçin Kullanılır?
- Sunucuyu Hazırlama: Bağlantı, Güncelleme ve Güvenlik Duvarı
- strongSwan IKEv2 Kurulumu: Terminalde Adım Adım
- IKEv2 İstemci Bağlantısı: Windows, Android, iOS ve Linux
- strongSwan Sorun Giderme
- strongSwan IKEv2 ve Diğer VPN Teknolojileri
- Ryzen VDS IKEv2 İçin Neden Tercih Edilebilir?
- IKEv2 VPN Sunucusunu Güvenli Hale Getirme
- Sonuç
- Sıkça Sorulan Sorular
- strongSwan ne işe yarar?
- IKEv2 hangi portları kullanır?
- swanctl mi ipsec.conf mu?
- Windows’ta 13801 hatası neden olur?
- iPhone’a uygulama kurmadan IKEv2 VPN bağlanabilir mi?
- IKEv2 sunucusu için kaç GB RAM gerekir?
- Ryzen VDS VPN için uygun mudur?
IPsec/IKEv2, Windows, macOS, iOS ve Android’in yerleşik VPN istemcilerinin doğrudan desteklediği standart bir VPN protokolü. Linux tarafında bu standardın en yaygın uygulaması strongSwan. Ek uygulama kurdurmadan şirket dizüstülerine ve telefonlara VPN tanımlamak istiyorsanız doğru adres burası. Kurulum için root erişimli bir Linux sunucu yeterli; henüz yoksa bir VDS kiralayıp rehbere hemen başlayabilirsiniz.
Bu rehberde strongSwan’ı güncel swanctl yöntemiyle kuruyoruz. Kendi CA’mızı ve sunucu sertifikamızı pki aracıyla üretiyor, swanctl.conf içinde IKEv2 bağlantısını, IP havuzunu ve EAP-MSCHAPv2 kullanıcılarını tanımlıyor, firewall ile NAT’ı ayarlıyor ve Windows, Android, iOS ile Linux istemcilerini bağlıyoruz. Son bölümde IKE SA, kimlik doğrulama, sertifika, proposal ve NAT hatalarını tek tek ele alıyoruz.
Örnek Topoloji ve Kullanılan Değerler
203.0.113.10- VDS public IPv4 adresi (VPN_SERVER_IP)
198.51.100.24- İstemcinin internet IP’si (CLIENT_PUBLIC_IP)
eth0- Sunucunun internete çıkan ağ arayüzü
laptop- Örnek istemci adı (CLIENT_NAME)
10.10.10.0/24- IKEv2 adres havuzu (vpn-pool)
500, 4500/udp- IKE ve NAT-T portları
/etc/swanctl- strongSwan yapılandırma klasörü
/root/ikev2-pki- CA anahtarının tutulduğu klasör
203.0.113.0/24 ve 198.51.100.0/24 blokları RFC 5737 ile belgeler için ayrılmış örnek adreslerdir; komutlarda bunları kendi sunucu ve istemci IP’nizle değiştirin. Örnek sunucu: Ubuntu Server 24.04 LTS, 2 vCPU, 2–4 GB RAM, 30 GB+ NVMe/SSD disk, public IPv4 ve root SSH erişimi. Debian 12/13’te farklılaşan noktaları ilgili adımlarda belirttik.
Terminal çıktıları hakkında: Çıktılar, Ubuntu 24.04’te bu komutların tipik görünümünü gösteren örneklerdir. Paket sürümü, tarih, PID, anahtar ve trafik değerleri sizin sunucunuzda farklı olur. Önemli olan, kontrol komutlarında anlatılan durumu görmenizdir. Her terminalin sağ üstündeki düğmeyle o adımın komutlarını kopyalayabilirsiniz.
strongSwan ve IKEv2 Nedir?
strongSwan, Linux için açık kaynak bir IPsec uygulamasıdır. IKEv2 protokolüyle anahtar değişimini yapar, trafiği ise Linux çekirdeğinin IPsec (XFRM) katmanı şifreler. IKEv2 bir IETF standardı olduğu için Windows, macOS, iOS ve Android’in yerleşik VPN istemcileri ek uygulama kurmadan bağlanabilir. Bu özellik kurumsal cihaz yönetiminde büyük kolaylıktır.
IKEv2 bağlantısı iki aşamada kurulur. Önce UDP 500 üzerinden bir IKE SA (yönetim kanalı) kurulur ve taraflar birbirini doğrular. Ardından veriyi taşıyan CHILD SA (ESP) oluşur. Arada NAT varsa trafik UDP 4500’e taşınır. MOBIKE desteği sayesinde telefon Wi-Fi’dan mobil veriye geçtiğinde tünel yeniden kurulmadan devam eder.
Hangi yapılandırma yöntemi? Eski ipsec.conf/ipsec komutu (stroke arayüzü) hâlâ çalışsa da strongSwan projesi yeni kurulumlarda swanctl ve swanctl.conf kullanılmasını öneriyor. Debian ve Ubuntu’da bunun karşılığı charon-systemd + strongswan-swanctl paketleridir. Biz de bu yöntemi kullanıyoruz. strongswan meta paketini kurmuyoruz, çünkü o eski strongswan-starter paketini de getirir.

strongSwan IKEv2 Kimler İçin Uygun?
- Kurumsal mobil cihazlar: Ek uygulama kurdurmadan iPhone, Mac ve Windows dizüstülere VPN tanımlamak için.
- Site-to-site bağlantılar: Firewall cihazları ve bulut ağ geçitleriyle standart IPsec tüneli kurmak için.
- MDM kullanan şirketler: VPN profilini cihaz yönetim sistemiyle dağıtmak için.
- Standart uyumu gereken projeler: IPsec/IKEv2 zorunluluğu olan tedarikçi veya müşteri bağlantıları için.
strongSwan Kurulum Öncesi Gereksinimler
| Gereksinim | Açıklama |
|---|---|
| İşletim sistemi | Ubuntu 22.04/24.04 (strongSwan 5.9), Debian 12 (5.9) / Debian 13 (6.0) |
| Yetki | root veya sudo |
| Public IPv4 | Gerekli; sunucu sertifikasında bu IP (veya alan adı) yer alacak |
| RAM | 512 MB–1 GB yeterli |
| CPU | Şifreleme çekirdekte yapılır; AES-NI destekli işlemcilerde AES-GCM çok verimlidir |
| Firewall | UDP 500 ve UDP 4500 açık olmalı |
| İstemci | Windows 10/11, macOS, iOS, Android 11+ yerleşik istemci veya strongSwan uygulaması |
VDS Neden IKEv2 VPN Sunucusu İçin Kullanılır?
Kendi bilgisayarınızda ya da ev internetinizde VPN sunucusu çalıştırmak mümkün olsa da sabit IP, açık port ve kesintisiz çalışma gerektirdiği için pratikte zorlanırsınız. VDS (sanal adanmış sunucu) bu ihtiyaçları tek pakette karşılar:
- Public IP: İstemciler her zaman aynı adrese bağlanır; dinamik IP veya CGNAT sorunu yaşanmaz.
- Root erişimi: Paket kurmak, çekirdek parametresi değiştirmek ve servis yönetmek için tam yetki gerekir.
- Sabit, 7/24 çalışan sunucu: Veri merkezindeki sunucu elektrik ve bağlantı kesintilerinden etkilenmez.
- Firewall ve port yönetimi: Hangi portun kime açık olacağını UFW veya nftables ile kendiniz belirlersiniz.
- Trafik ve kaynak kontrolü: CPU, RAM ve bant genişliğini başka müşterilerle paylaşmadan kullanırsınız.
- VPN yazılımı kurabilme: WireGuard çekirdek modülü ve
/dev/net/tunaygıtı için KVM gibi tam sanallaştırma gerekir; bazı konteyner tabanlı sanal sunucularda bu modüller yüklenemez. - Dağıtım seçimi: Ubuntu, Debian veya AlmaLinux gibi alıştığınız Linux dağıtımıyla başlarsınız.
- Kaynak yükseltme: Kullanıcı sayısı arttığında sunucuyu taşımadan daha güçlü bir pakete geçebilirsiniz.
IKEv2 sunucusu için sabit bir public IP şarttır, çünkü sunucu sertifikası bu adrese göre üretilir. Sabit IP’li ve root erişimli VDS paketleri ile bu rehberi kendi sunucunuzda uygulayabilirsiniz.
Sunucuyu Hazırlama: Bağlantı, Güncelleme ve Güvenlik Duvarı
strongSwan kurulumuna geçmeden önce sunucuyu hazırlıyoruz: güncel bir sistem, internete çıkan arayüzün adı, açılmış IP yönlendirmesi ve devrede bir güvenlik duvarı.
VDS sunucusuna SSH ile bağlanma
Kendi bilgisayarımızın terminalinden sunucuya root olarak bağlanıyoruz. Windows 10/11’de PowerShell’de de aynı ssh komutu çalışır. PuTTY kullanıyorsanız PuTTY ile SSH bağlantısı rehberine bakabilirsiniz.
kullanici@laptop:~$ ssh root@203.0.113.10
The authenticity of host '203.0.113.10 (203.0.113.10)' can't be established.
ED25519 key fingerprint is SHA256:Xk3v9Qm0bT8eLw2pZr7sYc4uNfH1aJdG6oV5iKqE0tM.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '203.0.113.10' (ED25519) to the list of known hosts.
[email protected]'s password:
Welcome to Ubuntu 24.04 LTS (GNU/Linux x86_64)
* Documentation: https://help.ubuntu.com
* Support: https://ubuntu.com/pro
IPv4 address for eth0: 203.0.113.10
root@vds:~#
Ne yaptık? İlk bağlantıda sunucunun kimlik parmak izini onayladık ve parolayla giriş yaptık. Parmak izi ~/.ssh/known_hosts dosyasına kaydedildi; sunucu kimliği değişirse SSH sizi uyaracak.
Beklenen sonuç: İstem satırının root@vds:~# olarak değişmesi. Kalıcı kullanımda parola yerine SSH anahtarı kullanmanızı güvenlik bölümünde anlatıyoruz.
Paket listesini ve sistemi güncelleme
Kuruluma eski paketlerle başlamamak için paket listesini yeniliyor, bekleyen güncellemeleri uyguluyoruz.
root@vds:~# apt update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:3 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
6 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@vds:~# apt upgrade -y
Reading package lists... Done
Calculating upgrade... Done
6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@vds:~# [ -f /var/run/reboot-required ] && echo "Yeniden başlatma gerekli" || echo "Gerek yok"
Gerek yok
root@vds:~#
Ne yaptık? apt update depo listelerini yeniledi, apt upgrade kurulu paketleri güncelledi. Üçüncü komut, çekirdek güncellemesi sonrası yeniden başlatma gerekip gerekmediğini kontrol ediyor.
Beklenen sonuç: Hatasız biten bir güncelleme. “Yeniden başlatma gerekli” çıkarsa reboot ile sunucuyu yeniden başlatıp tekrar bağlanın.
İnternete çıkan ağ arayüzünü bulma
Firewall ve NAT kurallarında sunucunun internete çıktığı arayüzün adını kullanacağız. Bu ad sağlayıcıya göre eth0, ens3 veya ens18 olabilir.
root@vds:~# ip -4 route show default
default via 203.0.113.1 dev eth0 proto static
root@vds:~# ip -br -4 addr
lo UNKNOWN 127.0.0.1/8
eth0 UP 203.0.113.10/24
root@vds:~#
Ne yaptık? Varsayılan rotanın hangi arayüzden geçtiğine baktık: dev eth0. İkinci komut aynı arayüzde public IP adresimizin tanımlı olduğunu gösteriyor.
Beklenen sonuç: Sizde farklı bir ad çıkarsa (ör. ens3), yazıdaki tüm eth0 ifadelerini o adla değiştirin.
IP yönlendirmesini (IP forwarding) açma
Linux varsayılan olarak bir arayüzden gelen paketi başka bir arayüze aktarmaz; yalnızca kendisine gelen trafiği işler. VPN istemcisinin internete çıkabilmesi için sunucunun, tünelden gelen paketleri eth0 üzerinden dışarı yönlendirmesi gerekir. Buna IP forwarding denir.
Ayarı /etc/sysctl.d/ altında ayrı bir dosyaya yazıyoruz. Bu yöntem Ubuntu’da ve /etc/sysctl.conf dosyasının artık gelmediği Debian 13’te aynı şekilde çalışır.
root@vds:~# cat > /etc/sysctl.d/99-vpn-forward.conf <<'EOF'
> net.ipv4.ip_forward = 1
> EOF
root@vds:~# sysctl --system | grep -A1 99-vpn
* Applying /etc/sysctl.d/99-vpn-forward.conf ...
net.ipv4.ip_forward = 1
root@vds:~# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
root@vds:~#
Ne yaptık? Çekirdeğin paket yönlendirme özelliğini kalıcı olarak açtık; ayar yeniden başlatmalardan sonra da geçerli.
Beklenen sonuç: net.ipv4.ip_forward = 1.
UFW güvenlik duvarını hazırlama
Ubuntu’da UFW kurulu gelir ama kapalıdır. Debian’da önce apt install ufw ile kurun. Etkinleştirmeden önce SSH portuna izin veriyoruz; aksi halde açık oturumumuz kopabilir.
Çıktıdaki deny (routed) satırına dikkat edin: UFW, sunucu üzerinden geçen (yönlendirilen) trafiği varsayılan olarak engeller. Kurulum adımlarında yalnızca VPN ağımıza özel bir ufw route allow kuralı ekleyeceğiz.
root@vds:~# ufw allow 22/tcp
Rules updated
Rules updated (v6)
root@vds:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
root@vds:~# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
root@vds:~#
Ne yaptık? SSH’ye izin verip UFW’yi açtık. Artık yalnızca izin verdiğimiz portlar dışarıdan erişilebilir.
Beklenen sonuç: Status: active ve 22/tcp için ALLOW IN. SSH’yi farklı bir portta çalıştırıyorsanız ilk komutta o portu yazın.
NAT neden gerekli? VPN istemcilerinin adresleri özel adreslerdir ve internette yönlendirilemez. Sunucu, istemciden gelen paketin kaynak adresini kendi public IP’siyle değiştirir (MASQUERADE) ve dönen cevabı tekrar istemciye iletir. UFW kullanan sistemlerde bu kuralı kalıcı tutmanın en temiz yolu, /etc/ufw/before.rules dosyasının en başına bir *nat bloğu eklemektir. Bunu kurulum adımlarında yapacağız.
strongSwan IKEv2 Kurulumu: Terminalde Adım Adım
Sertifika tabanlı sunucu kimliği ve kullanıcı adı/parola (EAP-MSCHAPv2) ile istemci doğrulaması kullanan, tüm büyük işletim sistemlerinin yerleşik istemcileriyle uyumlu bir IKEv2 sunucusu kuruyoruz. İstemcilere tek tek sertifika dağıtmak isterseniz remote bölümünde auth = pubkey kullanıp her cihaza CA ile imzalanmış bir istemci sertifikası verebilirsiniz.
strongSwan paketlerini kurma
Kuracağımız paketler: IKE servisi charon-systemd, yönetim aracı strongswan-swanctl ve sertifika aracı strongswan-pki. Bunlara EAP eklentileri eklenir: libcharon-extauth-plugins paketi Windows ve Apple istemcilerinin kullandığı EAP-MSCHAPv2’yi, libcharon-extra-plugins paketi ise EAP-Identity’yi içerir.
root@vds:~# apt install charon-systemd strongswan-swanctl strongswan-pki libcharon-extauth-plugins libcharon-extra-plugins -y
Reading package lists... Done
Setting up strongswan-swanctl (5.9.13-2ubuntu4.24.04.5) ...
Setting up charon-systemd (5.9.13-2ubuntu4.24.04.5) ...
Setting up strongswan-pki (5.9.13-2ubuntu4.24.04.5) ...
root@vds:~# swanctl --version
strongSwan swanctl 5.9.13
root@vds:~# systemctl is-active strongswan
active
root@vds:~#
Ne yaptık? IKE servisini, yönetim ve sertifika araçlarını kurduk. charon-systemd paketi strongswan.service adıyla çalışır ve açılışta /etc/swanctl/ altındaki yapılandırmayı yükler.
Beklenen sonuç: swanctl --version ve active. Debian 13’te sürüm 6.0 görünür; bu rehberdeki komutlar aynı kalır.
Sertifika otoritesini (CA) oluşturma
IKEv2’de sunucu kendini sertifikayla kanıtlar, istemciler de bu sertifikayı imzalayan CA’ya güvenir. CA anahtarını /etc/swanctl dışında, root’un ev dizininde tutuyoruz. strongSwan’ın yüklediği klasörlere yalnızca CA sertifikası gidecek.
Windows ve Apple istemcileriyle en geniş uyum için RSA kullanıyoruz. 4096 bitlik anahtarın üretimi birkaç saniye sürebilir.
root@vds:~# mkdir -p /root/ikev2-pki && cd /root/ikev2-pki && umask 077
root@vds:~/ikev2-pki# pki --gen --type rsa --size 4096 --outform pem > ca.key.pem
root@vds:~/ikev2-pki# pki --self --ca --lifetime 3650 --in ca.key.pem --type rsa --dn "CN=VDS IKEv2 Root CA" --outform pem > ca.cert.pem
root@vds:~/ikev2-pki# pki --print --in ca.cert.pem
subject: "CN=VDS IKEv2 Root CA"
issuer: "CN=VDS IKEv2 Root CA"
validity: not before Oct 05 20:52:08 2026, ok
not after Oct 02 20:52:08 2036, ok (expires in 3649 days)
flags: CA CRLSign self-signed
pubkey: RSA 4096 bits
root@vds:~/ikev2-pki#
Ne yaptık? Kendi kendini imzalayan, 10 yıl geçerli bir kök CA oluşturduk. Çıktıdaki seri numarası ve anahtar kimliği satırlarını kısalttık.
Beklenen sonuç: flags satırında CA ve self-signed.
Sunucu sertifikasını oluşturma
Sunucu sertifikasında iki şey kritik. Birincisi --san ile eklenen alternatif ad: istemcinin bağlanırken yazdığı adres (IP veya alan adı) burada birebir bulunmalı. İkincisi serverAuth ve ikeIntermediate bayrakları: Windows ve macOS, sunucu sertifikasında bu kullanım amaçlarını arar.
Alan adıyla bağlanacaksanız (ör. vpn.example.com) DN ve SAN’a alan adını yazın, yapılandırmadaki id değerini de aynı yapın.
root@vds:~/ikev2-pki# pki --gen --type rsa --size 3072 --outform pem > server.key.pem
root@vds:~/ikev2-pki# pki --pub --in server.key.pem --type rsa \
> | pki --issue --lifetime 1825 --cacert ca.cert.pem --cakey ca.key.pem \
> --dn "CN=203.0.113.10" --san 203.0.113.10 \
> --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem
root@vds:~/ikev2-pki# pki --print --in server.cert.pem
subject: "CN=203.0.113.10"
issuer: "CN=VDS IKEv2 Root CA"
validity: not before Oct 05 20:53:31 2026, ok
not after Oct 04 20:53:31 2031, ok (expires in 1825 days)
altNames: 203.0.113.10
flags: serverAuth ikeIntermediate
pubkey: RSA 3072 bits
root@vds:~/ikev2-pki#
Ne yaptık? Sunucu anahtarını ürettik, public key’ini CA ile imzalayarak 5 yıl geçerli bir sunucu sertifikası oluşturduk.
Beklenen sonuç: altNames satırında sunucu IP’si, flags satırında iki kullanım amacı.
Anahtar ve sertifikaları yerleştirme
strongSwan, /etc/swanctl/ altındaki klasörleri türüne göre okur: x509ca CA sertifikaları, x509 kendi sertifikalarımız, private private key’ler. CA anahtarı (ca.key.pem) bu klasörlere kopyalanmaz.
root@vds:~/ikev2-pki# cp ca.cert.pem /etc/swanctl/x509ca/
root@vds:~/ikev2-pki# cp server.cert.pem /etc/swanctl/x509/
root@vds:~/ikev2-pki# install -m 600 server.key.pem /etc/swanctl/private/
root@vds:~/ikev2-pki# ls /etc/swanctl/x509ca /etc/swanctl/x509 /etc/swanctl/private
/etc/swanctl/private:
server.key.pem
/etc/swanctl/x509:
server.cert.pem
/etc/swanctl/x509ca:
ca.cert.pem
root@vds:~/ikev2-pki#
Ne yaptık? Sunucunun kullanacağı üç dosyayı doğru klasörlere koyduk; private key yalnızca root tarafından okunabilir.
Beklenen sonuç: Her klasörde tek bir dosya. ca.cert.pem dosyasını istemcilere dağıtmak için ayrıca saklayın.
swanctl yapılandırmasını yazma
Yapılandırmayı /etc/swanctl/conf.d/ altına yazıyoruz; ana swanctl.conf dosyası bu klasörü otomatik olarak içerir. Dosyanın üç bölümü var:
connections: IKEv2 bağlantısı.localsunucunun sertifikayla kendini doğrulamasını,remoteistemcinin EAP-MSCHAPv2 ile kullanıcı adı/parola girmesini tanımlar.childreniçindekilocal_ts = 0.0.0.0/0, tüm IPv4 trafiğinin tünele alınabileceği anlamına gelir.pools: İstemcilere dağıtılacak 10.10.10.0/24 adres havuzu ve DNS sunucuları.secrets: EAP kullanıcıları. Her kullanıcı için ayrı bireap-…bloğu ekleyin.
proposals satırındaki ilk öneri modern istemciler (ve aşağıda ayarlayacağımız Windows) içindir; aes256-sha256-modp2048 daha eski istemciler için bir yedektir.
root@vds:~# cat > /etc/swanctl/conf.d/ikev2-vpn.conf <<'EOF'
> connections {
> ikev2-vpn {
> version = 2
> proposals = aes256gcm16-prfsha384-ecp384, aes256-sha256-modp2048, default
> send_cert = always
> unique = never
> dpd_delay = 30s
> pools = vpn-pool
> local {
> auth = pubkey
> certs = server.cert.pem
> id = 203.0.113.10
> }
> remote {
> auth = eap-mschapv2
> eap_id = %any
> }
> children {
> ikev2-vpn {
> local_ts = 0.0.0.0/0
> esp_proposals = aes256gcm16-ecp384, aes256gcm16, aes256-sha256, default
> dpd_action = clear
> }
> }
> }
> }
>
> pools {
> vpn-pool {
> addrs = 10.10.10.0/24
> dns = 1.1.1.1, 9.9.9.9
> }
> }
>
> secrets {
> eap-laptop {
> id = laptop
> secret = "Buraya-Guclu-Bir-Parola"
> }
> }
> EOF
root@vds:~# chmod 600 /etc/swanctl/conf.d/ikev2-vpn.conf
root@vds:~#
Ne yaptık? Sunucu kimliğini, kullanıcı doğrulama yöntemini, adres havuzunu ve ilk kullanıcıyı tek dosyada tanımladık. Dosya parola içerdiği için iznini 600 yaptık.
Beklenen sonuç: Dosyanın hatasız oluşması. Örnekteki parolayı mutlaka kendi güçlü parolanızla değiştirin.
IPsec için firewall, yönlendirme ve NAT
IKE için UDP 500’ü, NAT arkasındaki istemciler için UDP 4500’ü açıyoruz. IPsec trafiği ayrı bir sanal arayüz kullanmaz: şifresi çözülen paketler eth0‘dan girer ve yine eth0‘dan çıkar. Bu yüzden yönlendirme kuralını kaynak ağa göre yazıyoruz. /etc/ufw/before.rules dosyasının en başına eklenecek blok (dosyada zaten bir *nat bloğu varsa yalnızca -A satırını ekleyin):
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
COMMIT
root@vds:~# ufw allow 500,4500/udp
Rules updated
Rules updated (v6)
root@vds:~# ufw route allow in on eth0 out on eth0 from 10.10.10.0/24
Rules updated
root@vds:~# nano /etc/ufw/before.rules
# *nat bloğuna 10.10.10.0/24 satırı eklendi
root@vds:~# ufw reload
Firewall reloaded
root@vds:~# iptables -t nat -S POSTROUTING | grep 10.10
-A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
root@vds:~#
Ne yaptık? IKE portlarını açtık, havuzdaki istemcilerin internete yönlendirilmesine izin verdik ve NAT kuralını ekledik.
Beklenen sonuç: MASQUERADE satırı. Yönlendirme için hazırlık bölümünde açtığımız net.ipv4.ip_forward = 1 ayarı burada da gereklidir.
Servisi yeniden yükleme ve yapılandırmayı yükleme
swanctl --load-all sertifikaları, anahtarları, sırları, havuzları ve bağlantıları çalışan charon servisine aktarır. Servis her açılışta bu komutu kendisi çalıştırır. Yapılandırmayı değiştirdiğinizde servisi yeniden başlatmadan aynı komutla güncelleyebilirsiniz.
root@vds:~# systemctl enable strongswan && systemctl restart strongswan
root@vds:~# swanctl --load-all
loaded certificate from '/etc/swanctl/x509/server.cert.pem'
loaded certificate from '/etc/swanctl/x509ca/ca.cert.pem'
loaded RSA key from '/etc/swanctl/private/server.key.pem'
loaded eap secret 'eap-laptop'
no authorities found, 0 unloaded
loaded pool 'vpn-pool'
successfully loaded 1 pools, 0 unloaded
loaded connection 'ikev2-vpn'
successfully loaded 1 connections, 0 unloaded
root@vds:~#
Ne yaptık? strongSwan sertifikamızı, private key’imizi, EAP kullanıcısını, adres havuzunu ve IKEv2 bağlantısını yükledi.
Beklenen sonuç: Son satırda successfully loaded 1 connections. Bir dosyada hata varsa ilgili satırda loading … failed yazar ve nedenini gösterir.
Bağlantı tanımını ve adres havuzunu kontrol etme
İstemci bağlanmadan önce sunucu tarafının hazır olduğunu doğruluyoruz.
root@vds:~# swanctl --list-conns
ikev2-vpn: IKEv2, no reauthentication, rekeying every 14400s, dpd delay 30s
local: %any
remote: %any
local public key authentication:
id: 203.0.113.10
certs: CN=203.0.113.10
remote EAP_MS_CHAPv2 authentication:
eap_id: %any
ikev2-vpn: TUNNEL, rekeying every 3600s
local: 0.0.0.0/0
remote: dynamic
root@vds:~# swanctl --list-pools
vpn-pool 10.10.10.0 0 / 0 / 254
root@vds:~# ss -ulpn | grep -E ":(500|4500) "
UNCONN 0 0 0.0.0.0:500 0.0.0.0:* users:(("charon-systemd",pid=4127,fd=13))
UNCONN 0 0 0.0.0.0:4500 0.0.0.0:* users:(("charon-systemd",pid=4127,fd=14))
root@vds:~#
Ne yaptık? Bağlantının sertifikayla kendini, EAP ile istemciyi doğrulayacağını; havuzda 254 boş adres olduğunu ve charon’un UDP 500/4500’ü dinlediğini gördük.
Beklenen sonuç: 0 / 0 / 254 (kullanılan / çevrimiçi / toplam). İstemci bağlandığında ortadaki sayı 1 olur.
IKEv2 İstemci Bağlantısı: Windows, Android, iOS ve Linux
IKEv2’nin büyük avantajı, istemci tarafında çoğu zaman ek uygulama gerektirmemesidir. Her platformda ortak ilk adım aynı: /root/ikev2-pki/ca.cert.pem dosyasını cihaza aktarıp güvenilen kök sertifika olarak yüklemek.
- Windows 10/11: CA sertifikasını Yerel Bilgisayar → Güvenilen Kök Sertifika Yetkilileri deposuna yükleyin (aşağıdaki PowerShell komutları). Windows’un varsayılan IKEv2 önerileri eski DH gruplarını kullandığı için şifreleme ayarını
Set-VpnConnectionIPsecConfigurationile sunucudaki ilk öneriye eşitliyoruz. - Android: Play Store’daki resmi strongSwan VPN Client uygulamasında tür olarak “IKEv2 EAP (Username/Password)” seçin; sunucu 203.0.113.10, CA sertifikası olarak
ca.cert.pem. Android 11 ve sonrasında ayarlardaki yerleşik “IKEv2/IPSec MSCHAPv2” türü de kullanılabilir. - iOS / iPadOS / macOS:
ca.cert.pemdosyasını cihaza gönderip profil olarak yükleyin; iOS’ta ayrıca Genel → Hakkında → Sertifika Güven Ayarları bölümünden tam güveni açın. VPN ekleme ekranında Tür: IKEv2, Sunucu: 203.0.113.10, Uzak Kimlik: 203.0.113.10, Kullanıcı Kimlik Doğrulama: Kullanıcı Adı. - Linux: NetworkManager için
network-manager-strongswaneklentisini kurup “IPsec/IKEv2 (strongswan)” bağlantısı ekleyin: EAP kimlik doğrulama, sertifika olarakca.cert.pem. Komut satırındacharon-cmdpaketiylesudo charon-cmd --cert ca.cert.pem --host 203.0.113.10 --identity laptopçalıştırmak da mümkündür.
Windows’ta yönetici olarak açılmış PowerShell’de CA’yı içe aktarıyor, bağlantıyı oluşturuyor, şifreleme ayarını eşitliyor ve rasdial ile bağlanıyoruz:
PS C:\Users\kullanici> Import-Certificate -FilePath .\ca.cert.pem -CertStoreLocation Cert:\LocalMachine\Root
PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\Root
Thumbprint Subject
---------- -------
6C1F0E9B2A47D3C58E1B7F42A9D06E3B5C8F1A27 CN=VDS IKEv2 Root CA
PS C:\Users\kullanici> Add-VpnConnection -Name "VDS IKEv2" -ServerAddress 203.0.113.10 -TunnelType Ikev2 -AuthenticationMethod Eap -EncryptionLevel Required -RememberCredential
PS C:\Users\kullanici> Set-VpnConnectionIPsecConfiguration -ConnectionName "VDS IKEv2" -AuthenticationTransformConstants GCMAES256 -CipherTransformConstants GCMAES256 -EncryptionMethod GCMAES256 -IntegrityCheckMethod SHA384 -DHGroup ECP384 -PfsGroup ECP384 -Force
PS C:\Users\kullanici> rasdial "VDS IKEv2" laptop *
Enter the password for laptop to connect to VDS IKEv2:
Connecting to VDS IKEv2...
Verifying username and password...
Registering your computer on the network...
Successfully connected to VDS IKEv2.
Command completed successfully.
PS C:\Users\kullanici> curl.exe -4 ifconfig.me
203.0.113.10
PS C:\Users\kullanici>
Sunucu tarafında aktif tüneli swanctl --list-sas ile görüyoruz. ESTABLISHED IKE SA’nın, INSTALLED ise veri taşıyan CHILD SA’nın kurulduğunu gösterir. İstemciye havuzdan 10.10.10.1 adresi atanmış, in/out sayaçları da trafiğin iki yönde aktığını kanıtlıyor:
root@vds:~# swanctl --list-sas
ikev2-vpn: #1, ESTABLISHED, IKEv2, 7c3e19a4b2d0f581_i 2b8f6d0ce4a17359_r*
local '203.0.113.10' @ 203.0.113.10[4500]
remote '198.51.100.24' @ 198.51.100.24[4500] EAP: 'laptop' [10.10.10.1]
AES_GCM_16-256/PRF_HMAC_SHA2_384/ECP_384
established 42s ago, rekeying in 13858s
ikev2-vpn: #1, reqid 1, INSTALLED, TUNNEL-in-UDP, ESP:AES_GCM_16-256/ECP_384
installed 42s ago, rekeying in 3297s, expires in 3918s
in c1a2b3d4, 18234 bytes, 187 packets, 2s ago
out 0e5f6a7b, 95412 bytes, 164 packets, 2s ago
local 0.0.0.0/0
remote 10.10.10.1/32
root@vds:~#
Yeni kullanıcı eklemek için secrets bölümüne yeni bir eap-… bloğu ekleyip swanctl --load-creds çalıştırmanız yeterli. Kullanıcıyı silip aynı komutu çalıştırdığınızda yeni girişleri engellenir; açık oturumu hemen kapatmak için swanctl --terminate --ike-id <numara> kullanın.
strongSwan Sorun Giderme
Kurulum sonrası sorun yaşarsanız önce journalctl -u strongswan -f ile logu açık tutup istemciden bağlanmayı deneyin; ardından aşağıdaki kartlarda belirtiye en yakın olanı bulun.
IKE SA kurulmadı
Belirti: İstemci zaman aşımına uğruyor; sunucu logunda hiç kayıt yok.
Kontrol:
journalctl -u strongswan -f
tcpdump -ni eth0 udp port 500 or udp port 4500
Olası neden: UDP 500/4500 kapalı, sağlayıcı firewall’u engelliyor ya da istemci yanlış adrese bağlanıyor.
Çözüm: ufw allow 500,4500/udp ile portları açın; tcpdump çıktısında istemcinin paketlerini görmüyorsanız sorun ağ tarafındadır.
Tekrar test:
tcpdump -ni eth0 udp port 500 -c 4
Authentication failed (EAP)
Belirti: Logda EAP method EAP_MSCHAPV2 failed; istemcide kullanıcı adı/parola hatası.
Kontrol:
swanctl --list-sas
journalctl -u strongswan -n 50 --no-pager | grep -i eap
Olası neden: Kullanıcı adı secrets bölümündeki id ile eşleşmiyor, parola yanlış ya da yapılandırma yüklenmemiş.
Çözüm: Kullanıcı adı ve parolayı düzeltip swanctl --load-creds çalıştırın. EAP-MSCHAPv2 eklentisinin kurulu olduğunu dpkg -l libcharon-extauth-plugins ile doğrulayın.
Tekrar test:
swanctl --load-creds
Sertifika problemi (Windows hata 13801)
Belirti: “IKE authentication credentials are unacceptable” veya iOS’ta “Sunucu doğrulanamadı”.
Kontrol:
pki --print --in /etc/swanctl/x509/server.cert.pem
Olası neden: İstemci CA’ya güvenmiyor, sertifikanın SAN’ında bağlanılan adres yok ya da serverAuth/ikeIntermediate bayrakları eksik.
Çözüm: CA’yı Yerel Bilgisayar deposuna (kullanıcı deposuna değil) yükleyin; istemcide yazdığınız adresin altNames satırında olduğundan emin olun, gerekirse sunucu sertifikasını 3. adımdaki gibi yeniden üretin.
Tekrar test:
swanctl --load-all
Proposal mismatch (Windows hata 13868)
Belirti: Logda NO_PROPOSAL_CHOSEN; Windows’ta “Policy match error”.
Kontrol:
journalctl -u strongswan -n 50 --no-pager | grep -i proposal
Olası neden: İstemcinin önerdiği şifreleme/DH grubu ile sunucunun kabul ettikleri örtüşmüyor. Windows varsayılanları DH grup 2 (modp1024) içerir; strongSwan bunu varsayılan olarak kabul etmez.
Çözüm: Windows’ta Set-VpnConnectionIPsecConfiguration komutunu uygulayın. Logdaki received proposals satırını sunucudaki proposals/esp_proposals ile karşılaştırın.
Tekrar test:
swanctl --load-conns
Traffic selector hatası
Belirti: IKE SA kuruluyor ama CHILD SA kurulmuyor; logda TS_UNACCEPTABLE.
Kontrol:
swanctl --list-conns
Olası neden: İstemci, sunucunun local_ts değeriyle örtüşmeyen bir trafik seçicisi istiyor ya da havuzdan adres alamıyor.
Çözüm: Tam tünel için local_ts = 0.0.0.0/0 bırakın; pools tanımının bağlantıya eklendiğini (pools = vpn-pool) kontrol edin.
Tekrar test:
swanctl --list-pools
Firewall problemi
Belirti: Bağlantı kuruluyor, birkaç saniye sonra kopuyor ya da hiç veri geçmiyor.
Kontrol:
ufw status verbose
journalctl -k -n 20 --no-pager | grep -i ufw
Olası neden: UDP 4500 açılmamış (NAT arkasındaki istemciler 4500’e geçer) ya da yönlendirilen trafik UFW’ye takılıyor.
Çözüm: Hem 500 hem 4500’ü açın; ufw route allow in on eth0 out on eth0 from 10.10.10.0/24 kuralını ekleyin.
Tekrar test:
ufw status | grep -E "500|4500|10.10.10"
NAT problemi
Belirti: swanctl --list-sas çıktısında in sayacı artıyor, out artmıyor; internet yok.
Kontrol:
iptables -t nat -S POSTROUTING | grep 10.10
sysctl net.ipv4.ip_forward
Olası neden: MASQUERADE kuralı eksik veya IP forwarding kapalı.
Çözüm: *nat bloğuna 10.10.10.0/24 satırını ekleyip ufw reload çalıştırın; forwarding’i açın.
Tekrar test:
curl -4 ifconfig.me # istemcide
Routing / MTU problemi
Belirti: Bazı siteler açılıyor, bazıları yarım kalıyor; büyük dosyalar takılıyor.
Kontrol:
ping -M do -s 1372 -c 2 1.1.1.1 # istemcide
Olası neden: IPsec başlıkları paket boyutunu büyütür; yolda parçalanan paketler düşebilir.
Çözüm: /etc/ufw/before.rules içine bir *mangle bloğu ekleyip 10.10.10.0/24 için TCP MSS değerini 1360’a sabitleyin (-A FORWARD -s 10.10.10.0/24 -o eth0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1360).
Tekrar test:
ufw reload
strongSwan IKEv2 ve Diğer VPN Teknolojileri
Bu seride dört VPN teknolojisini ayrı ayrı kuruyoruz. Her birinin güçlü olduğu alan farklı; tek bir “en iyi VPN” yok. Doğru seçim kullanım senaryonuza bağlı:
| Özellik | WireGuard | OpenVPN | SoftEther | strongSwan IKEv2 |
|---|---|---|---|---|
| Kurulum kolaylığı | Çok kolay | Orta (PKI gerekir) | Orta (derleme + vpncmd) | Orta (sertifika + swanctl) |
| Performans | Çok yüksek, çekirdek içi | İyi; kullanıcı alanında, CPU’ya duyarlı | İyi; SecureNAT’ta CPU yükü artar | Yüksek; çekirdek IPsec, AES-NI ile verimli |
| Yapılandırma | Birkaç satırlık INI dosyası | Çok seçenekli metin dosyası | vpncmd veya grafik arayüz | Yapılandırılmış swanctl.conf |
| Sertifika yönetimi | Yok (anahtar çifti) | Tam PKI, CRL ile iptal | İsteğe bağlı (parola, sertifika, RADIUS) | Tam PKI; EAP ile parola da olur |
| Mobil kullanım | Resmi uygulamalar, ağ geçişinde kesintisiz | OpenVPN Connect uygulaması | Yerleşik L2TP/IPsec ya da istemci uygulaması | Yerleşik istemci, MOBIKE desteği |
| Kurumsal kullanım | Küçük/orta ekipler | Yaygın, olgun | Çok protokollü ortamlar | Standart uyumu, MDM, site-to-site |
| Esneklik | Bilinçli olarak sade | Çok yüksek (push, TCP/UDP, eklentiler) | Çok yüksek (L2 köprü, çoklu protokol) | Yüksek (IKEv2 standardı, çok sayıda eklenti) |
| Yönetim kolaylığı | Peer ekle/sil | Sertifika yaşam döngüsü takibi gerekir | Grafik yönetici ile kolay | Kullanıcı ve sertifika yönetimi gerekir |
| Kullanım senaryosu | Yönetici erişimi, kişisel VPN, sunucular arası ağ | Kısıtlı ağlar, karma cihazlar, kurumsal uzaktan erişim | Farklı istemcileri tek sunucuda toplamak | Ek uygulama kurdurmadan kurumsal cihaz VPN’i |

- Hızlı, sade ve modern bir tünel istiyorsanız WireGuard: kurulum rehberi.
- Sertifika tabanlı, merkezi olarak iptal edilebilir erişim ya da TCP 443 üzerinden bağlantı gerekiyorsa OpenVPN: kurulum rehberi.
- Aynı sunucuda farklı protokolleri ve grafik yönetimi bir arada istiyorsanız SoftEther: kurulum rehberi.
- Cihazlara uygulama kurdurmadan yerleşik istemcilerle bağlanmak istiyorsanız strongSwan IKEv2: bu yazı.
Ryzen VDS IKEv2 İçin Neden Tercih Edilebilir?
strongSwan anahtar değişimini charon sürecinde, veri şifrelemesini ise çekirdeğin IPsec katmanında yapar. AES-NI destekli modern işlemcilerde AES-GCM şifreleme çok verimli çalışır. Ancak çok sayıda tünel ve yüksek trafik olduğunda işlemci yine belirleyicidir: yüksek frekanslı bir Ryzen işlemci, el sıkışmaları ve paket şifrelemeyi daha düşük gecikmeyle tamamlar.
Bununla birlikte VPN performansı yalnızca işlemciye bağlı değildir. Sunucunun ağ kapasitesi ve port hızı, şifreleme yükü, eşzamanlı istemci sayısı, MTU ayarı, yönlendirme ve firewall kurallarının yükü, hatta istemcinin kendi internet bağlantısı sonucu birlikte belirler. Yanlış MTU ayarlı bir tünel, en güçlü işlemcide bile yavaş hissettirir.
Küçük bir ekip ya da kişisel kullanım için standart bir Linux VDS fazlasıyla yeterlidir. Çok sayıda kullanıcı, yüksek bant genişliği ya da VPN’in yanında web sunucusu ve izleme gibi başka servisler çalıştıracaksanız Ryzen 9 işlemcili, NVMe diskli ve 1 Gbit hatlı Ryzen VDS paketleri daha geniş bir performans payı bırakır.
IKEv2 VPN Sunucusunu Güvenli Hale Getirme
| Servis | Port / protokol | Not |
|---|---|---|
| SSH | TCP 22 | Mümkünse yalnızca sabit IP’lerinize açın |
| strongSwan IKEv2 | UDP 500, UDP 4500 | İkisi birlikte açık olmalı |
- SSH anahtarı kullanın: Kendi bilgisayarınızda
ssh-keygen -t ed25519ile anahtar üretipssh-copy-id [email protected]ile sunucuya ekleyin. Anahtarla giriş yapabildiğinizi doğruladıktan sonra/etc/ssh/sshd_config.d/10-sertlestirme.confdosyasınaPasswordAuthentication noyazıpsystemctl reload sshçalıştırın. - Root giriş politikası: Günlük yönetim için sudo yetkili ayrı bir kullanıcı açın ve
PermitRootLogin no(ya da en azındanprohibit-password) kullanın. - Yalnızca gerekli portlar: Yukarıdaki tablo dışındaki portları kapalı tutun; kullanmadığınız servisleri durdurun.
- Düzenli güncelleme: Ubuntu’da kurulu gelen
unattended-upgradesgüvenlik güncellemelerini otomatik uygular;dpkg-reconfigure -plow unattended-upgradesile açık olduğundan emin olun. - CA anahtarını sunucudan ayırın:
/root/ikev2-pki/ca.key.pemstrongSwan’ın yüklediği klasörlerde değildir; mümkünse bu dosyayı çevrimdışı bir ortama taşıyın./etc/swanctl/private/ve/etc/swanctl/conf.d/dosyaları yalnızca root tarafından okunabilir olmalı. - Güçlü EAP parolaları: Her kullanıcıya en az 16 karakterli, tekrar kullanılmayan bir parola verin; daha yüksek güvenlik için istemci sertifikası (
auth = pubkey) kullanmayı düşünün. - Log takibi:
journalctl -u strongswanile IKE kayıtlarını,swanctl --list-sasile aktif tünelleri izleyin. Parolalı SSH açıksa fail2ban’ı SSH için kullanın. - Yedekleme:
/etc/swanctlve/root/ikev2-pkiklasörlerini şifreli olarak sunucu dışında yedekleyin. Önem Bilişim’de sepette seçilebilen ücretli Sunucu Yedekleme hizmeti, sunucunun günlük otomatik yedeğini alır. - VPN kullanıcılarının yönetimi: Her cihaza ayrı anahtar, sertifika veya kullanıcı verin. Kimin hangi erişime sahip olduğunu bir listede tutun; ayrılan kişilerin erişimini aynı gün kaldırın.
- Sistem izleme: CPU, RAM, bant genişliği ve servis durumunu izleyin.
vnstattrafik geçmişi için, harici bir çalışma süresi kontrolü de sunucunun erişilebilirliği için iyi bir başlangıçtır.
Sonuç
strongSwan, IPsec/IKEv2 standardı sayesinde yerleşik istemcilerle ve kurumsal ağ cihazlarıyla doğal uyum sağlıyor. swanctl ile tek dosyada toplanan yapılandırma, sertifika tabanlı sunucu kimliği ve EAP ile kullanıcı doğrulaması, kurumsal cihaz filoları için düzenli ve yönetilebilir bir VPN sunar.
Rehberi uygulamak için VDS kiralayarak sabit IP’li bir Linux sunucuyla başlayabilirsiniz. Çok sayıda tünel ve yüksek trafik için Ryzen VDS kiralayarak daha güçlü bir işlemciyle ilerleyebilirsiniz.
İlginizi çekebilir: WireGuard VPN kurulumu ve istemci yapılandırması
Sıkça Sorulan Sorular
strongSwan ne işe yarar?
strongSwan, Linux’ta IPsec/IKEv2 VPN sunucusu ve istemcisi çalıştırmaya yarar. En büyük avantajı Windows, macOS, iOS ve Android’in yerleşik VPN istemcileriyle ek uygulama gerektirmeden bağlanabilmesidir.
IKEv2 hangi portları kullanır?
IKE için UDP 500, NAT arkasındaki istemciler için UDP 4500 kullanılır. İkisinin de firewall’da açık olması gerekir.
swanctl mi ipsec.conf mu?
Yeni kurulumlarda strongSwan projesi swanctl ve swanctl.conf kullanılmasını önerir. Eski ipsec.conf yöntemi hâlâ çalışsa da artık eski (legacy) kabul edilir.
Windows’ta 13801 hatası neden olur?
“IKE authentication credentials are unacceptable” hatası genellikle CA’nın Yerel Bilgisayar deposuna yüklenmemesinden ya da sunucu sertifikasının SAN alanında bağlanılan adresin bulunmamasından kaynaklanır.
iPhone’a uygulama kurmadan IKEv2 VPN bağlanabilir mi?
Evet. CA sertifikasını profil olarak yükleyip güven ayarını açtıktan sonra Ayarlar → VPN bölümünden IKEv2 türünde bağlantı ekleyebilirsiniz.
IKEv2 sunucusu için kaç GB RAM gerekir?
strongSwan hafiftir; 512 MB–1 GB RAM çoğu küçük ve orta ekibe yeter. Şifreleme çekirdekte yapıldığı için asıl yük işlemcidedir.
Ryzen VDS VPN için uygun mudur?
Evet. Ryzen işlemciler AES-NI desteklidir ve yüksek frekansları sayesinde çok sayıda IPsec tünelinde şifreleme yükünü rahat taşır. Ağ kapasitesi ve MTU ayarı da sonucu belirler.
VPN için VDS
Kurumsal IKEv2 VPN’inizi kendi sunucunuzda kurun
Sabit IP’li, root erişimli ve DDoS korumalı Linux VDS’lerle strongSwan IKEv2 sunucunuzu dakikalar içinde çalıştırın. Çok sayıda tünel için Ryzen 9 işlemcili paketleri inceleyin.