Identyfikacja (IRC) z demonem Oidentd
Napisał: Patryk Krawaczyński
12/12/2003 w Administracja Brak komentarzy. (artykuł nr 1, ilość słów: 1005)
O
ident jest daemonem identyfikacji, który działa na takich systemach jak Linux, FreeBSD, OpenBSD i Solaris. Jest on potrzebny do przeprowadzania prawidłowej identyfikacji użytkownika w danym systemie operacyjnym. Do swojego działania wykorzystuje Identification Protocol (RFC1413) dzięki czemu jest w stanie zidentyfikować aktywne połączenia TCP i podać User-ID (w postaci nazwy lub numeru) z lokalnej maszyny serwerowi, z którym łączy się klient. Oident potrafi obsługiwać IP Masquerade inaczej połączenia NAT (Network Address Translation) pod Linuksem, FreeBSD (tylko ipf) i OpenBSD oraz protokół IPv6, podczas gdy standardowy klient jakim jest w Linuksie pidentd nawet nie jest w stanie poprawnie współpracować z Maskaradą. Oidentd dodatkowo posiada elastyczny mechanizm dla specyficznych odpowiedzi identyfikacji. Użytkownicy posiadają możliwość dostępu do zdefiniowania ich własnych odpowiedzi identyfikacji. Odpowiedzi te mogą być zdefiniowane zgodnie z hostem, portem czy serwerem IRC…
Oidentd jest programem, który świetnie zastępuje standardowy program do obsługi protokołu identyfikacji jakim jest pidentd. Daemon ten jest przede wszystkim bezpieczniejszy oraz posiada więcej opcji konfiguracyjnych. Jeśli chcemy się dowiedzieć więcej o protokole identyfikacji powinniśmy przeczytać dokument “RFC1413“, który możemy znaleźć w źródłach programu.
Wracając do tematu – natomiast same źródła programu możemy pobrać z serwisów takich jak http://ojnk.sourceforge.net oraz http://freshmeat.net. Po ściągnięciu pliku w formacie oidentd-2.0.8.tar.gz w celu przeprowadzenia instalacji wydajemy ciąg komend:
gunzip oidentd-2.0.8.tar.gz tar -xvf oidentd-2.0.8.tar rm oidentd-2.0.8.tar cd oidentd-2.0.7 ./configure --prefix=/usr make make install
Po wydaniu następującego ciągu komend możemy się spodziewać konfiguracji, kompilacji, a następnie instalacji demona oidentd w standardowym katalogu /usr/sbin i umieszczeniu zdekompresowanych stron manualnych w katalogu /usr/man/man8. Podczas tego typu instalacji oidentd posiada standardowo włączone wsparcie dla Maskarady oraz IPv6. W celu wyłączenia, którejś z tych opcji wystarczy, że użyjemy dodatkowego parametru –disable-opcja podczas wydawania komendy ./configure, czyli:
./configure --disable-ipv6 - wyłączy wsparcie dla IPv6. ./configure --disable-masq - wyłączy wsparcie dla IP Masquerade.
Jeśli podczas konfiguracji ukazały się nam jakieś błędy – to zalecane jest skasowanie zużytych już zródeł i ponowne rozpakowanie “nowych”, a następnie uruchomienie komendy: ./configure z opcją –enable-debug, co spowoduje konfiguracje oraz instalacje demona w trybie debug. Po poprawnej instalacji pozostaje uruchomienie oidenta – we wcześniejszych wersjach demon ten mógł być uruchamiany z poziomu inetd oraz jako samodzielny demon, czyli w trybie standalone. Jednak od drugiej wersji demon ten może być uruchamiany tylko w trybie standalone. Dlatego przed jego uruchomieniem, należy w plikach konfiguracyjnych serwerów takich jak inetd lub xinetd usunąć lub wyłączyć wpisy dotyczące demona pident. Użytkownicy korzystający z inetd mogą zlokalizować ten wpis dzięki komendzie: “egrep ^auth /etc/inetd.conf” oraz deaktywować go poprzez wstawienie znaku komentarza ‘#’ na początku danego wiersza. Teraz wystarczy zresetować serwer inetd przy pomocy komendy: “killall -HUP inetd“. Podobnie postępujemy w przypadku serwera xinetd. Ze względów bezpieczeństwa oidentd powinien być uruchamiany przez administratora lecz z uprawnieniami zwykłego użytkownika (np. nobody). W celu dokonania tego, do pliku /etc/rc.d/rc.inet2 dodajemy następujący wpis:
# Start the oidentd daemon: if [ -x /usr/sbin/oidentd ]; then echo "Starting oidentd daemon: /usr/sbin/oidetnd" /usr/sbin/oidentd -u nobody -g nobody fi # Done starting the oidentd daemon.
Natomiast jeśli korzystamy z Maskarady wpis uruchamiający powinien wyglądać …/oidentd -m -u nobody -g nobody. Demon ten powinien być uruchamiany przez administratora lecz nie koniecznie z jego prawami, ze względu na to, że przy starcie musi on otworzyć port 113 oraz dokonać zmian w /dev/kmem. Po wykonaniu tych czynności porzuca on prawa administratora i zaczyna działać z uprawnieniami sugerowanymi przez odpalającego go użytkownika (w wyżej przedstawionym wypadku z prawami użytkownika nobody). Jedynym systemem, w którym oidentd musi być odpalany z prawami administratora jest FreeBSD, lecz tylko w przypadku, gdy wsparcie dla Maskarady jest wyłączone lub wsparcie dla IPv6 jest włączone. Przechodząc do konfiguracji powinniśmy na początku stworzyć plik /etc/oidentd.conf komendą: “touch /etc/oidentd.conf“. Poniżej zamieszczam przykładowe / standardowe wpisy tego pliku stosowane w większości przypadków:
default { default { deny spoof deny spoof_all deny spoof_privport allow random_numeric allow numeric allow hide } }
Opcje ‘deny spoof‘ oraz ‘deny spoof_all‘ nie pozwalają użytkownikom systemu używać wymyślonych identów oraz podszywania się pod identy innych użytkowników systemu. Opcja ‘deny spoof_privport‘ nie pozwala na własne replay przy portach poniżej 1024. Dzięki opcji ‘allow numeric‘ demon na poprawne zapytania odpowiada numerem UID użytkownika. Natomiast opcja ‘allow random_numeric‘ posiada podobne działanie jak w przypadku opcji ‘allow numeric’ tyle, że z tą różnicą, że po numerze UID użytkownika znajduje się losowo wygenerowana liczba z przedziału od 0 do 100000. Ostatnia opcja to ‘allow hide’, która pozwala na odpowiedz typu ‘HIDDEN-USER‘ w przypadku powodzenia połączenia. Instalację programu kończymy zresetowaniem serwera oraz po jego załadowaniu podglądem ostatnich zapisów w pliku /var/log/messages, w celu sprawdzenia czy oidentd nie ma żadnych problemów z załadowaniem. Jeśli nie znaleźliśmy żadnych wpisów to znaczy, że oidentd odpalił się bez problemu, aby się upewnić wydajemy komendy: “ps auxw|grep nobody” oraz “netstat -ta|grep auth“.
Bonus (/etc/oidentd_masq.conf):
192.168.0.2 pc02 UNIX 192.168.0.3 pc03 WINDOWS 192.168.0.4 pc04 WINDOWS 192.168.0.5 pc05 UNIX
Więcej informacji: man oidentd, man oidentd.conf, oidentd –help, Oidentd
Brak starszych postów Następny wpis