GNU/Linux >> Znalost Linux >  >> Panels >> Webmin

Síťové služby a protokoly

Tato kapitola se zabývá superservery inetd a xinetd , které jsou v případě potřeby zodpovědné za spouštění serverů pro protokoly jako telnet a FTP.

Obsah

Úvod do internetových služeb

Silně používané síťové služby, jako je e-mail, proxing a webové služby, jsou spravovány serverovými procesy, které běží nepřetržitě a mají své vlastní komplexní konfigurační soubory a moduly Webmin. Existují však další služby, jako je telnet, finger a POP, které nepotřebují žádnou konfiguraci a nepotřebují vlastní trvalý serverový proces. Místo toho jejich servery v případě potřeby spouští superserver jako inetd nebo xinetd, který naslouchá síťovým připojením na více portech. Teprve když přijme spojení, spustí příslušný proces pro komunikaci s klientem, který se po uzavření spojení ukončí. To šetří paměť tím, že omezuje počet procesů spuštěných v jednom okamžiku, ale zpracování nových připojení mírně zpomaluje.

Každá služba má krátký název jako telnet nebo pop3, číslo portu jako 23 nebo 110 a protokol jako TCP nebo UDP. Soubor /etc/services obsahuje seznam všech názvů služeb a jejich odpovídajících čísel portů, o kterých váš systém ví, přičemž pouze na některých z nich může naslouchat superserver nebo jiný server.

Nejčastěji používaným superserverem je inetd, který používají téměř všechny distribuce Linuxu a varianty Unixu. Všechna nastavení serveru jsou uložena v konfiguračním souboru /etc/inetd.conf. Kromě spouštění serverů v reakci na připojení TCP a UDP může podobným způsobem zpracovávat také volání funkcí RPC (remote procedure call). Jedním z hlavních nedostatků inetd je jeho neschopnost odmítnout připojení v závislosti na IP adrese klienta. To však lze překonat použitím zprostředkujícího serverového programu TCP-wrappers, který má svůj vlastní konfigurační soubor řízení přístupu IP.

Dalším superserverem, který získává na popularitě a má více funkcí, je xinetd, který používá konfigurační soubor /etc/xinetd.conf a někdy i další soubory v adresáři /etc/xinetd.d. Stejně jako inetd může spouštět serverové procesy v reakci na připojení TCP a UDP, ale nepodporuje RCP. Jeho hlavní výhodou je vestavěná podpora pro omezení připojení na určité klientské IP adresy bez nutnosti zvlášť konfigurovaného programu. Může také přesměrovat příchozí připojení na určitých portech na jiného hostitele a port vytvořením vlastního klientského připojení a předáváním dat tam a zpět.

Protože inetd a xinetd mají zcela odlišné konfigurační soubory a formáty souborů, existuje samostatný modul Webmin pro konfiguraci každého z nich. Většina linuxových distribucí se bude dodávat s jedním nebo oběma, ale v některých případech je možné nainstalovat a koexistovat obě. Jediným omezením je, že nemohou oba poslouchat na stejném portu současně.

Modul síťových služeb a protokolů

Tento modul se zabývá konfigurací inetd a lze jej nalézt v kategorii Networking ve Webminu. Pokud ikona není vidět, Webmin zjistil, že není nainstalována. Může to být proto, že vaše distribuce místo toho používá xinetd, v takovém případě byste měli přeskočit dolů do sekce „Modul rozšířených internetových služeb“. Pokud ani jeden modul není viditelný, zkontrolujte své distribuční CD nebo webovou stránku, zda neobsahuje balíček inetd nebo xinetd.

Hlavní stránka modulu (zobrazená na obrázku 15-1) zobrazuje dvě tabulky, jednu pro Internetové služby které reagují na připojení TCP nebo UDP a jeden pro programy RCP . V Internetových službách v sekci jsou zobrazeny názvy a protokoly všech služeb – v některých případech může být stejná služba rozpoznána pro více než jeden protokol. Každá služba může být v jednom ze tří stavů označených písmem, ve kterém je její název zobrazen:

