Síťová infrastruktura pro domácí prostředí a malé firmy (SOHO) – nastavení sítě

SOHO - TopologiePo fázi plánování nové infrastruktury, pořízení vhodného hardware, jehož konfigurace je specifickou záležitostí, a zajištěním síťového připojení včetně umístění serverů, můžeme přistoupit k instalaci operačních systémů a nastavení veškerých potřebných služeb.

Uvedené příklady se budou zabývat operačním systémem Arch Linux.

Prvotní instalaci Arch Linux vynechám, jelikož není tématem uvedených příkladů. Potřebné informace lze nalézt na internetových stránkách projektu.

Zabývat se ale budu nastavením síťových profilů, otestováním připojení k internetu, nastavením vzdálené správy pomocí SSH a nastavením firewallu.

Centrální server srv-01 – ISP A

Nastavení sítě

Použité softwarové balíčky (přidat při instalaci systému): traceroute whois tcpdump nmap strace openssh nftables net-tools lsof links iputils iptraf-ng iftop iperf iotop inetutils htop conntrack-tools bind-tools ethtool

Od našeho ISP jsme dostali následující údaje, sloužící k připojení k síti Internet:

IP adresa: 192.168.1.253/24
Gateway: 192.168.1.254

Pravděpodobně jsme obdrželi i IP adresy DNS serverů, které můžeme použít při konfiguraci sítě, nebo využijeme DNS servery NIC.CZ. Právě druhou možnost jsem zvolil pro svůj příklad.

Pro nastavení sítě, a služeb pro správu serveru, je nutné mít fyzický přístup k hardware.

Nastavení názvu serveru

Po přihlášení na server nastavíme jeho název:

V ojedinělých případech se může stát, že některé síťové služby mohou při odpojení síťového připojení a nemožnosti přeložit název serveru na IP adresu zkolabovat. Pokud chceme předejít tomuto stavu, provedeme konfiguraci statického překladu v souboru /etc/hosts (přidáme řádek „127.0.1.1 srv-01“ odkazující název serveru na rozhraní loopback).

Ten je využívám při překladech názvů entit na IP adresy a opačně. Tento překlad a případné priority lze řídit v souboru /etc/nsswitch.conf. Tento soubor však není potřeba ve většině případech měnit. Já se k němu ale ještě vrátím při konfiguraci služby Avahi (zeroconf).

Otestujeme překlad názvu srv-01 na IP adresu:

Nastavení síťových rozhraní

Příkazem ip link zjistíme názvy síťových rozhraní, které jsou v systému dostupné:

Pokud máme nainstalován balíček ethtool, můžeme zjistit další podrobnosti o příslušném rozhraní:

Rozhraním, kde bude připojen síťový kabel je eno16777736. Konfigurační soubory pro službu netctl, starající se o nastavení těchto rozhraní, se nachází v adresáři /etc/netctl/. Pokud se chceme podívat na některé příklady, jsou umístěny v /etc/netctl/examples/.
Pro náš příklad využijeme příkaz netctl edit eno16777736 a vytvoříme novou konfiguraci (profil) pojmenovaný po síťovém rozhraní.

IP adresu (Address) a bránu (Gateway) nahradíme údaji od našeho poskytovatele připojení. Řádek DNS osahuje IP adresy DNS serverů NIC.CZ. Parametry DNSDomain a DNSSearch slouží pro generování řádků domain (místní doménové jméno) a search (seznam domén, které jsou prohledány při použití funkce gethostname) v souboru /etc/resolv.conf.

Po ukončení editoru profil povolíme příkazem netctl enable eno16777736. Seznam všech dostupných profilů, včetně těch aktivních získáme příkazem netctl list (aktivní jsou označeny hvězdičkou).
Chceme-li rozhraní spustit, provedeme tak příkazem netctl start eno16777736. V případě problémů využijeme systémového žurnálu (log), a ten zobrazíme journalctl -u netctl@eno16777736.service.

Test připojení

Máme-li rozhraní spuštěno a připojen správný síťový kabel, zkusíme připojení.

Hardwarové vlastnosti rozhraní (zajímá nás poslední řádek „Link detected: yes“):

Přiřazené IP adresy:

