OpenVPN Server-Client MTU değeri farkından doğan garip Ubuntu SSH sorunu

Yeniden kurduğum Ubuntu 18.04 Sunucu’suna SSH ile uzaktan bağlanıp işlem yaptığım sırada sürekli bağlantı kopma sorunu yaşıyordum. SSH ile bağlandıktan sonra “vi” veya ki “history” gibi basit komutları çalıştır-çalıştırmaz bağlantı hemen kopuyordu. Aynı komutları konsol’a bağlanıp çalıştırdığımızda ise normal çalışıyor. Sunucu kurulumunda bir eksiklik olduğunu düşünerek Sunucu loglarini incelediğimde konuyla ilgili herhangi bir hataya karşılaşmadım. Aynı VLAN’daki CentOS kurulu diğer Sunucularda ise her şey normaldi.

Sunucuyu yeniden kursam mı diye düşünürken, bir şey dikkatimi çekti. Bağlantı koparken SSH için kullandığımız nRemoteNG’deki
diğer sunucuların bağlantısı da aynı anda kopuyormuş. Sorun nRemoteNG’nin kullandığı Putty’den kaynaklanmış mı, SSH ayarlarında uymazlık var mı diye düşünerek Putty ayarlarını değiştirerek denedim olmadı.

Tam çaresizliğin ışığındayken bilgisayarımın sağ alt köşesideki iç Ağ’a gitmek için kullandığımız OpenVPN istemci simgesinin bu sırada sönüp yandığı gözüme çarptı. Acaba OpenVPN’denmi kaynaklı ? Tekrar deneme yaptım, her defa Ubuntu Sunucu bağlantısının kopmasına sebep olan “vi” veya “history” komutlarını çalıştırdığımda OpenVPN bağlantısı
aynı anda kopuyordu. Hemen OpenVPN loglarını inceledim:

WARNING: Bad encapsulated packet length from peer (26665), which must be > 0 
and <= 1527 -- please ensure that --tun-mtu or --link-mtu is equal on both
peers -- this condition could also indicate a possible active attack on the
 TCP link -- [Attempting restart…]
WARNING: Bad encapsulated packet length from peer (1541), which must be > 0 
and <= 1527 -- please ensure that --tun-mtu or --link-mtu is equal on both 
peers -- this condition could also indicate a possible active attack on the
 TCP link -- [Attempting restart…]

Loglar bize Sunucu ve İstemci iki taraftaki MTU değeri farklı, belki TCP atağına maruz kalmış olabilirsiniz diye uyarıyordu. OpenVPN’ni yeniden başlattıktan sonra tekrar logları incelediğimde aşağıdaki gibi uyarı mesajı gözüme çarptı:

WARNING: 'link-mtu' is used inconsistently, local='link-mtu 1444', remote='link-mtu 1544'
WARNING: 'tun-mtu' is used inconsistently, local='tun-mtu 1400', remote='tun-mtu 1500'

Hemen OpenVPN Server ve Client iki taraftaki config dosyalarını inceledim, Server tarafta MTU parameteri ayarlanmamış, Client tarafta ise

tun-mtu 1400

olarak ayarlnmış. Sunucu tarafta konfig dosyasında MTU ayarı belirlenmediği için varsayılan değeri almış, yanı link-mtu 15544, tun-mtu 1500. Hemen istemci konfig dosyasındaki tun-mtu ayarını yorumlayıp, uygulamanın varsayılan değerini almasına bıraktım ve OpenVPN’ni yeniden başlattım. Loglardaki değer eşleşme uyarı kayboldu. Ubuntu Sunucu’na SSH ile bağlanıp “sabikalı” komutları çalıştırdım. vi’in tanıdık ara yüz ekranı birden geliverdi, herşey normal’a döndü.

Sorunun Sebebi

Anlaşılan şu ki Sunucu tarafta “vi” veya “history” gibi veri akışı biraz fazla olan uygulama çalıştırıldığında VPN Sunucu akatarılacak verileri paketlerken MTU değeri 1500 olduğu için büyük paketlerin boyutu İstemci’nin 1400’lük MTU boyutundan aştığı için Client’in çökmesine sebep olmuş. Ama, ilginç olan ayni VPN ortamı CentOS sunucuları için sorun değil, yani aynı komutları CentOS Sunucularında çalıştırdığımda bu sorunla hiç karşılaşmadım. Bunu ancak şöyle izah edebiliriz: CentOS Sunucuları Ağ katmanında verileri paketlere parçalarken belki en büyük boyutu 1400’den aşmamış olabilir. Gerçekten öyle mi bunun için Ağ seviyesinde paket tutarak analiz yapmak gerekebilir.