Pazar, Aralık 22, 2024

OpenVPN’de AEAD Decrypt error: bad packet ID Hatası Nasıl Çözülür?

yüksek çözünürlüklü openvpn logosu

OpenVPN ile VPN işlemi yaptığınızda karşınıza pek çok hata ve uyarı mesajı gelebilir, bunlardan en önemlisi aşağıdaki hatadır, bu hata neticesinde VPN güvenliğiniz olumsuz etkilenebilir. Bu hata özellikle VPN bağlantılarınıza yapılan bir saldırı girişimini de gösterebilir.

AEAD Decrypt error: bad packet ID (may be a replay)

Bu hata yalnızca tünelinizi UDP protokolünde çalıştırırken ortaya çıkar. Elbette, mesajları sessize almak için hem istemci hem de sunucu tarafında aşağıdaki parametreyi kullanabilirsiniz.

--mute-replay-warning

Üşenen biriyseniz bunu yapıp geçersiniz ama VPN\’i kullanan kullanıcılar başınızı ağrıtır. Çünkü bu hata neticesinde VPN\’de aşırı şekilde yavaşlamalar meydana gelir. Ayrıca yapılandırdığınız VPN sunucusu MITM ataklarına karşıda savunmasız olur.

openvpn

Çözüm olarak VPN bağlantısında MTU(Maximum İletim Birimi)ni değiştirmeniz gerekir. paketin internetten geçebileceği değeri belirleyeceğiz, boyutları biraz düşüreceğiz ve sorun ortadan kalkacak ama bu değeri tespit etmemizde gerekiyor. O yüzden önce tespit işlemini yapalım networkümüzde bakalım minimum ve/veya maximum ne kadar yapabiliyoruz. Testini şu şekilde yapabiliriz.

Windows için

ping -n 1 -l 1500 -f 1.1.1.1

Linux için

ping -M do -s 1500 -c 1 1.1.1.1

Ayarlayacağımız MTU için hesaplama yapalım, OpenVPN\’de güvenlik için 41 bayt, tünelleme için 28 bayt yani toplam 69 bayt gerekecek bize. Yukarıdaki komutu çalıştırdığınızda karşınıza çıkacak olan sonuç bu noktada önem arz ediyor ve aşağıdaki gibi bir uyarı ile karşılaşabilirsiniz.

Your packets needs to be fragmented but DF set

Bunu görüyorsanız direk olarak MTU değerini düşürmeye başlayın, ne zaman karşı sunucudan cevap gelirse işte o zaman durun çünkü o MTU değerini kullanacaksınız tabii burada MSS(Maks Segment Boyutu) işin içine girecek ve tespit ettiğimiz MTU değerinden mecburi olarak 40 çıkaracağız.

vpn

Örnek vermem gerekirse ben yaptığım testler sonucunda yanıt aldığım ve sıkıntısız olduğunu gözlemlediğim MTU değeri olarak 1431 kullanacağım. Yukarıda bahsettiğim gibi bu değerden 40 çıkartacağım ve gerçek MTU değeri elime geçmiş olacak.

1431-49=1382 Benim gerçek MTU değerimi oluşturuyor.

En başta ne demiştik, OpenVPN için toplamda 69 bayt gerekiyor bulduğumuz 1382 değerinden 69 çıkartıyoruz. OpenVPN tarafında kullanacağımız değer 1313 oldu.

Şimdi hem istemci hem de sunucuda aşağıdaki değişikliği yapacağız;

mssfix 1313

Kullanıcılara yeni yapılandırma göndermeniz gerekebilir bunu göz önüne alarak değişiklikleri tamamladıktan sonra OpenVPN sunucusunu yeniden başlatın. Ardından en başta bahsettiğimiz hatayı alabilmek amacıyla internet üzerinden büyük dosyaları indirmeye başlayın ve konsoldan OpenVPN olay günlüklerini izleyin, eğer yük altında hala yukarıdaki AEAD Decrypt error: bad packet ID (may be a replay) hatasını gözlemliyorsanız mssfix değerini daha da düşürmeniz gerekecektir.

Son olarak bütün bu işlemleri yaptınız ancak hatalar hala devam ediyorsa, VPN bağlantınızı UDP olarak kullanmayı bırakıp TCP protokolüne geçirin.