Povoleno (tučně) K této službě byl přiřazen serverový program, který je aktuálně aktivní.
Zakázáno (tučně kurzívou) Program serveru byl přiřazen, ale není aktivní. To odpovídá zakomentovanému záznamu v souboru inetd.conf.
Nepřiřazeno (normální) K této službě nebyl přiřazen žádný serverový program, což znamená, že pro ni neexistuje žádný záznam inetd.conf.

Pokud je možnost konfigurace modulu Zobrazit služby bez programu bylo nastaveno na Ne , služby v nepřiřazeném stavu se nezobrazí. Toto je výchozí nastavení u některých operačních systémů kvůli velkému počtu služeb, o kterých systém ví.

Většina distribucí Linuxu je standardně dodávána s téměř všemi službami v deaktivovaném stavu. To omezuje počet zbytečných služeb, ke kterým váš systém umožňuje připojení, a snižuje tak možnost zneužití bezpečnostní díry v jednom ze serverových programů útočníkem.

Hlavní stránka modulu Internetové služby a protokoly

Protože je každá služba zobrazena pouze s krátkým názvem, jako je telnet nebo chargen, nezkušenému správci není zřejmé, co každá z nich dělá. Některé z běžněji používaných služeb a jejich účely jsou:

Denní, echo a účtované služby pro protokoly TCP i UDP jsou zpracovávány interně inetd, pokud jsou povoleny, nikoli samostatným serverovým programem.

Povolení internetové služby

Pokud chcete uživatelům umožnit vyzvedávání pošty z vašeho systému pomocí protokolu POP3 nebo přihlášení přes telnet, je nutné zapnout příslušnou internetovou službu, pokud není aktuálně povolena. Chcete-li to provést, postupujte takto :

  1. Na hlavní stránce modulu klikněte na název služby, kterou chcete povolit v Internetových službách stůl. Tím se dostanete na stránku zobrazenou na obrázku 15-2, kde můžete upravit její podrobnosti. Pokud se ve vašem systému nezobrazují nepřiřazené služby, můžete zadat název služby a vybrat protokol do polí vedle položky Upravit službu knoflík. Kliknutím na tlačítko se dostanete do editačního formuláře za předpokladu, že je název služby rozpoznán.
  2. Název služby , Číslo portu , Protokol a Aliasy pole by měla zůstat nezměněna, pokud nechcete službu přejmenovat nebo změnit port, na kterém naslouchá. U služeb, které jste sami nevytvořili, je změna kteréhokoli z těchto polí špatný nápad, protože to může zabránit programům ve vašem systému připojovat se k jiným serverům.
  3. V Serverovém programu v části, chcete-li službu povolit, vyberte Program povolen volba. Pokud je Program zakázán byla vybrána dříve, všechna ostatní nastavení v sekci by měla být správná a nebude nutné je měnit. Pokud však Není přiřazen žádný program byl vybrán dříve, budete muset vybrat serverový program a uživatele, pod kterým bude server běžet. Vyberte Program pole Příkaz a do pole vedle zadejte úplnou cestu k programu serveru, například /usr/sbin/in.ftpd. V Args zadejte znovu příkaz serveru a všechny potřebné argumenty, například in.ftpd –l –a. I když je cesta programu v Příkazu Název programu se musí objevit v poli Args pole také. Do Spustit jako uživatel budete muset zadat uživatele, aby se serverový program spouštěl jako pole. Pro téměř všechny servery to bude root. Jeden z režimu čekání musí být také nastaveny možnosti – pokud server neběží a nespouští se velmi rychle, zvolte Nečekat . Některé služby, jako je den, echo, nabíjení a vyhazování, jsou poskytovány interně inetd. Pokud povolujete jeden z nich, stačí vybrat Interní pro inetd . Není třeba zadávat žádný program ani argumenty a uživatel, kterého server spouští, je irelevantní.
  4. Až budete hotovi, klikněte na tlačítko Uložit. Dokud se nevyskytnou žádné chyby a zvolený serverový program skutečně existuje, prohlížeč se vrátí na seznam služeb na hlavní stránce.
  5. Klikněte na tlačítko Použít změny tlačítko v dolní části stránky, aby se vaše změny aktivovaly.
