Po 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:
1 |
[root@arch ~]# hostnamectl set-hostname srv-01 |
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).
1 2 3 4 5 6 7 8 9 10 11 |
# # /etc/hosts: static lookup table for host names # # 127.0.0.1 localhost.localdomain localhost ::1 localhost.localdomain localhost 127.0.1.1 srv-01 # End of file |
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:
1 2 3 4 5 |
[root@srv-01 ~]# ping srv-01 PING srv-01 (127.0.1.1) 56(84) bytes of data. 64 bytes from srv-01 (127.0.1.1): icmp_seq=1 ttl=64 time=0.086 ms 64 bytes from srv-01 (127.0.1.1): icmp_seq=2 ttl=64 time=0.038 ms ^C |
Nastavení síťových rozhraní
Příkazem ip link
zjistíme názvy síťových rozhraní, které jsou v systému dostupné:
1 2 3 4 5 6 7 |
[root@srv-01 ~]# ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 3: eno16777736: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 00:0c:29:bd:07:3f brd ff:ff:ff:ff:ff:ff 4: eno33554976: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 00:0c:29:bd:07:49 brd ff:ff:ff:ff:ff:ff |
Pokud máme nainstalován balíček ethtool, můžeme zjistit další podrobnosti o příslušném rozhraní:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
[root@srv-01 ~]# ethtool eno16777736 Settings for eno16777736: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: Unknown! Duplex: Unknown! (255) Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: Unknown (auto) Supports Wake-on: d Wake-on: d Current message level: 0x00000007 (7) drv probe link Link detected: no |
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í.
1 2 3 4 5 6 7 8 9 |
Description='Sitove rozhrani eno16777736 pro pristup do internetu' Interface=eno16777736 Connection=ethernet IP=static Address='192.168.1.253/24' Gateway='192.168.1.254' DNS=('217.31.204.130' '193.29.206.206') DNSDomain='my-own-domain.net' DNSSearch='local.my-own-domain.net my-own-domain.net praha.my-own-domain.net bern.my-own-domain.net' |
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“):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
[root@srv-01 netctl]# ethtool eno16777736 Settings for eno16777736: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: off (auto) Supports Wake-on: d Wake-on: d Current message level: 0x00000007 (7) drv probe link Link detected: yes |
Přiřazené IP adresy:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@srv-01 ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:bd:07:3f brd ff:ff:ff:ff:ff:ff inet 192.168.1.253/24 brd 192.168.1.255 scope global eno16777736 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:febd:73f/64 scope link valid_lft forever preferred_lft forever |
Aktuální směrovací tabulka v jádře:
1 2 3 |
[root@srv-01 ~]# ip route default via 192.168.1.254 dev eno16777736 192.168.1.0/24 dev eno16777736 proto kernel scope link src 192.168.1.253 |
IPv4 a IPv6 parametry (byť jsme IPv6 nenastavovali):
1 2 3 4 5 6 7 8 9 |
[root@srv-01 ~]# ip netconf ipv4 dev lo forwarding off rp_filter off mc_forwarding 0 proxy_neigh off ipv4 dev eno16777736 forwarding off rp_filter strict mc_forwarding 0 proxy_neigh off ipv4 all forwarding off rp_filter strict mc_forwarding 0 proxy_neigh off ipv4 default forwarding off rp_filter strict mc_forwarding 0 proxy_neigh off ipv6 dev lo forwarding off proxy_neigh off ipv6 dev eno16777736 forwarding off proxy_neigh off ipv6 all forwarding off proxy_neigh off ipv6 default forwarding off proxy_neigh off |
Překlad názvu NIC.CZ na IP adresu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
[root@srv-01 ~]# dig nic.cz ; <<>> DiG 9.10.2-P2 <<>> nic.cz ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41056 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 7 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;nic.cz. IN A ;; ANSWER SECTION: nic.cz. 1137 IN A 217.31.205.50 ;; AUTHORITY SECTION: nic.cz. 1049 IN NS a.ns.nic.cz. nic.cz. 1049 IN NS d.ns.nic.cz. nic.cz. 1049 IN NS b.ns.nic.cz. ;; ADDITIONAL SECTION: a.ns.nic.cz. 737 IN A 194.0.12.1 a.ns.nic.cz. 737 IN AAAA 2001:678:f::1 b.ns.nic.cz. 554 IN A 194.0.13.1 b.ns.nic.cz. 737 IN AAAA 2001:678:10::1 d.ns.nic.cz. 554 IN A 193.29.206.1 d.ns.nic.cz. 537 IN AAAA 2001:678:1::1 ;; Query time: 0 msec ;; SERVER: 217.31.204.130#53(217.31.204.130) ;; WHEN: Sat Jul 18 07:44:07 CEST 2015 ;; MSG SIZE rcvd: 234 |
Dostupnost serveru NIC.CZ – ICMP ping, traceroute:
1 2 3 4 5 |
[root@srv-01 ~]# ping nic.cz PING nic.cz (217.31.205.50) 56(84) bytes of data. 64 bytes from www.nic.cz (217.31.205.50): icmp_seq=1 ttl=55 time=20.6 ms 64 bytes from www.nic.cz (217.31.205.50): icmp_seq=2 ttl=55 time=15.2 ms ^C |
1 2 3 4 5 6 7 8 |
[root@srv-01 ~]# traceroute nic.cz traceroute to nic.cz (217.31.205.50), 30 hops max, 60 byte packets 1 gateway (192.168.1.254) 0.247 ms 0.210 ms 0.187 ms 2 * * * 3 192.168.18.1 (192.168.18.1) 3.025 ms 5.200 ms 10.162 ms 4 192.168.0.1 (192.168.0.1) 10.144 ms 10.767 ms 19.555 ms 5 * * * 6 nix4-s.nic.cz (91.210.16.3) 15.624 ms 16.527 ms 38.436 ms |
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.
1 |
[root@srv-01 ~]# useradd --create-home --groups wheel rmtuser |
Nastavíme heslo nového uživatele rmtuser:
1 2 3 4 |
[root@srv-01 ~]# passwd rmtuser Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully |
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ěří.
1 2 |
[root@srv-01 ~]# grep 23811 /etc/services [root@srv-01 ~]# |
Ověříme, zda není port využíván některou z běžících služeb.
1 2 |
[root@srv-01 ~]# netstat -ltpn | grep ":23811" [root@srv-01 ~]# |
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
a #PermitRootLogin no
na PermitRootLogin no
. Přidáme řádek povolující přihlášení našeho nového uživatele:
1 |
AllowUsers rmtuser |
Do souboru /etc/services
můžeme přidat (ale není to nutné):
1 |
ssh 23811/tcp |
Nyní můžeme nastartovat službu SSH, a povolit ji:
1 2 3 |
[root@srv-01 ~]# systemctl enable sshd Created symlink from /etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.service. [root@srv-01 ~]# systemctl start sshd |
Ověříme spuštění služby SSH naslouchající na správném portu:
1 2 3 4 5 |
[root@srv-01 ~]# netstat -ltpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:23811 0.0.0.0:* LISTEN 326/sshd tcp6 0 0 :::23811 :::* LISTEN 326/sshd |
Firewall
Pro zvýšení zabezpečení serveru nastavíme firewall nftables. Konfigurace je uložena v souboru /etc/nftables.conf
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
#!/usr/bin/nft -f table inet filter { chain input { type filter hook input priority 0; iif lo accept iifname != lo ip daddr 127.0.0.1/8 counter drop tcp flags & (fin|syn) == (fin|syn) drop tcp flags & (syn|rst) == (syn|rst) drop tcp flags & (fin|syn|rst|psh|ack|urg) < (fin) drop tcp flags & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) drop iif eno16777736 ip daddr 224.0.0.0/8 counter drop iif eno16777736 ip daddr 239.192.0.0/16 counter drop ct state {established, related} counter accept ct state invalid counter drop ip protocol icmp limit rate 10/second counter accept ip protocol icmp counter drop ip6 nexthdr icmpv6 counter accept # Sluzba SSH: max. 15 pripojeni za minutu, pokusy logovat tcp dport 23811 limit rate 15/minute log prefix "SSH::ACPT: " counter accept counter reject with icmp type port-unreachable } chain forward { counter drop } chain output { counter accept } } # vim:set ts=2 sw=2 et: |
Zkusíme nastartovat firewall:
1 |
[root@srv-01 etc]# systemctl start nftables |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
[root@srv-01 etc]# nft list ruleset table inet filter { chain input { type filter hook input priority 0; iif lo accept iifname != "lo" ip daddr 127.0.0.0/8 counter packets 0 bytes 0 drop tcp flags & (fin | syn) == fin | syn drop tcp flags & (syn | rst) == syn | rst drop tcp flags & (fin | syn | rst | psh | ack | urg) < fin drop tcp flags & (fin | syn | rst | psh | ack | urg) == fin | psh | urg drop iif eno16777736 ip daddr 224.0.0.0/8 counter packets 0 bytes 0 drop iif eno16777736 ip daddr 239.192.0.0/16 counter packets 0 bytes 0 drop ct state { related, established} counter packets 481 bytes 35028 accept ct state invalid counter packets 0 bytes 0 drop ip protocol icmp limit rate 10/second counter packets 0 bytes 0 accept ip protocol icmp counter packets 0 bytes 0 drop ip6 nexthdr ipv6-icmp counter packets 0 bytes 0 accept tcp dport 23811 limit rate 15/minute log prefix "SSH::ACPT: " counter packets 1 bytes 52 accept counter packets 42 bytes 3490 reject } chain forward { counter packets 0 bytes 0 drop } chain output { counter packets 0 bytes 0 accept } } |
Pokud je vše v pořádku, povolíme nftables:
1 2 |
[root@srv-01 etc]# systemctl enable nftables Created symlink from /etc/systemd/system/multi-user.target.wants/nftables.service to /usr/lib/systemd/system/nftables.service. |
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
1 |
[root@arch ~]# hostnamectl set-hostname gw-01 |
V souboru /etc/hosts
přidáme řádek „127.0.1.1 gw-01“ odkazující název serveru na rozhraní loopback.
1 2 3 4 5 6 7 8 9 10 |
# # /etc/hosts: static lookup table for host names # # 127.0.0.1 localhost.localdomain localhost ::1 localhost.localdomain localhost 127.0.1.1 gw-01 # End of file |
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í.
1 2 3 4 5 6 7 8 9 |
Description='Sitove rozhrani eno16777736 pro pristup do internetu' Interface=eno16777736 Connection=ethernet IP=static Address=172.16.1.1/24' Gateway='172.16.1.254' DNS=('217.31.204.130' '193.29.206.206') DNSDomain='praha.my-own-domain.net' DNSSearch='local.my-own-domain.net my-own-domain.net praha.my-own-domain.net bern.my-own-domain.net' |
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í.
1 2 3 4 5 |
Description='Sitove rozhrani eno33554976 pro pristup do interni site' Interface=eno33554976 Connection=ethernet IP=static Address= 10.11.1.254/24' |
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:
1 |
net.ipv4.ip_forward=1 |
Můžeme ihned aktivovat příkazem:
1 2 |
[root@tn-gw-01 ~]# sysctl net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1 |
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:
1 2 3 |
[root@gw-01 ~]# systemctl enable sshd Created symlink from /etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.service. [root@gw-01 ~]# systemctl start sshd |
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
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
#!/usr/bin/nft -f table nat { chain postrouting { type nat hook postrouting priority 0; oifname eno16777736 counter masquerade counter accept } chain prerouting { type nat hook prerouting priority 0; counter accept } } table inet filter { chain input { type filter hook input priority 0; iifname lo accept iifname != lo ip daddr 127.0.0.1/8 counter drop tcp flags & (fin|syn) == (fin|syn) counter drop tcp flags & (syn|rst) == (syn|rst) counter drop tcp flags & (fin|syn|rst|psh|ack|urg) < (fin) counter drop tcp flags & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) counter drop ct state invalid counter drop ct state {established, related} counter accept ip protocol icmp limit rate 10/second counter log prefix "ICMP::ACPT: " accept ip protocol icmp counter drop ip6 nexthdr icmpv6 counter accept iifname eno16777736 ip daddr 224.0.0.0/8 counter drop iifname eno16777736 udp dport {67, 68} counter drop iifname eno16777736 counter drop ip daddr 224.0.0.0/8 counter accept ip daddr 239.192.0.0/16 counter accept ip daddr 239.255.255.250 counter accept tcp dport ssh limit rate 15/minute log prefix "SSH::ACPT: " counter accept counter reject with icmp type port-unreachable } chain forward { type filter hook forward priority 0; ct state {established, related} counter accept iifname eno33554976 oifname eno16777736 counter accept counter accept } chain output { type filter hook output priority 0; counter accept } } # vim:set ts=2 sw=2 et: |
Ve výchozím stavu je provoz iniciovaný z internetu, kromě ICMP, zakázán.
Firewall povolíme a nastartujeme:
1 2 3 |
[root@gw-01 etc]# systemctl start nftables [root@gw-01 etc]# systemctl enable nftables Created symlink from /etc/systemd/system/multi-user.target.wants/nftables.service to /usr/lib/systemd/system/nftables.service. |
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
1 |
[root@arch ~]# hostnamectl set-hostname net-01 |
V souboru /etc/hosts
přidáme řádek „127.0.1.1 net-01“ odkazující název serveru na rozhraní loopback.
1 2 3 4 5 6 7 8 9 10 |
# # /etc/hosts: static lookup table for host names # # 127.0.0.1 localhost.localdomain localhost ::1 localhost.localdomain localhost 127.0.1.1 net-01 # End of file |
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í.
1 2 3 4 5 6 7 8 9 |
Description='Sitove rozhrani eno16777736 pro pristup do mistni site' Interface=eno16777736 Connection=ethernet IP=static Address=10.11.1.253/24' Gateway='10.11.1.254' DNS=('217.31.204.130' '193.29.206.206') DNSDomain='praha.my-own-domain.net' DNSSearch='local.my-own-domain.net my-own-domain.net praha.my-own-domain.net bern.my-own-domain.net' |
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:
1 2 3 |
[root@net-01 ~]# systemctl enable sshd Created symlink from /etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.service. [root@net-01 ~]# systemctl start sshd |
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.
Pingback: Jak jsem nasadil IPv6 | brichacek.net
Pingback: Zajimave cteni | Blog J.Z. na NAS4y.NET