Katmera ile WireGuard VPN: Gömülü Cihazlar için Güvenli Uzaktan Erişim
Endüstriyel sahalara veya uzak lokasyonlara konuşlandırılan Katmera kartlarını güvenle yönetmek, modern IoT altyapısının temel gereksinimlerinden biridir. WireGuard; geleneksel VPN çözümlerine kıyasla çok daha hızlı, minimal kod tabanı ile daha güvenli ve yapılandırması son derece kolay bir protokoldür. Bu rehberde Katmera kartınıza WireGuard kurarak güvenli bir tünel oluşturmayı adım adım ele alacağız.
WireGuard Neden Tercih Edilmeli?
OpenVPN ve IPsec'e Göre Avantajları
Performans: WireGuard, OpenVPN'e kıyasla %50-80 daha yüksek throughput sağlar.Kod tabanı: Yalnızca ~4.000 satır kod — OpenVPN'in 100.000+ satırına karşın çok daha az saldırı yüzeyi.Gecikme: Bağlantı kurulum süresi milisaniyeler mertebesinde, anlık yeniden bağlanma.Modern kriptografi: ChaCha20, Poly1305, Curve25519, BLAKE2s algoritmalarını kullanır.Gömülü sistemler için ideal: Düşük CPU kullanımı ve küçük bellek ayak izi.Kurulum
Katmera (Sunucu/Peer) Tarafında
#### WireGuard Kurulumu
bash
sudo apt update
sudo apt install wireguard -yKernel modülünü etkinleştir
sudo modprobe wireguardModülün yüklendiğini doğrula
lsmod | grep wireguard
#### Anahtar Çifti Oluşturma
bash
/etc/wireguard dizinine geç
cd /etc/wireguardÖzel ve genel anahtar oluştur
wg genkey | sudo tee privatekey | wg pubkey | sudo tee publickeyAnahtarları görüntüle
sudo cat privatekey
sudo cat publickey
#### WireGuard Arayüz Yapılandırması
bash
sudo nano /etc/wireguard/wg0.conf
ini
[Interface]
Katmera kartının VPN IP adresi
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = Gelen bağlantılar için iptables kuralları
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADEClient Peer (Örnek: Ofis bilgisayarı)
[Peer]
PublicKey =
AllowedIPs = 10.0.0.2/32
#### IP Yönlendirmeyi Etkinleştir
bash
Kalıcı olarak etkinleştir
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
İstemci (Client) Tarafında
#### Linux/macOS İstemci Kurulumu
bash
Ubuntu/Debian için
sudo apt install wireguard -yAnahtar çifti oluştur
wg genkey | tee privatekey | wg pubkey | tee publickey
ini
/etc/wireguard/wg0.conf (İstemci yapılandırması)
[Interface]
Address = 10.0.0.2/24
PrivateKey =
DNS = 1.1.1.1[Peer]
PublicKey =
Katmera'nın gerçek IP adresi veya domain adı
Endpoint = katmera-sahasi.ornek.com:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25
Tüneli Başlatma ve Yönetme
Manuel Başlatma
bash
Tüneli başlat
sudo wg-quick up wg0Durum kontrolü
sudo wg showTüneli durdur
sudo wg-quick down wg0
systemd ile Otomatik Başlatma
bash
Katmera açıldığında otomatik başlasın
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0Servis durumunu kontrol et
sudo systemctl status wg-quick@wg0
Bağlantı Durumunu İzleme
bash
Anlık tünel istatistikleri
sudo wg show wg0Çıktı örneği:
interface: wg0
public key:
private key: (hidden)
listening port: 51820
#
peer:
endpoint: 192.168.1.100:12345
allowed ips: 10.0.0.2/32
latest handshake: 30 seconds ago
transfer: 1.44 MiB received, 512 KiB sent
Güvenlik Sertleştirmesi
Firewall Kuralları (UFW ile)
bash
Yalnızca WireGuard portuna izin ver
sudo ufw allow 51820/udp
sudo ufw allow in on wg0SSH erişimini yalnızca VPN üzerinden al
sudo ufw allow in on wg0 to any port 22
sudo ufw deny 22sudo ufw enable
Anahtar Rotasyonu
bash
#!/bin/bash
/usr/local/bin/rotate-wg-keys.sh
cd /etc/wireguard
OLD_KEY=$(cat privatekey)
wg genkey | tee privatekey | wg pubkey | tee publickey
Yapılandırmayı güncelle
NEW_PRIVATE=$(cat privatekey)
sed -i "s|PrivateKey = .*|PrivateKey = $NEW_PRIVATE|" wg0.confTüneli yeniden başlat
systemctl restart wg-quick@wg0echo "Anahtarlar başarıyla yenilendi: $(date)"
bash
Her 30 günde bir çalıştır
echo "0 3 1 root /usr/local/bin/rotate-wg-keys.sh" | sudo tee -a /etc/crontab
Çoklu Peer Yönetimi
Birden fazla Katmera kartını veya istemciyi aynı VPN ağında yönetmek için:
ini
Merkezi WireGuard Sunucusu — wg0.conf
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = Katmera Kart #1 — Sahada
[Peer]
PublicKey =
AllowedIPs = 10.0.0.10/32Katmera Kart #2 — Fabrika
[Peer]
PublicKey =
AllowedIPs = 10.0.0.11/32Geliştirici Bilgisayarı
[Peer]
PublicKey =
AllowedIPs = 10.0.0.100/32
Peer'ları Dinamik Olarak Ekleme
bash
Servisi durdurmadan yeni peer ekle
sudo wg set wg0 peer allowed-ips 10.0.0.20/32Değişikliği kalıcı kaydet
sudo wg-quick save wg0
Performans Testi
bash
iperf3 ile WireGuard tünel performansını ölç
Sunucu tarafında (Katmera):
iperf3 -sİstemci tarafında:
iperf3 -c 10.0.0.1 -t 30 -P 4Beklenen sonuçlar (RK3576 üzerinde):
[ ID] Interval Transfer Bitrate
[ 5] 0.00-30.00 sec 890 MBytes 249 Mbits/sec sender
[ 5] 0.00-30.00 sec 887 MBytes 248 Mbits/sec receiver
Sorun Giderme
Yaygın Hatalar
"RTNETLINK answers: Operation not supported"
bash
Kernel modülü yüklü değil
sudo apt install linux-headers-$(uname -r)
sudo modprobe wireguard
Handshake gerçekleşmiyor
bash
Firewall kurallarını kontrol et
sudo iptables -L -n | grep 51820
UDP portuna erişimi doğrula
sudo tcpdump -i eth0 udp port 51820
Tünel üzerinden ping çalışmıyor
bash
IP yönlendirme etkin mi?
cat /proc/sys/net/ipv4/ip_forward
1 dönmeli; 0 dönüyorsa:
sudo sysctl -w net.ipv4.ip_forward=1
Sonuç
WireGuard, Katmera kartlarının endüstriyel ve uzak konuşlanma senaryolarında güvenli bağlantı gereksinimine ideal bir çözüm sunar. Minimal yapılandırma, yüksek performans ve modern kriptografi ile sahadaki cihazlarınıza her yerden güvenle erişebilir, SSH tünelleri, grafana panelleri ve MQTT broker'larına şifreli bağlantı üzerinden ulaşabilirsiniz.
Bir sonraki adım olarak WireGuard tünelini Tailscale veya Netbird gibi yönetim katmanlarıyla birleştirerek sıfır-dokunuş (zero-touch) cihaz yönetimi altyapısı kurabilirsiniz.