xinetd zamiast inetd

"inetd" w skrócie jest to deamon sieciowy majacy kontrole nad prawidłową obsługą  połączeń przychodzących. Nie jest on za najszczęśliwszym demonem, gdyz nie jest on odporny na ataki DoS,  DDoS a sa one przekleństwem. Jest wiele superdemonów ( bo tak one sie nazywaja ), ja sie skoncentruje nad xinetd gdyż współpracuje on z, nowymi protokołami, tcp_wrapper jak również filtruje przychodzące rządania.

Pora na szybką instalacje::

[root@lame ~]#cd /usr/ports/security/xinetd
[root@lame /usr/ports/security/xinetd]#make install clean


Domyślnie kompilacja odbywa sie z wsparciem dla tcp_wrapper.

Teraz pora na stworzenie naszego plku konfiguracyjnego::
[root@lame /usr/ports/security/xinetd]#cd /usr/local/etc
[root@lame /usr/local/etc]#touch xinetd.conf


Ogólna składnia naszego pliku::
service nazwa_serwisu
{
atrybut operator wartość
}

{mosgoogle center}

Opis podstawowych opcji::

nazwa_serwisu - nazwa naszej usługi ( ftp, ssh, imap, inne ).

Dostepne atrybuty::

disable [yes/no] - Usługa aktywna/dezaktywna
flags - flagi, wartości jakie przyjmuje:
IDONLY - połączenia są zaakceptowane po identyfikacji klienta
NAMEARGS- xinetd bedzie działał tak samo jak inetd
( wymagana jest obsługa tcp wrappera )
NORETRY - aktywuje zabezpieczenie przed fork'iem
socket_type - typ gniazda, wartości:
stream (TCP)
dgram (UDP)
raw
seqpacket
wait - opcja ta określa wątkowość serwisu, wartości
yes - dozwolone tylko jedno połączenie
no - wiecej jak jedno
user - po dodaniu tej opcji demon zostanie uruchomiony z prawami danego użytkownika
server - scieżka do pliku wykonywalnego
server_args - opcja ta określa paramety z jakimi bedzie program nasz uruchomiony
log_on_failure - w momencie jak dany demon nie moze być uruchomiony ustalamy kolejność
logowania przy nawiązaniu połaczenia, wartości:
USERID - identyfikator zdalnego użytkownika
HOST - adres klienta
ATTEMPT - logowanie prób dostępu
RECORD - loguje informacje dostępne o kliencie

log_on_success - w momencie prawidlowego uruchomienia, określamy
co bedzie logowane, wartości:
USERID - identyfikator zdalnego użytkownika
HOST - adres klienta
PID - pid serwera
DURATION - czas trwania sesji
EXIT - status wyjścia procesu

Dostepne operatory:

= - przypisuje wartość atrybutowi
+= - dodaje wartość do listy wartości atrybutów
-= - odejmuje wartość z listy wartości atrybutów

Po małej lekcji zapoznawczej przechodzimy do przykładu. Chcielibyśmy odpalić poprzez
xinetd server ssh, nic prostrzego:
Edytujemy w tym cely nasz plik który stworzylismy przed chwila swoim ulubionym
edytorkiem i dopisujemy:

service ssh
{
socket_type = stream
protocol = tcp
wait = no
user = root
port = 22
server = /usr/local/sbin/sshd
server_args = -i
}

i wszystko jasne =]

Teraz tylko maly zabieg, aby przy starcie systemu uruchomiał sie xinetd zamiast inetd, wchodzimy do katalogu:

[root@lame /usr/local/etc]#cd /etc

I edytujemy rc.conf dopisując wartości:
inetd_enable="NO"
xinetd_enable="YES"

Na koniec sponsoring od strony literek r,e,b,o,t
[root@lame /etc]#reboot

lub usmiercenie z premedytacja starego i wysłużonego inetd wraz z odpaleniem naszej usługi:
[root@lame /etc]#killall -9 inetd ; /usr/local/etc/rc.d/xinetd.sh start

Nic prostrzego, prawda ? ;-)

 

Hosting @mc2 || Copyright © 2024 FreeBSD - Inside. Wszelkie prawa zastrzeżone.