Jakiś czas temu projekt SOFI, zaraz po ukazaniu się wersji 0.9 został zamknięty. Autor zargumentował swoją decyzję tym, iż stos TCP/IP w systemie FreeBSD wydaje mu się szybszy, a SOFI było projektowane ściśle dla OpenBSD, więc projektu nie dało się zwyczajnie przenieść. Cały czas projekt wydawał się martwy, kiedy to zajrzałem na jego stronę i zauważyłem że wrócił do życia. Postanowiłem dowiedzieć się więcej. Co było powodem powrotu do OpenBSD i powrotu do życia SOFI?
Zapytałem drogą poczty elektronicznej autora projektu – Marka Heily, dlaczego powrócił do OpenBSD, projektowania SOFI, oraz co różni najnowsze wydanie 2.0 od poprzednich. Oto co dostałem w odpowiedzi.
Mark Heily:
To prawda że projekt SOFI przez długi czas był zamknięty a jego strona domowa została wyłączona na wiele miesięcy. Próbowałem zmienić system operacyjny mojego firewalla na FreeBSD, ale ciągłe konfigurowanie wszystkiego ręcznie było bardzo uciążliwe. Postanowiłem więc powrócić do OpenBSD.
Zaprzestałem rozwijać SOFI ponieważ byłem niezadowolony budową programu z punktu widzenia bezpieczeństwa. Uruchomienie SOFI 1.0 oznaczało wyłączenie funkcji chroot serwera Apache, oraz utworzenie bardzo niebezpiecznego (w sensie możliwości jego wykorzystania – setuid-root) skryptu CGI pisanego w Perlu.
Zaczęłem więc pisać jeszcze raz, ponieważ interesuje mnie pisanie bezpiecznych aplikacji WWW i zawsze wiedziałem jak "właściwie" przeprojektować SOFI, aby wykorzystywać separację przywilejów.
SOFI 2.0 działa w środowisku chroot, oraz wykorzystuję separację przywilejów. W zasadzię, składa się teraz z dwóch części:
– pierwsza nie jest uprzywilejowana do wprowadzania zmian w systemie, i jej zadaniem jest kontakt ze światem zewnętrznym w celach konfiguracyjnych (których nie wykonuje),
– druga działa z prawami roota, i zajmuje się wprowadzaniem zmian do systemu (pobiera dane z części pierwszej). Dzięki takiemu rozwiązaniu dodatkowo projekt SOFI stał się bardziej portowalny. Nie trudne jest teraz przeniesienie go na systemy Linux, NetBSD czy inne systemy typu UNIX.
Jestem zadowolony z obecnej budowy SOFI i myślę że to dobry początek do dalszych prac nad projektem. W przyszłości mam nadzieję dodać zarządzanie połączeniami VPN, Kerberosem, IPSEC, IDS i innymi systemami bezpieczeństwa.
Serdecznie dziękuje autorowi projektu SOFI – Mark Heily za chęć udzielenia odpowiedzi na moje pytania i podzielenia się nimi z czytelnikami serwisu bsdzine.org.
Strona projektu SOFI: http://sofi-firewall.sourceforge.net