Xinetd neboli Extended Internet Services Daemon je takzvaný super-server. Můžete jej nakonfigurovat tak, aby naslouchal místo mnoha služeb a službu, která by měla zpracovat příchozí požadavek, spouštěl až ve chvíli, kdy skutečně dorazí do systému – a tím šetříte prostředky. I když se to v systému, kde je provoz relativně stálý, nemusí zdát velký problém, tato služba v popředí jiného přístupu má určité výhody, jako je protokolování nebo řízení přístupu.
V tomto článku nainstalujeme xinetd na RHEL 8 / CentOS 8 a vložíme sshd
démon pod její péčí. Po ověření nastavení konfiguraci trochu vyladíme, abychom viděli řízení přístupu v akci.
V tomto tutoriálu se naučíte:
- Jak nainstalovat xinetd
- Jak nastavit sshd na RHEL 8 / CentOS 8 jako službu xinetd
- Jak povolit přístup ke službě sshd od xinetd pouze z konkrétní sítě
- Jak auditovat provoz ze záznamů protokolu xinetd

Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | RHEL 8 / CentOS 8 |
Software | xinetd 2.3.15-23, OpenSSH 7.8p1 |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Jak nainstalovat službu xinetd v Red Hat 8 pokyny krok za krokem
Xinetd
lze nalézt v základních repozitářích po nastavení oficiálních repozitářů Subscription Management. sshd
server je ve výchozím nastavení nainstalován na jakýkoli Red Hat (a v podstatě na jakoukoli distribuci Linuxu).
Mějte na paměti, že
sshd
bude během tohoto nastavení vypnuto. NEPOKOUŠEJTE se dokončit tuto příručku na systému, ke kterému máte přístup pouze pomocí ssh, jinak ztratíte připojení k systému ve chvíli, kdy vypnete sshd pro spuštění serveru xinetd.- Nejprve musíme nainstalovat
xinetd
démon. Použijemednf
:# dnf install xinetd
- Pokud váš systém z nějakého důvodu neobsahuje instalaci OpenSSH, můžete nainstalovat balíčky, jako je v tomto případě
openssh
zabalte stejným způsobem jako výše:# dnf install openssh
- Xinetd je dodáván s výchozím konfiguračním souborem
/etc/xinetd.conf
, stejně jako několik úhledných příkladů v/etc/xinetd.d/
adresář, všechny jsou ve výchozím nastavení zakázány. Pomocí textového editoru, jako jevi
nebonano
, vytvoříme nový textový soubor/etc/xinetd.d/ssh
s následujícím obsahem (všimněte si, že nový řádek za názvem služby je povinný):service ssh { disable = no socket_type = stream protocol = tcp port = 22 wait = no user = root server = /usr/sbin/sshd server_args = -i }
- Pokud
sshd
server na systému běží, musíme ho zastavit, jinakxinetd
nelze se připojit k portu TCP 22. Toto je krok, kdy budete odpojeni, pokud jste přihlášeni přes ssh.# systemctl stop sshd
Pokud plánujeme dlouhodobě používat sshd přes xinetd, můžeme také zakázat
systemd
služba pro něj, aby se zabránilo jeho spuštění při spouštění:systemctl disable sshd
- Nyní můžeme spustit
xinetd
:# systemctl start xinetd
A volitelně povolit spouštění při spouštění:
# systemctl enable xinetd
- Po spuštění xinetd se můžeme přihlásit přes ssh, protože naše základní nastavení neobsahuje žádná další omezení. Abychom mohli službu otestovat, požádáme o přihlášení na
localhost
:# ssh localhost root@localhost's password: Last login: Sun Mar 31 17:30:07 2019 from 192.168.1.7 #
- Přidejme další řádek do
/etc/xinetd.d/ssh
, těsně před závěrečným náramkem:[...] server = /usr/sbin/sshd server_args = -i only_from = 192.168.0.0 }
S tímto nastavením omezíme přístup pouze ze segmentu sítě 192.168.*.*. Aby se tato změna konfigurace projevila, musíme restartovat xinetd:
# systemctl restart xinetd
- Náš laboratorní stroj má více než jedno rozhraní. Abychom otestovali výše uvedené omezení, pokusíme se připojit k jednomu rozhraní, které konfigurace xinetd nepovoluje, a k jednomu, které je skutečně povoleno:
# hostname -i fe80::6301:609f:4a45:1591%enp0s3 fe80::6f06:dfde:b513:1a0e%enp0s8 10.0.2.15 192.168.1.14 192.168.122.1
Pokusíme se otevřít připojení ze samotného systému, takže naše zdrojová IP adresa bude stejná jako cíl, ke kterému se pokoušíme připojit. Proto, když se pokusíme připojit k
10.0.2.15
, nesmíme se připojit:# ssh 10.0.2.15 ssh_exchange_identification: read: Connection reset by peer
Zatímco adresa
192.168.1.14
je v povoleném rozsahu adres. Obdržíme výzvu k zadání hesla a můžeme se přihlásit:# ssh 192.168.1.14 [email protected]'s password:
- Vzhledem k tomu, že jsme nezměnili výchozí konfiguraci protokolování, naše pokusy o přihlášení (nebo jinými slovy, pokusy o přístup ke službě xinetd) budou protokolovány do
/var/log/messages
. Záznamy protokolu lze nalézt pomocí jednoduchéhogrep
:cat /var/log/messages | grep xinetd Mar 31 18:30:13 rhel8lab xinetd[4044]: START: ssh pid=4048 from=::ffff:10.0.2.15 Mar 31 18:30:13 rhel8lab xinetd[4048]: FAIL: ssh address from=::ffff:10.0.2.15 Mar 31 18:30:13 rhel8lab xinetd[4044]: EXIT: ssh status=0 pid=4048 duration=0(sec) Mar 31 18:30:18 rhel8lab xinetd[4044]: START: ssh pid=4050 from=::ffff:192.168.1.14
Tyto zprávy usnadňují zjištění, jak se k našim službám přistupovalo. I když existuje mnoho dalších možností (včetně omezení souběžných připojení nebo nastavení časových limitů po neúspěšných připojeních, aby se zabránilo útokům DOS), toto jednoduché nastavení doufejme ukazuje sílu tohoto super-serveru, který může systémovému správci usnadnit život – zejména přeplněný internet. systémy.