KVM / Guest s přístupem na internet, bez přístupu do LAN

Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #15 kdy: 22. 04. 2021, 20:00:16 »
Jak velky problem je proste vymenit router za neco schopneho provozu s VLAN?
Jak je pripojeny PC? Kabelem nebo pres WiFi?
Ty virtualni stroje vyuzivaji pripojeni k lokalni siti v rezimu NAT nebo bridge?

Jakz-takz bezpecna varianta je:
- zmenit konfiguraci virtualniho stroje, aby pouzival rezim bridge (virtualni stroj musi dostat IP adresu primo z lokalni sité tedy asi 192.168.0.x)
- povolit na hostitelskem stroji (ne ve virtualu) netfilteru, aby na bridge filtroval pravidla (hledejte googlem "bridge-nf-call-iptables=1", je to sysctl nastaveni)
- pridat na spravne misto ve firewallu pravidla, aby virtualni stroj mohl pristupovat jen na gateway; pokud je gateway 192.168.0.1 a adresa stroje 192.168.0.128, pak to bude neco jako
iptables -A INPUT -s 192.168.0.128 -j DROP
iptables -A FORWARD -s 192.168.0.128 -d 192.168.0.1 -j ACCEPT
iptables -A FORWARD -s 192.168.0.128 -d 192.168.0.0/24 -j DROP
iptables -A FORWARD -s 192.168.0.128 -d 0.0.0.0/0 -j ACCEPT

Konkretni realizace samozrejme zalezi na tom, jak se nastavuje firewall, jestli se treba nepouzivaji nftables, jaka distribuce se pouziva, atp.
Dal to taky neblokuje IPv6, takze scany po IPv6 porad budou mozne.


Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #16 kdy: 22. 04. 2021, 20:01:39 »
Ale já ho napsat dokážu  ;D
Jen ti to nechci dát na stříbrném podnosu  ;D

A KVM ... fuj :-D

Moc nechápu proč se tedy vůbec účastníš diskuse, když jediný tvůj výsledek je machrování bez ochoty naspat správně jeden řádek FW pravidla.

Věřím, že se najde někdo ochotný pomoci bez zbytečných keců okolo jako PanVP všeuměl.

Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #17 kdy: 22. 04. 2021, 20:04:04 »
Jak velky problem je proste vymenit router za neco schopneho provozu s VLAN?
Jak je pripojeny PC? Kabelem nebo pres WiFi?
Ty virtualni stroje vyuzivaji pripojeni k lokalni siti v rezimu NAT nebo bridge?

Jakz-takz bezpecna varianta je:
- zmenit konfiguraci virtualniho stroje, aby pouzival rezim bridge (virtualni stroj musi dostat IP adresu primo z lokalni sité tedy asi 192.168.0.x)
- povolit na hostitelskem stroji (ne ve virtualu) netfilteru, aby na bridge filtroval pravidla (hledejte googlem "bridge-nf-call-iptables=1", je to sysctl nastaveni)
- pridat na spravne misto ve firewallu pravidla, aby virtualni stroj mohl pristupovat jen na gateway; pokud je gateway 192.168.0.1 a adresa stroje 192.168.0.128, pak to bude neco jako
iptables -A INPUT -s 192.168.0.128 -j DROP
iptables -A FORWARD -s 192.168.0.128 -d 192.168.0.1 -j ACCEPT
iptables -A FORWARD -s 192.168.0.128 -d 192.168.0.0/24 -j DROP
iptables -A FORWARD -s 192.168.0.128 -d 0.0.0.0/0 -j ACCEPT

Konkretni realizace samozrejme zalezi na tom, jak se nastavuje firewall, jestli se treba nepouzivaji nftables, jaka distribuce se pouziva, atp.
Dal to taky neblokuje IPv6, takze scany po IPv6 porad budou mozne.

Děkuji Radku! Vyzkouším. Vhledem k tomu, že je to fakt řešení velmi dočasné a na domácí použití, výměna routeru s vlan nedává smysl.

Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #18 kdy: 22. 04. 2021, 20:28:51 »
Jak velky problem je proste vymenit router za neco schopneho provozu s VLAN?
Jak je pripojeny PC? Kabelem nebo pres WiFi?
Ty virtualni stroje vyuzivaji pripojeni k lokalni siti v rezimu NAT nebo bridge?