Aktuální směrovací tabulka v jádře:

IPv4 a IPv6 parametry (byť jsme IPv6 nenastavovali):

Překlad názvu NIC.CZ na IP adresu:

Dostupnost serveru NIC.CZ – ICMP ping, traceroute:

Nastavení správy přes SSH

Pokud bychom již nechtěli do serverovny k poskytovateli připojení/hostingu chodit musíme nastavit možnost vzdálené správy. V systémech UNIX se k tomuto účelu používá zejména služba SSH (OpenSSH).

Z bezpečnostních důvodů zakážeme přístup uživatele root a přidáme nového. Dalším krokem je změna výchozího portu 22/tcp, na kterém služba SSH naslouchá.

Přidání uživatele pro vzdálený přístup

Nové uživatelské konto budeme pro vzdálený přístup používat místo standardního konta root. Jméno si můžeme zvolit důležité je dodržovat zažité zvyklosti (viz man useradd). Uživatel bude součástí skupiny wheel, která opravňuje použít příkaz su - pro změnu identity na uživatele root.

Nastavíme heslo nového uživatele rmtuser:

Nastavíme SSH a službu aktivujeme

Veškerá nastavení služby SSH se provádí v souboru /etc/ssh/sshd_config. Výchozí port 22/tcp změníme na libovolný jiný, např. 23811. Nicméně si ověříme, že není uveden v souboru /etc/services. To proto, že tento soubor obsahuje seznam obecně známých služeb a je velice pravděpodobné, že při případném scanování (viz nmap) bude tento port nalezen jako otevřený, a případný útočník se na něj zaměří.

Ověříme, zda není port využíván některou z běžících služeb.

Náš nový port, 23811/tcp, soubor /etc/services neobsahuje a žádná jiná služba jej nepoužívá, nic tedy nebrání jej použít.
V souboru /etc/ssh/sshd_config změníme řádek #Port 22 na Port 23811#PermitRootLogin no na PermitRootLogin no. Přidáme řádek povolující přihlášení našeho nového uživatele:

Do souboru /etc/services můžeme přidat (ale není to nutné):

Nyní můžeme nastartovat službu SSH, a povolit ji:

Ověříme spuštění služby SSH naslouchající na správném portu:

Firewall

Pro zvýšení zabezpečení serveru nastavíme firewall nftables. Konfigurace je uložena v souboru /etc/nftables.conf.

Zkusíme nastartovat firewall:

Následně se pokusíme z nějakého jiného počítače přihlásit přes SSH novým uživatelským účtem (viz konfigurace SSH) a ověříme funkci:

Pokud je vše v pořádku, povolíme nftables:

Centrální server srv-02 – ISP B

Nastavení serveru srv-02 je shodné se srv-01. Pouze musíme změnit IP adresu síťového rozhraní (máme opět od ISP) a název serveru (na srv-02).

Lokalita Praha – internetová brána gw-01

Nastavení sítě

Použité softwarové balíčky (přidat při instalaci systému): traceroute whois tcpdump nmap strace openssh nftables net-tools lsof links iputils iptraf-ng iftop iperf iotop inetutils htop conntrack-tools bind-tools ethtool

Internetová brána bude z bezpečnostních důvodů obsahovat pouze minimální množství služeb.

IP adresa: 172.16.1.1/24
Gateway: 172.16.1.254
Rozhraní do internetu nemusí mít veřejnou IP adresu. Ve většině případů bude internetová brána umístěna za technologií NAT.

IP adresa v interní síti: 10.11.1.253/24

Nastavení názvu serveru

V souboru /etc/hosts přidáme řádek „127.0.1.1 gw-01“ odkazující název serveru na rozhraní loopback.

Rozhraním, kde bude připojen síťový kabel do internetu je eno16777736. Pro náš příklad využijeme příkaz netctl edit eno16777736 a vytvoříme novou konfiguraci (profil) pojmenovaný po síťovém rozhraní.

Po ukončení editoru profil povolíme příkazem netctl enable eno16777736. Chceme-li rozhraní spustit, provedeme tak příkazem netctl start eno16777736.

