ULAKBIM

Sistem Bütünlüğü

Bu dokümanda, sistem bütünlüğü için yapılan periyodik kontrollerin çalışma prensibi anlatılmaktadır.


  • Öncelikle git sunucusunda sb adında bir public proje bulunmalı. Projenin adresi /etc/ansible/roles/post/vars/integrity.yml içerisindeki git konfigürasyonunun repo değişkenine yazılmalıdır.
  • Sistem bütünlüğü kontrolü için uç makinanın ilk kurulumundan sonra makinadan yüklü paketler, kullanıcılar, gruplar ve konfigürasyon bilgileri alınır.
  • Bu bilgiler hem uzak makinanın kendisinde hemde merkezi bir git sunucusunda saklanır.
  • Toplanan bu bilgileri bir betik kullanıcının belirleyeceği aralıklarla sistemi kontrol eder.
  • Kontrol işlemi için öncelikle git sunucusundan güvenilir dosyaların bir kopyasını yerele alınır. Eğer git sunucusuna erişilemezse hali hazırda var olan dosyalar kullanılır.
  • Kontrol işlemi sırasında betik, kendi üzerinde kullanıcı, grup ve yüklü paketlerin listesini alır. Bu listeler ile git sunucusundan gelen listeleri karşılaştırır. Farklılık durumunda alarm logu üretilir.
  • Aynı şekilde betik, konfigürasyon listesindeki tüm dosyaların özet ve paketlerin özet değerlerini alır ve git sunucusundan gelen değerler ile karşılarştırma yapar. Farklılık durumda alaram logu üretilir.
  • Periyodu belirlemek için /etc/ansible/roles/post/vars/integrity.yml dosyasının içinde bulunan cron konfigürasyonun min ve hour değerleri değiştirilir.
  • Playbook tekrar çalıştığında öncelikle uç cihaz kontrol tetiklenir. Uç cihaz bilgileri git sunucusundan alır ve kontrollerini yapar. Farklılık olması halinde log üretilir.
  • Bulunan olması gereken durumdan sapma(fazladan yaratılmış kullanıcı, değişmiş konfigürasyonlar, fazladan yüklenmiş paketler vs.) sistem alarm üretir ve kullanıcıyı uyarır.
  • İsteğe bağlı olarak kullanıcı saptanmış fazlalıkların otomatik olarak giderilmesini ayarlayabilir. Bu sayede kontroller sırasında bulunan fazlalıklar kullanıcıyı uyarmakla beraber sistemden silinir.
  • /etc/ansible/roles/post/vars/integrity.yml dosyasının cron kısmındaki fix ayarını true yaparak fazlalıkların otomatik olarak giderilmesi sağlanır.
  • Kullanıcı isterse her bir makina için ayrı, kontrol edilmeyecek paket, kullancı ve grupları belirleyebilir. Bu bilgileri /etc/ansible/roles/post/vars/integrity.yml dosyasının içindeki whitelist değişkenine eklenir. Bu sayede istenmeyen paket, kullanıcı ve grup bilgileri için alarm üretilmez.