Figure 15-2 “Editing an internet service” 

V některých případech nebudete moci povolit službu, protože příslušný serverový program ještě není nainstalován. V takovém případě použijte modul Software Packages k instalaci z vašeho distribučního CD nebo webové stránky Linuxu.

Pokud chcete službu zakázat, postupujte podle stejných kroků, ale vyberte možnost Program zakázán možnost místo toho. Je to lepší než zvolit Žádný přiřazený program protože je snadné službu znovu zapnout, aniž byste museli znovu zadávat podrobnosti o programu serveru.

Vytvoření vlastní internetové služby

V některých situacích můžete chtít přidat do systému nový server, který naslouchá na portu, který není přiřazen k ničemu jinému. Možná budete chtít spustit telnet server na nějakém nestandardním portu nebo přesměrovat provoz z jednoho portu ve vašem systému na jiný server pomocí programu jako nc. Pokud se právě pokoušíte zapnout nějakou standardní službu, jako je ftp nebo imap, pokyny v této části nejsou pro vás – podívejte se místo toho na část „Povolení internetové služby“.

Postup vytvoření nové služby:

  1. Na hlavní stránce modulu klikněte na odkaz *Vytvořit novou internetovou službu*. Tím se dostanete do formuláře vytvoření služby, který je podobný editačnímu formuláři na obrázku 15-2.
  2. Vyplňte Název služby pole s jedinečným názvem vaší služby.
  3. Do pole Číslo portu zadejte číslo portu, ke kterému má být služba přidružena pole.
  4. Vyberte protokol z Protokol seznam. Téměř vždy to bude TCP, ale v některých případech možná budete muset použít UDP.
  5. Do Aliasů zadejte jakékoli alternativní názvy, pod kterými se má služba odkazovat. pole.
  6. Za předpokladu, že chcete mít k této službě přidružen serverový program, vyberte Program povolen možnost v Serverovém programu sekce. Jinak bude vytvořeno pouze spojení mezi názvem služby a číslem portu.
  7. Pro Program vyberte Příkaz a do pole vedle zadejte úplnou cestu k programu serveru – například /usr/local/bin/someserver. V Args zadejte název programu a všechny argumenty příkazového řádku, se kterými by měl být spuštěn, například someserver –foo. Chcete-li uvést další příklad, pokud chcete vytvořit službu, která zobrazí všechny procesy běžící na vašem systému komukoli, kdo se připojil přes telnet, můžete nastavit Příkaz do /bin/ps a Args na ps auxwww. Z bezpečnostního hlediska by to však byl špatný nápad.
  8. Pokud bude spuštění programu serveru trvat déle než sekundu nebo pokud přijímá jakýkoli vstup, nastavte režim čekání v poli Nečekejte . Jinak inetd přestane zpracovávat nová síťová připojení, dokud program neskončí. Jedinou výhodou tohoto je Počkejte na dokončení režimu je mírné snížení využití paměti.
  9. Do pole Spustit jako uživatel zadejte uživatelské jméno uživatele systému Unix, pod kterým má program serveru běžet. pole. Obvykle je to root, ale může to být kdokoli.
  10. Chcete-li omezit rychlost, jakou bude inetd přijímat připojení pro vaši službu, zadejte číslo do pole Max za minutu pole. Při překročení limitu budou následující spojení odmítnuta až do další minuty.
  11. Ve výchozím nastavení je skupina, pod kterou serverový program běží, primární skupinou uživatele nastavenou v Spustit jako uživatel pole. Chcete-li to změnit, zadejte název skupiny do Spustit jako skupinu pole.
  12. Klikněte na tlačítko Vytvořit tlačítko pro vytvoření vaší služby. Dokud ve formuláři nebudou žádné chyby, budete vráceni zpět do seznamu služeb na hlavní stránce.
  13. Klikněte na tlačítko Použít změny tlačítko pro aktivaci služby.