Jakz-takz bezpecna varianta je:
- zmenit konfiguraci virtualniho stroje, aby pouzival rezim bridge (virtualni stroj musi dostat IP adresu primo z lokalni sité tedy asi 192.168.0.x)
- povolit na hostitelskem stroji (ne ve virtualu) netfilteru, aby na bridge filtroval pravidla (hledejte googlem "bridge-nf-call-iptables=1", je to sysctl nastaveni)
- pridat na spravne misto ve firewallu pravidla, aby virtualni stroj mohl pristupovat jen na gateway; pokud je gateway 192.168.0.1 a adresa stroje 192.168.0.128, pak to bude neco jako
iptables -A INPUT -s 192.168.0.128 -j DROP
iptables -A FORWARD -s 192.168.0.128 -d 192.168.0.1 -j ACCEPT
iptables -A FORWARD -s 192.168.0.128 -d 192.168.0.0/24 -j DROP
iptables -A FORWARD -s 192.168.0.128 -d 0.0.0.0/0 -j ACCEPT

Konkretni realizace samozrejme zalezi na tom, jak se nastavuje firewall, jestli se treba nepouzivaji nftables, jaka distribuce se pouziva, atp.
Dal to taky neblokuje IPv6, takze scany po IPv6 porad budou mozne.


Tak mi to bohužel komunikuje nadále. VM používá bridge Macvtap s přiřazením názvu fyzické síťovky hosta (enp8s0). VM dostane od routeru adresu 192.168.0.14. Povolil jsem tedy sysctl net.bridge.bridge-nf-call-iptables=1 a napsal pravidla v pořadí jak jsi uvedl (samozřejmě s adresou 192.168.0.14). Je to divný, nevím proč to nejde.

PanVP

Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #19 kdy: 22. 04. 2021, 20:31:31 »


Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #20 kdy: 22. 04. 2021, 21:29:20 »
Doplnění pro: Radek Zajíc

KVM host (server) běží na Manjaru

VMs jsou Linux Mint 20.1, W7 a W10

_Jenda

  • *****
  • 1 550
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #21 kdy: 22. 04. 2021, 21:32:26 »
Tak se teda pleteš. Tímto zablokuješ KVM host/server, ale VMs komunikují se sítí nadále a naprosto v pohodě...
Si myslím že tohle nejde protože na bridgi se používají ebtables, ne? (předpokládám že používáš bridge. Pokud používáš natovanou síť v userspace, tak bych spustil virtuál pod jiným uživatelem a omezení mu nastavil pomocí iptables match UID. Můžeš používat natovanou síť? Asi jo, ne, když je LAN stejně za NATem, tak to už ničemu neublíží. Ale nezkoušel jsem to, je možné, že user network jde „někudy jinudy“ a tohle fungovat nebude. Je to jenom nástřel.)

Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #22 kdy: 22. 04. 2021, 21:41:32 »
Tak se teda pleteš. Tímto zablokuješ KVM host/server, ale VMs komunikují se sítí nadále a naprosto v pohodě...
Si myslím že tohle nejde protože na bridgi se používají ebtables, ne? (předpokládám že používáš bridge. Pokud používáš natovanou síť v userspace, tak bych spustil virtuál pod jiným uživatelem a omezení mu nastavil pomocí iptables match UID. Můžeš používat natovanou síť? Asi jo, ne, když je LAN stejně za NATem, tak to už ničemu neublíží. Ale nezkoušel jsem to, je možné, že user network jde „někudy jinudy“ a tohle fungovat nebude. Je to jenom nástřel.)

Ahoj Jendo, děkuji za odpověď.

Ano, jak jsem psal výše: Když na VM přidám pravidlo: iptables -A OUTPUT -d  192.168.0.200 -j DROP zablokuju tím přístup VM na 192.168.0.200. Ale potřebovat bych tohle pravidlo udělat na KVM HOSTu, abych to nemusel na každý VM definovat zvlášť.

Takže, jo, dokážu zablokovat provoz přímo na VM (ať už konkrétní adresu nebo celou síť 192.168.0.0/24), ale nedokážu toho samého dosáhnout na KVM host, abych to nemusel pro každou VM definovat zvlášť. A je jedno jestli VM jede v řežimu NAT nebo bridge (macvtap).

