Gitea üzerinden bir sunucuyu kaybettikten sonra, git repolari icin spring boot tabanli yeni bir uygulama olusturdum. Bu benim bir günümü bile almadi. Https üzerinden git repository islemlerini yapabiliyorum. Bunun yaninda github actions özelligini de implemente ettirdim. Her commit ile istedigim bir repo icindeki uygulamayi test sunucularina deploy ettirebiliyorum, yani bir nevi CI / CD pipeline. Yani jenkins gibi bir ara katmana ihtiyac yok.
Buraya kadar olaganüstü bir durum yok. Asil mevzu, yeni sucunuyu, yeni git sunucu uygulamasini ve repolari nasil korumaya calistigim.
Bunun icin birkac katmanli güvenlik altyapisi olusturmak gerekiyor.
En alt seviyeye isletim sisteminin kendisi ve onun güvenli olmasi. Bu amacla Debian 13 minimal linux isletim sistemini kurdum. Gerekli hardening sürecinden sonra iptables ve ufw ile sistemde sadece 22 ve 443 portlari acik birakacak sekilde, her türlü erisimi engelledim. Sunuculara sadece private key. ile baglanmak mümkün. Isteyen olursa, private key dosyami gönderebilirim.
Bu en temel güvenlik katmani üzerinde diger güvenlik katmanlarinin insa edilmesi gerekiyor. Asagidaki resimde gördügünüz gibi yeni git sunucusuna saldiri baslamis durumda.

Orta katmani anlatabilmek icin önce uygulama katmanindaki güvenlik önlemlerine göz atmamiz gerekiyor.
Uygulama katmaninda degisik türde güvenlik tedbirleri mevcut. Spring boot bünyesinde izin olmadan api kaynaklarina erisimi engellemek icin gerekli konfigürasyon yapildi. Buna ek olarak belirli sayida hatali login yaptiktan sonra, uygulamaya login yapma islemi bloke edildi. En son tedbir olarak hatali giris yapmaya calisanlar icin security.log isminde bir log dosyasi olusturuldu. Uygulama hatali girisleri bu dosyaya yaziyor.
Ikinci katman da bu security.log dosyasi ile calisan bir yapi var.
Isletim sistemi üzerinde fail2ban isminde, iptables ile calisan bir uygulama var. Bu uygulama düzenli olarak security.log dosyasina bakiyor (asagidaki örnek) ve failed olan login islemlerinin ip adreslerini iptables ile bloke ediyor.
Isletim sistemi üzerinde alinabilecek güvenlik önlemleri bu kadar.
Buna ek olarak iki önlem daha alinabilir.
1. Sunucuyu ve domain adresini cloudflare arkasina saklamak: Bu sekilde sunucu ip adresini bulmak ve SSH üzerinde bruteforce yapmak imkansiz hale geliyor. Ayrica uygulama seviyesinde cloudflara tarafindan dos ve ddos ataklari engelleniyor.
2. Gercek bir firewall donanimi ile sunuculari syn, dos, ddos vb. attaklara karsi korumak. Böyle bir firewall sunucu, sunucular üzerinde yapilan tüm güvenlik ayarlarini gereksiz kilabilir yani gerekli tüm önlemleri daha sunucuya erismeden almak mümkün.
DevOps sahasinda bu tür saldirilari cok faydali buluyorum. Her defasinda size aciklarini gösteriyorlar ve siz de gerekli önlemleri aliyor ve uygulamayi ve sunuculari daha iyi korumayi ögreniyorsunuz.