Jakmile je služba vytvořena, můžete ji otestovat spuštěním telnet localhost číslo portu na příkazovém řádku ve vašem systému. Svou službu můžete kdykoli upravit kliknutím na její název na hlavní stránce a změnou kterékoli z možností před kliknutím na Uložit – nebo Smazat jestli se toho chceš zbavit. Po provedení jakýchkoli úprav Použít změny k jejich aktivaci je nutné použít tlačítko

Vytváření a úpravy programů RPC

RPC je protokol a datový formát, který je základem pro další protokoly, jako je NFS a NIS. Klienti RPC volají funkce na servery RPC, předávají parametry a získávají zpět výsledky. Pro klienta nebo server není vzdálené volání procedury o nic obtížnější než volání normální funkce knihovny, což je psaní programů, které používají RPC, mnohem jednodušší než vytváření vlastního protokolu od začátku.

Program RPC je sada funkcí, které jsou zpracovávány serverem. Každý program má jedinečné číslo, podobné portu internetové služby. Programy nejsou spojeny s konkrétním protokolem, protože mohou obecně přijímat připojení a volání funkcí přes UDP nebo TCP. Nemá ani pevný port, protože jsou v případě potřeby přidělovány dynamicky.

Servery RPC (jako jsou servery NIS a NFS), které zpracovávají velké množství provozu, mají své vlastní procesy, které běží neustále. Některé servery, které je třeba spouštět jen občas, však může inetd spouštět pouze v případě potřeby – stejně jako u málo používaných internetových služeb. Některé z běžněji používaných programů RPC jsou:

Na některých systémech mohou být tyto programy RPC zpracovávány servery, které nejsou spouštěny z inetd, ale jako samostatné procesy. V takovém případě je modul Bootup and Shutdown (vysvětlený v kapitole 9) místem, kde jej aktivovat nebo deaktivovat. Kvůli malému počtu běžných RPC programů a jejich omezené užitečnosti nemá mnoho linuxových distribucí ve výchozím nastavení žádné programy povolené nebo zakázané v konfiguraci inetd. To však není případ jiných operačních systémů, jako je Solaris.

Pokud chcete používat protokol RPC, který není aktuálně povolen, můžete jej zapnout pomocí tohoto modulu. Samozřejmě musí být nejprve nainstalován příslušný program serveru RPC a inetd ve vašem systému musí podporovat programy RPC. Pokud ano, postupujte takto:

  1. Na hlavní stránce modulu klikněte na název programu z Programy RPC stůl. Tím se dostanete do formuláře pro úpravu programu znázorněného na obrázku 15-3.
  2. V rámci Serverového programu vyberte možnost *Program povolen*. Pokud je Program zakázán byla vybrána dříve, všechna ostatní nastavení v sekci by měla být správná a nebude nutné je měnit. Pokud však Není přiřazen žádný program bylo zaškrtnuto, budete muset vyplnit několik dalších polí. Verze RPC pole by mělo být nastaveno na rozsah verzí, které serverový program podporuje, například 1_ – _3 . Pole *Typ zásuvky* by mělo být nastaveno na Datagram a protokol pole nastaveno pouze na udp volba. Pro Serverový program zadejte úplnou cestu k programu RPC, například /usr/sbin/rpc.rusersd. Pro Příkaz pole, etner název programu a případné argumenty, například rpc.rusersd –a. Pro režim čekání , vyberte *Nečekejte*. Do pole Spustit jako uživatel zadejte uživatelské jméno, pod kterým chcete spustit program serveru – obvykle root.
  3. Po dokončení klikněte na tlačítko Uložit knoflík. Pokud ve vašem zadání nejsou žádné chyby, vrátíte se na hlavní stránku modulu, kde by se měl program RPC objevit jako povolený.
  4. Klikněte na tlačítko Použít změny tlačítko pro aktivaci programu.
Figure 15-3 “The RPC program editing form” 