_Jenda

  • *****
  • 1 550
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #23 kdy: 22. 04. 2021, 21:58:02 »
Ale mně to funguje. Když pustím jako user s UID 1000 VM tímto příkazem:
Kód: [Vybrat]
qemu-system-x86_64 -enable-kvm -net user,hostfwd=tcp::10022-:22 -net nic -drive file=debian.img,index=0,media=disk,cache=unsafe -m 2048a následně udělám
Kód: [Vybrat]
iptables -A OUTPUT -m owner --uid-owner 1000 -d 192.168.11.0/24 -j REJECT
iptables -I OUTPUT -m owner --uid-owner 1000 -d 192.168.11.1/32 -j ACCEPT
tak se dostanu na net, ale nemůžu se připojit na jiné počítače v síti. Blbý je že nefunguje ping (https://wiki.qemu.org/Documentation/Networking), zkoušel jsem to pomocí wgetu. A je tam návod jak ping rozchodit (nezkoušel jsem).

Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #24 kdy: 22. 04. 2021, 22:26:59 »
Ale mně to funguje. Když pustím jako user s UID 1000 VM tímto příkazem:
Kód: [Vybrat]
qemu-system-x86_64 -enable-kvm -net user,hostfwd=tcp::10022-:22 -net nic -drive file=debian.img,index=0,media=disk,cache=unsafe -m 2048a následně udělám
Kód: [Vybrat]
iptables -A OUTPUT -m owner --uid-owner 1000 -d 192.168.11.0/24 -j REJECT
iptables -I OUTPUT -m owner --uid-owner 1000 -d 192.168.11.1/32 -j ACCEPT
tak se dostanu na net, ale nemůžu se připojit na jiné počítače v síti. Blbý je že nefunguje ping (https://wiki.qemu.org/Documentation/Networking), zkoušel jsem to pomocí wgetu. A je tam návod jak ping rozchodit (nezkoušel jsem).

Takže mám vytvořit jiného uživatele a pod ním spustit VM a pak přidat ta pravidla? A pravidla přidat na KVM host ok? Děkuji.

_Jenda

  • *****
  • 1 550
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #25 kdy: 22. 04. 2021, 22:44:49 »
Takže mám vytvořit jiného uživatele a pod ním spustit VM a pak přidat ta pravidla?
Ano.

A pravidla přidat na KVM host ok?
Ano, kde jinde bys je taky chtěl přidávat? Ve VM být nemohou, když není důvěryhodná.

Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #26 kdy: 22. 04. 2021, 23:25:50 »
Takže mám vytvořit jiného uživatele a pod ním spustit VM a pak přidat ta pravidla?
Ano.

A pravidla přidat na KVM host ok?
Ano, kde jinde bys je taky chtěl přidávat? Ve VM být nemohou, když není důvěryhodná.


Jendo jsi borec funguje to!

qemu-system-x86_64 -enable-kvm -net user,hostfwd=tcp::10022-:22 -net nic -drive file=debian.img,index=0,media=disk,cache=unsafe -m 2048

Jen ve výše uvedeném řádku musím nechat uživatele "user", když ho změním na nově vytvořeného "fw" tak mi to hodí chybu - Invalid parameter "fw".

Nevíš jestli by se dala tímto způsobem VM spouštět automaticky přes virt-manager nebo virsh?

Každopádně moc děkuji!

Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #27 kdy: 23. 04. 2021, 00:09:48 »
Pro: Jenda

Ještě jeden dotaz. Když spustím VM z virt-manageru, tak je VM spuštěna pod uživatelem "nobody", který má user id 65534.

Proč nefunguje toto: iptables -A OUTPUT -m owner --uid-owner 65534 -d 192.168.0.240 -j REJECT

_Jenda

  • *****
  • 1 550
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #28 kdy: 23. 04. 2021, 00:11:01 »
Jen ve výše uvedeném řádku musím nechat uživatele "user", když ho změním na nově vytvořeného "fw" tak mi to hodí chybu - Invalid parameter "fw".
wtf, to není jméno uživatele, to je typ síťového rozhraní…

Re:KVM / Guest s přístupem na internet, bez přístupu do LAN
« Odpověď #29 kdy: 23. 04. 2021, 00:30:37 »
Jen ve výše uvedeném řádku musím nechat uživatele "user", když ho změním na nově vytvořeného "fw" tak mi to hodí chybu - Invalid parameter "fw".
wtf, to není jméno uživatele, to je typ síťového rozhraní…

OK já nikdy takto VM nespouštěl a popletlo mě to vytvoření novýho uživatele (jsem vytvořil novýho uživatele OS :-))

A netušíš proč to nejde blokovat pro uživatele "nobody": iptables -A OUTPUT -m owner --uid-owner 65534 -d 192.168.0.240 -j REJECT