Repository navigation
Bu yama sürümü linux-hardening 0.12.0'ı kilitler ve sunucu eklerken platform seçimini, güncelleme panelini getirir.
Dikkat
- Mevcut sunucularda
linux-hardeningeylemleri ⛔ görünebilir: 0.12.0preview,apply,pve_firewall_previewvepve_firewall_applyeylemlerinihardening_ssh_allow_fromdolu olmadan çalıştırmaz (kemer ve pantolon: erişim kısıtını boş bırakıp kendinizi dışarıda bırakmayı önler). Paket menüsünü ilk açtığınızda sunucu türü ve izinli ağlar sorulur; "Şimdi değil" derseniz değer yazılmaz ve eylemler ⛔ kalır.auditverollback_*etkilenmez. Güncellemeden sonra--components reporthangi sunucunun etkilendiğini gösterir. - Proxmox'ta
applyartıkhardening_pve_apply=true'yu o koşuya özel verir (yalnızca sunucu türüproxmox-hostseçiliyse, uyarı sunucu adı onayından önce gösterilir,.varsdosyanıza yazılmaz ve kendi yazdığınız değer ezilmez). - Gerçek VM (Ubuntu + Proxmox) doğrulaması henüz yapılmadı (3.6.19'daki fail2ban maddesi dahil): yalnızca birim testleri, gerçek 0.12.0 manifestiyle yerel denemeler ve Docker LAB e2e (18/18) yeşil. Platform seçimi,
apply_varsve güncelleme paneli gerçek terminalde/sunucuda elle denenmedi.
Düzeltildi
- Sunucu eklerken CIDR editörü:
ModuleGenerator.shSSHModule.sh'yi yüklemediği için sunucu bilgileri (IP/port/kullanıcı/anahtar) okunamıyor ve "_ssh_env_get: command not found" yazıyordu; ayrıca değişken türü sorgusu Python'a BrokenPipe izi bastırabiliyordu. İkisi de giderildi (test eklendi).
Eklendi
- Paket değişiklik raporu (güncelleme paneli, 3. adım): güncellemede bir paketin sürümü değişince (
--components sync, hem menü hem--updateyolunda) sonda "📋 paket eski → yeni: ne değişti?" yazılır: yeni/kalkan değişkenler, türü ya da varsayılanı değişenler (örn.hardening_fail2ban_bantime "1h" → "10m"), yenirequires_varskuralları, eklenen sunucu türü seçimi ve bu bilgisayardaki sunucularınıza etkisi ("web1: preview, apply ⛔ — değeri boş: …", "sunucu türü seçilmemiş"). Yalnızca okur, hiçbir şey yazmaz/değiştirmez; paket hiç ayarlanmamış sunucular atlanır. Eski sürüm, diskte duran bir önceki sürümdür (eski sürümlerpruneile silinmeden önce). Elle:--components report [paket [eski-sürüm]]. Yeni:Helpers/ComponentsReport.sh. - Güncelleme paneli (
Update.sh, bölgeli akış): terminalde (en az 24 satır × 60 sütun) imza ve arşiv denetiminden sonra üstte sabit iki sütunlu özet (solda sürüm/imza/paket farkları, sağda### Dikkat), altta kaydırma bölgesinde sürüm notları, "Kurulsun mu?" sorusu ve kurulum akar; bölge her çıkışta (iptal, hata, Ctrl-C dahil) sıfırlanır. Özet üst bölüme sığmazsa (çok paket) tamamı kaydırma bölgesinin başında düz yazılır, bilgi kaybolmaz. Terminal küçükse ya da çıktı terminal değilse bugünkü düz akış aynen sürer. Güvenlik sırası (indir → imza → arşiv denetimi → özet → onay → kur) değişmedi. Ortak UI:ui_region_begin2artık sığmama durumunuUI_REGION_TRUNCile bildirir. - Güncelleme özeti (
Update.sh): imza ve arşiv denetimi geçtikten sonra, sürüm notlarından ve "Kurulsun mu?" sorusundan ÖNCE tek tablo gösterilir: sshpocket sürümü (eski → yeni), imza durumu,components.lockpaket farkları (değişen / yeni / kilitten çıkan / değişmeyenlerin sayısı) ve yeni sürümün CHANGELOG'undaki### Dikkatsatırları. Salt gösterimdir, hiçbir şey yazmaz; güvenlik sırası (indir → imza → arşiv denetimi → özet) değişmedi. Sonraki adımlar: bölgeli akış, değişken farkı raporu. - Eski sunucular için ilk açılış sorusu: paket platform listesi bildiriyor (
platform_choices+platform_var) ama sunucunun değerler dosyasında platform yazılı değilse, paket menüsü açılırken (etkileşimli) sunucu türü veonboarding_vars(örn.allow_from) bir kez sorulur — sunucu eklerken sorulanla aynı akış. "Şimdi değil" hiçbir şey yazmaz ve soru sonraki girişte yine çıkar;allow_fromboş kalırsapreview/applyher seferinde ⛔ kalır. Platform listesi olmayan paketlerde (eski sürümler) hiçbir şey sorulmaz. Dolu değerler ezilmez. - Platform
apply_varsuygulaması: manifestte seçili platform (değerler dosyasında açıkça yazılı)apply_varsbildiriyorsa (örn. proxmox-host:hardening_pve_apply=true), değişken YALNIZCA değiştiren "önizle→uygula" eyleminde (type-server-name onaylı,changes-configetkili, yıkıcı olmayan,requirestaşıyan:apply,pve_firewall_apply) o koşuya özel-eile geçirilir. Paketinapply_warningsmetni ve "bu koşuya özel" bilgisi sunucu adı onayından ÖNCE gösterilir; onay verilmezse hiçbir şey çalışmaz. Değerler dosyasına YAZILMAZ, dosyada zaten yazılı değer (false dahil) ve eylemin kendiset'i ezilmez; günlüğebu koşuya özel: …satırı yazılır.audit,rollback_*,kaldir*vepreviewetkilenmez; alan yoksa davranış değişmez. Riskli değer (warn_if) ise mevcut "yine de devam?" sorusu da çıkar. linux-hardening0.12.0 kilitlendi (components.lock): manifestteplatform_choices(generic / proxmox-host / raspberry-pi),onboarding_vars,requires_vars(preview,apply,pve_firewall_preview,pve_firewall_applyiçinhardening_ssh_allow_from) veapply_vars(proxmox-host:hardening_pve_apply=true) bildirilir; roller/playbook davranışı değişmedi. Gerçek paket manifesti sshpocket doğrulayıcısından geçti, boşallow_fromile 4 eylem ⛔ (audit/rollback_status açık), sunucu ekleme akışında platform sorusu gerçek manifestle çalıştı. Gerçek VM (Ubuntu + Proxmox) doğrulaması henüz yapılmadı (akşam yapılacak);apply_varsuygulaması ve eski sunucuların ilk açılış sorusu sonraki PR'larda.- Eylem düzeyi
requires_vars(isteğe bağlı manifest alanı): bir eylem, listedeki değişken değerler dosyasında boş/yoksa ssh'a gitmeden "⛔ çalıştırılmadı: değeri boş değişken: …" ile reddedilir; menüde eylem kartında ⛔ ve "Boş: …" ipucu görünür. Yalnızca o eylemleri kapatır (audit,rollback_*etkilenmez); alan yoksa davranış değişmez. Amaç: erişim kısıtını (örn.hardening_ssh_allow_from) boş bırakıp kendini dışarıda bırakmayı önlemek. - Manifest:
platform_choices/onboarding_varsokunur ve doğrulanır (sunucu eklerken platform seçimi için hazırlık; seçim ekranı veapply_varsuygulaması sonraki PR'larda). Alan yoksa davranış değişmez; bozuksa paket kilide yazılmaz. Tasarım:docs/sunucu-ekleme-platform-secimi.md. - Sunucu eklerken platform ve
allow_fromsorusu:ModuleGenerator.sh(anahtar adımından sonra), kurulu ve manifestindeplatform_choicesolan her paket için sunucu türünü doğrudan sorar ("Bilmiyorum" =generic, "Şimdi değil" = hiçbir şey yazılmaz), seçilen platformundefaultsdeğerlerini özetleyip onaylaservers/<ad>/<paket>.vars'a yazar (dosyadaki değerler ezilmez) veonboarding_varsiçin (örn.list[cidr]allow_from) mevcut CIDR editörünü açar; boş bırakılırsa değer yazılmaz ve ilgili eylemler ⛔ kalır. Manifest yoksa/alan yoksa hiçbir şey sorulmaz.apply_varsbu adımda YAZILMAZ (sonraki PR). Algılama (platform_detect) henüz yok; liste doğrudan sorulur. Yeni:Helpers/ComponentsOnboard.sh;platform_var=bilgi satırı.
Değişti
- Çalışma paneli iki sütunlu (fzf eylem menüsü, eylem çalışırken): üst bölüm artık terminal genişliğinin tamamını kullanır: solda eylem özeti (ad, etkiler, onay, ön koşul), sağda son sonuç ve uyarılar;
│ayırıcı ve fzf'e benzer kenarlık etiketleri (Eylem,Son sonuç ve uyarılar). Üst bölümün yüksekliği içeriğe göre ayarlanır (en az 9 satır, en çok terminalin %40'ı), çıktı bölgesi altta tam genişlikte kalır; çıktı çerçevesinin başlığı canlı ilerlemeyi göstermeye devam eder.BECOME password:ve diğer istemler alt bölgede aynen çalışır. Terminal < 24 satır ya da < 60 sütunsa eski akış kullanılır. Çizim başlangıçtaki genişliğe göre yapılır; çalışırken terminal yeniden boyutlandırılırsa üst bölüm yeniden çizilmez. UI parçası:ui_region_begin2,ui_wrap_text(UI.sh).