Konfigurace modulu Internetové služby a protokoly

Pro přístup ke konfigurovatelným možnostem modulu Internet Services klikněte na Modul Config odkaz v levém horním rohu jeho hlavní stránky. Tím se dostanete do standardního konfiguračního formuláře, ve kterém můžete změnit následující možnosti:

Zbývající možnosti konfigurace modulu pod Konfigurace systému jsou automaticky nastaveny Webminem na základě typu vašeho operačního systému, a proto by se neměly měnit.

Další operační systémy

Téměř všechny verze Unixu obsahují inetd jako standard a používají jej ke spouštění serverových programů, které se nespouštějí často, stejně jako Linux. Formát jeho konfiguračního souboru a možnosti se však v jiných operačních systémech mírně liší, což znamená, že uživatelské rozhraní modulu nebude úplně stejné. Na hlavní stránce se vždy zobrazí seznamy internetových a RPC služeb, ale při úpravách nebo vytváření služby budou k dispozici různá pole a možnosti v závislosti na verzi Unixu, kterou používáte:

Sun Solaris
Při úpravách internetové služby se zobrazí *Max za minutu* a Spustit jako skupina pole nejsou k dispozici. - Solaris verze 8 a vyšší podporují protokoly IPv6 TCP a UDP a také standardní IPv4, který Linux používá. - Mnoho služeb RPC ve výchozím nastavení existuje ve vypnutém stavu, například kvóty NFS a zamykání.
FreeBSD
Služby RPC nemohou mít přiřazené programy. Jediné, co můžete udělat, je upravit názvy služeb a čísla programů. – Při úpravách nebo vytváření služby můžete pomocí Max Child Processes ovládat počet serverových programů, které mohou být kdykoli aktivní. pole. - Při úpravách můžete také nastavit třídu přihlášení, kterou serverový program spouští, pomocí Spustit jako třídu přihlášení pole.
NetBSD
Stejně jako na FreeBSD jsou pole *Max Child Processes a *Execute as Login Class* dostupná při úpravách nebo vytváření služby. - Stejně jako u Solarisu mohou internetové služby používat protokoly IPv6 TCP a UDP.

OpenBSD , Compaq Tru64/OSF1 , IBM AIX , SCO OpenServer a SCO UnixWare

Stejně jako na Solarisu, *Max za minutu a Pole Spustit jako skupinu nejsou k dispozici.
SGI Irix
Maximum za minutu a Spustit jako skupina pole nejsou k dispozici při úpravě služby. - Pod serverovým programem Command je další zaškrtávací políčko pole označené *Příkaz nemusí existovat?*, že pokud set řekne inetd, aby ignoroval službu, pokud není nainstalován program serveru. Ve výchozím nastavení je tato možnost zapnuta pro mnoho služeb souvisejících s balíčky Irix, které nejsou ve výchozím nastavení nainstalovány.
HP/UX
Na HP/UX má modul úplně stejné možnosti jako Linux.
Apple MacOS X
Stejně jako v systému Solaris nejsou pole *Max za minutu a *Provést jako skupinu* k dispozici. - Služby RPC nemohou mít přiřazeny programy, jako na FreeBSD. - Místo souboru /etc/services používaného k ukládání názvů služeb a portů jsou v tabulce NetInfo. Webmin vypíše a znovu načte tuto tabulku, aby bylo možné číst a upravovat služby.

Webmin
  1. Jak používat protokoly SSH a SFTP ve vaší domácí síti

  2. Základy Linuxu – Statická IP a konfigurace sítě na Debian Linuxu

  3. Posilování VPN:Co to je a jak na to

  1. Odstraňování problémů se sítí Linux a ladění?

  2. Multipass, Virt-Manager a Bridged Network?

  3. Warpinator – odesílání a přijímání souborů přes síť

  1. Jak na to:MTR – Pochopení a řešení problémů se síťovým připojením

  2. Testování síťových služeb pomocí Netcat

  3. Jak restartovat síťové služby v CentOS/RHEL 8