NFsec Logo

Identyfikacja (IRC) z demonem Oidentd

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.

RFC – Request For Comments – prośba o komentarze – to zbiór ponad 2700 dokumentów; pierwszy ukazał się 7 kwietnia 1969 roku, opisujący zestaw protokołów sieci Internet oraz związanych z nią eksperymentów i zagadnień. Nie wszystkie dokumenty RFC są standardami Internetu np. RFC 1149 z 1 kwietnia 1990 roku opisuje propozycję enkapsulacji datagramów IP w gołębiach pocztowych, jednak wszystkie standardy Internetu można znaleźć w dokumentach RFC. Profesjonaliści sieciowi często spotykają odwołania do “RFC [numer]”, gdzie znajduje się więcej informacji na temat właściwości pewnych usług sieciowych i protokołów. Te usługi i protokoły obejmują np. elementy: implementację DNS, rozszerzenia TCP/IP, specyfikacje oprogramowania NAT (Network Address Translation). Chociaż wiele dokumentów RFC pochodzi z IETF (Internet Engineering Task Force), to każdy może przedłożyć własne propozycje. Jak już wspomniałem nie wszystkie dokuemnty RFC opisują standardy, ale jeśli dokument ma stać się standardem, musi przejść następujące etapy: propozycję standardu, projekt standardu, zatwierdzenie standardu internetowego.

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

Kategorie K a t e g o r i e : Administracja

Tagi T a g i : , , , , , , , , , ,

Brak starszych postów

Komentowanie tego wpisu jest zablokowane.