LinuxDays 2016 - Proaktívna bezpečnosť Linux systémov - Lukáš Vrabec, Vít Mojžíš
Obsah:
- Jak používat příkaz ip
- Zobrazení a úprava IP adres
- Zobrazí informace o všech IP adresách
- Zobrazení informací o jediném síťovém rozhraní
- Přiřaďte adresy IP rozhraní
- Ke stejnému rozhraní přiřaďte více adres IP
- Odebrat / odstranit IP adresu z rozhraní
- Zobrazení a úprava síťových rozhraní
- Zobrazení informací o síťových rozhraních
- Změňte stav rozhraní NAHORU / DOLŮ
- Zobrazení a změna směrovací tabulky
- Zobrazit směrovací tabulku
- Přidejte novou trasu
- Vymazání trasy
- Závěr
Příkaz
ip
je výkonný nástroj pro konfiguraci síťových rozhraní, které by měl znát každý správce systému Linux. Může být použit k převedení rozhraní nahoru nebo dolů, přiřazení a odebrání adres a tras spravujících mezipaměť ARP a mnohem více.
V tomto tutoriálu vám ukážeme, jak používat příkaz
ip
pomocí praktických příkladů a podrobných vysvětlení nejběžnějších možností.
Jak používat příkaz ip
Obslužný program
ip
je součástí balíčku iproute2, který je nainstalován na všech moderních distribucích Linuxu.
Syntaxe příkazu
ip
je následující:
ip OBJECT COMMAND
OBJECT je typ objektu, který chcete spravovat. Nejčastěji používané objekty (nebo dílčí příkazy) jsou:
-
link
(l
) - Zobrazení a úprava síťových rozhraní.address
(a
) - Zobrazení a úprava IP adres.route
(r
) - Zobrazení a změna směrovací tabulky.neigh
(n
) - Zobrazení a manipulace se sousedními objekty (tabulka ARP).
Objekt lze napsat v plné nebo zkrácené podobě. Jak zobrazit seznam příkazů a argumentů pro každý typ objektu
ip OBJECT help
. každý dílčí příkaz
Při konfiguraci síťových rozhraní musíte provést příkazy jako root nebo uživatel s právy sudo. Jinak příkaz vytiskne
RTNETLINK answers: Operation not permitted
Konfigurace nastavené pomocí příkazu
ip
nejsou trvalé. Po restartu systému dojde ke ztrátě všech změn. Pro trvalé nastavení musíte upravit konfigurační soubory specifické pro distro nebo přidat příkazy do spouštěcího skriptu.
Zobrazení a úprava IP adres
Při práci s objektem
addr
mají příkazy následující podobu:
ip addr ADDRESS dev IFNAME
Nejčastěji používané příkazy objektu
addr
jsou:
show
,
add
a
del
.
Zobrazí informace o všech IP adresách
Chcete-li zobrazit seznam všech síťových rozhraní a přidružené adresy IP, zadejte následující příkaz:
ip addr show
Výstup bude vypadat asi takto:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 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 2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 2900sec preferred_lft 2900sec inet6 fe80::5054:ff:fe8c:6244/64 scope link valid_lft forever preferred_lft forever
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 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 2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 2900sec preferred_lft 2900sec inet6 fe80::5054:ff:fe8c:6244/64 scope link valid_lft forever preferred_lft forever
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 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 2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 2900sec preferred_lft 2900sec inet6 fe80::5054:ff:fe8c:6244/64 scope link valid_lft forever preferred_lft forever
Stejný výstup získáte, pokud zadáte příkaz
show
a vynecháte příkaz:
ip addr
.
Zobrazení informací o jediném síťovém rozhraní
Chcete-li získat informace o konkrétním síťovém rozhraní, použijte
ip addr show dev
následovaný názvem zařízení. Chcete-li například zadat dotaz
eth0
, zadejte:
Přiřaďte adresy IP rozhraní
Chcete-li rozhraní přiřadit adresu IP, použijte následující syntaxi:
ip addr add ADDRESS dev IFNAME
Kde
IFNAME
je název rozhraní a
ADDRESS
je adresa IP, kterou chcete rozhraní přiřadit.
Chcete-li přidat adresu
192.168.121.45
pomocí síťové masky 24 do zařízení
eth0
, zadejte:
sudo ip address add 192.168.121.45/24 dev eth0
Po úspěchu příkaz nezobrazí žádný výstup. Pokud rozhraní neexistuje, zobrazí se
Cannot find device "eth0"
.
Ke stejnému rozhraní přiřaďte více adres IP
Pomocí
ip
můžete ke stejnému rozhraní přiřadit více adres. Například:
sudo ip address add 192.168.121.241/24 dev eth0
sudo ip address add 192.168.121.45/24 dev eth0
Chcete-li potvrdit, že IP jsou přiřazeny, zadejte
ip -4 addr show dev eth0
nebo
ip -4 a show dev eth0
:
2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 3515sec preferred_lft 3515sec inet 192.168.121.45/24 scope global secondary eth0 valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0 valid_lft 3515sec preferred_lft 3515sec inet 192.168.121.45/24 scope global secondary eth0 valid_lft forever preferred_lft forever
Odebrat / odstranit IP adresu z rozhraní
Syntaxe pro odebrání adresy IP z rozhraní je následující:
ip addr dev ADDRESS dev IFNAME
IFNAME je název rozhraní a ADDRESS je adresa IP, kterou chcete z rozhraní odebrat.
Odebrání adresy
192.168.121.45/24
ze zařízení eth0:
sudo ip address del 192.168.121.45/24 dev eth0
Zobrazení a úprava síťových rozhraní
Chcete-li spravovat a zobrazit stav síťových rozhraní, použijte
link
objekt.
Nejčastěji používané příkazy při práci s
link
objekty jsou:
show
,
set
,
add
a
del
.
Zobrazení informací o síťových rozhraních
Chcete-li zobrazit seznam všech síťových rozhraní, zadejte následující příkaz:
ip link show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
Na rozdíl od
ip addr show
,
ip link show
nevytiskne informace o IP adresách přidružených k zařízení.
Chcete-li získat informace o konkrétním síťovém rozhraní, použijte
ip link show dev
následovaný názvem zařízení. Chcete-li například zadat dotaz
eth0
, zadejte:
ip link show dev eth0
2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
2: eth0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
Změňte stav rozhraní NAHORU / DOLŮ
Chcete-li přenést rozhraní nahoru nebo dolů, použijte
ip link set dev
následovaný názvem zařízení a požadovaným stavem:
ip link set dev {DEVICE} up
Chcete-li například uvést rozhraní
eth0
online, zadejte:
ip link set eth0 up
A přivést je offline
Zobrazení a změna směrovací tabulky
K přiřazení, odebrání a zobrazení směrovací tabulky jádra použijte objekt
route
. Nejčastěji používané příkazy při práci s objekty tras jsou:
list
,
add
a
del
.
Zobrazit směrovací tabulku
Chcete-li získat seznam položek trasy jádra, použijte jeden z následujících příkazů:
ip route ip route list ip route list SELECTOR
Při použití bez
SELECTOR
příkaz zobrazí seznam všech položek trasy v jádře:
ip route list
default via 192.168.121.1 dev eth0 proto dhcp src 192.168.121.241 metric 100 192.168.121.0/24 dev eth0 proto kernel scope link src 192.168.121.241 192.168.121.1 dev eth0 proto dhcp scope link src 192.168.121.241 metric 100
Chcete-li zobrazit pouze směrování pro konkrétní síť, například
172.17.0.0/16
, zadejte:
ip r list 172.17.0.0/16
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
Přidejte novou trasu
Chcete-li přidat novou položku do směrovací tabulky, použijte příkaz
route add
následovaný názvem sítě nebo zařízení.
Přidejte cestu k 192.168.121.0/24 přes bránu na 192.168.121.1
ip route add 192.168.121.0/24 via 192.168.121.1
Přidejte cestu na 192.168.121.0/24, která je dosažitelná na zařízení eth0.
ip route add 192.168.121.0/24 dev eth0
Chcete-li přidat výchozí trasu, použijte
default
klíčové slovo. Následující příkaz přidá výchozí trasu přes místní bránu
192.168.121.1
kterou lze dosáhnout na zařízení
eth0
.
ip route add default via 192.168.121.1 dev eth0
Vymazání trasy
Chcete-li odstranit položku z směrovací tabulky, použijte příkaz
route add
. Syntaxe pro odstranění trasy je stejná jako při přidávání.
Následující příkaz odstraní výchozí trasu:
ip route del default
Odstranit trasu pro 192.168.121.0/24 přes bránu na 192.168.121.1
ip route add 192.168.121.0/24 via 192.168.121.1
Závěr
Nyní byste měli dobře rozumět tomu, jak používat příkaz Linux
ip
. Další informace o dalších možnostech
ip
naleznete na manuálové stránce příkazu ip nebo do svého terminálu zadejte
man ip
.
Linux cut příkaz s příklady
Vyjmout je obslužný program příkazového řádku, který umožňuje vyjmout části řádků z určených souborů nebo dat z potrubí a výsledek vytisknout na standardní výstup. V tomto tutoriálu vám ukážeme, jak používat příkaz Linux cut pomocí praktických příkladů a podrobných vysvětlení nejběžnějších možností řezu.
Příkaz pro Linux datum s příklady
Příkaz date zobrazí nebo nastaví systémové datum. Nejčastěji se používá k tisku data a času v různých formátech a výpočtu budoucích a minulých dat.
Příkaz Linux tee s příklady
Příkaz tee čte ze standardního vstupu a zapisuje současně standardní výstup a jeden nebo více souborů. Tee se nejčastěji používá v kombinaci s jinými příkazy potrubím.