Rozhraním, kde bude připojen síťový kabel do interní sítě je eno33554976. Pro náš příklad využijeme příkaz netctl edit eno33554976 a vytvoříme novou konfiguraci (profil) pojmenovaný po síťovém rozhraní.

Bránu a informace o DNS nebudeme vyplňovat. Po ukončení editoru profil aktivujeme příkazem netctl enable eno33554976. Chceme-li rozhraní spustit, provedeme tak příkazem netctl start eno33554976.

Povolíme směrování paketů mezi siťovými rozhraními. To provedeme vytvořením souboru /etc/sysctl.d/40-ip-forward.conf s obsahem:

Můžeme ihned aktivovat příkazem:

Test připojení

Rozhraní eno16777736 (do internetu) otestujeme stejně jako v případě centrálních serverů.
Rozhraní eno33554976 (do interní sítě) zatím testovat nebudeme.

Nastavení správy přes SSH

Službu SSH můžeme nechat ve výchozí konfiguraci. Jen ji zaktivujeme a nastartujeme:

Pro přístup můžeme používat uživatelský účet root, nebo vytvoříme uživatele pro vzdálený přístup jako v případě centrálních serverů. Přístup bude povolen pouze z interní sítě. Z internetu bude zakázán.

Firewall

Jelikož se jedná o zařízení oddělující síť Internet a naši místní síť, musíme nastavit firewall s funkcionalitou NAT. Konfigurace je uložena v souboru /etc/nftables.conf.

Ve výchozím stavu je provoz iniciovaný z internetu, kromě ICMP, zakázán.

Firewall povolíme a nastartujeme:

Lokalita Praha – místní server net-01

Nastavení sítě

Použité softwarové balíčky (přidat při instalaci systému): traceroute whois tcpdump nmap strace openssh nftables net-tools lsof links iputils iptraf-ng iftop iperf iotop inetutils htop conntrack-tools bind-tools ethtool

IP adresa: 10.11.1.253/24
Gateway: 10.11.1.254

Nastavení názvu serveru

V souboru /etc/hosts přidáme řádek „127.0.1.1 net-01“ odkazující název serveru na rozhraní loopback.

Rozhraním, kde bude připojen síťový kabel do internetu je eno16777736. Pro náš příklad využijeme příkaz netctl edit eno16777736 a vytvoříme novou konfiguraci (profil) pojmenovaný po síťovém rozhraní.

Po ukončení editoru profil povolíme příkazem netctl enable eno16777736. Chceme-li rozhraní spustit, provedeme tak příkazem netctl start eno16777736.

Test připojení

Rozhraní eno16777736 otestujeme stejně jako v případě centrálních serverů. V tuto chvíli bychom měli mít přístup do internetu zajištěný přes internetovou bránu gw-01.

Nastavení správy přes SSH

Službu SSH můžeme nechat ve výchozí konfiguraci. Jen ji povolíme a nastartujeme:

Pro přístup můžeme používat uživatelský účet root, nebo vytvoříme uživatele pro vzdálený přístup jako v případě centrálních serverů.

Firewall

Nepoužíváme.

Lokalita Bern – internetová brána gw-02

Nastavení internetové brány gw-02 je shodné s gw-01. Pouze musíme změnit IP adresy síťového rozhraní do internetu (máme opět od ISP) a místní sítě, název serveru (na gw-02) a u síťového profilu rozhraní eno16777736 řádek DNSDomain='praha.my-own-domain.net' na DNSDomain='bern.my-own-domain.net'.

Lokalita Bern – místní server net-02

Nastavení místního serveru net-02 je shodné s net-01. Pouze musíme změnit IP adresu síťového rozhraní do místní sítě, název serveru (na net-02) a u síťového profilu rozhraní eno16777736 řádek DNSDomain='praha.my-own-domain.net' na DNSDomain='bern.my-own-domain.net'.

Příště…

Pustíme se do nastavování dalších služeb potřebných pro síťový provoz, kterými jsou VPN a DNS.

2 komentáře u „Síťová infrastruktura pro domácí prostředí a malé firmy (SOHO) – nastavení sítě

  1. Pingback: Jak jsem nasadil IPv6 | brichacek.net

  2. Pingback: Zajimave cteni | Blog J.Z. na NAS4y.NET

Leave a Reply