Fórum Root.cz

Hlavní témata => Software => Téma založeno: duck.typing 08. 02. 2021, 19:35:21

Název: Aplikační firewall pro Linux
Přispěvatel: duck.typing 08. 02. 2021, 19:35:21
Před delší dobou jsem na Rootu v diskuzi četl názor, jak na Linuxu nebo linuxovém desktopu chybí aplikační firewall. Nyní jsem zcela náhodně narazil na OpenSnitch (https://github.com/evilsocket/opensnitch), který na první pohled vypadá docela slibně. Dále jsem před časem narazil na Portmaster (https://github.com/safing/portmaster), ten tedy dosud o sobě tvrdí, že je "Alpha Software". Tak třeba by se někomu mohlo něco takového hodit, budiž Vám tato informace ku prospěchu. Pokud někdo některý z uvedených programů používáte, anebo nějaký obdobný ze stejné kategorie, podělte se zde prosím o zkušenosti. A ty největší zdejší bedny se i třeba zapojí do vývoje.
Název: Re:Aplikační firewall pro Linux
Přispěvatel: _Jenda 09. 02. 2021, 05:55:14
Používáte to někdo? Potřeboval bych, aby "Deny" jakoby posílalo RST, protože jinak aplikace, kterým jsem připojení zakázal, zatuhnou a timeoutují, místo toho, aby si jenom myslely, že se spojení nepodařilo.

Dále je tam problém že když povolím všechno třeba wgetu, ale teď může kdokoli udělat os.system("wget ...") a vesele komunikovat. Nevím jak by se tohle mělo správně řešit (těch cest jak exfiltrovat data je spousta… ale tahle je taková obvious a asi to bude používat kde kdo), asi by to muselo nějak trackovat rodičovské procesy a říkat "když spustím wget přímo z terminálu nebo ho spustí plugin v panelu, tak je to OK, jinak ne".
Název: Re:Aplikační firewall pro Linux
Přispěvatel: _Jenda 09. 02. 2021, 08:01:02
Pokud to někdo zkoušíte, zkompilujte si verzi z gitu, nikoli release - v release je ošklivý bug https://github.com/evilsocket/opensnitch/issues/333, který už je v gitové verzi opraven.
Název: Re:Aplikační firewall pro Linux
Přispěvatel: Ondrej_Malek 10. 02. 2021, 16:29:10
...
nevim co vsechno tam potrebujes ale Linux mint ma standartne klikatko nejspis pro iptables https://github.com/costales/gufw

...
 
Zkousel si sandbox Firejail? https://github.com/netblue30/firejail/  -
Citace
firejail --private --net=none wget

Integruje to chroot secomp apparmor firewall atd.
Název: Re:Aplikační firewall pro Linux
Přispěvatel: _Jenda 10. 02. 2021, 20:14:10
...
nevim co vsechno tam potrebujes ale Linux mint ma standartne klikatko nejspis pro iptables https://github.com/costales/gufw
I samotné téma se jmenuje aplikační firewall. To znamená, že umožňuje auditovat spojení jednotlivým aplikacím. iptables neumí podle aplikací (e.g. procesu) pořádně rozlišovat, maximálně podle uživatele. Navíc neumí (bez externích programů, jako je třeba diskutovaný opensnitch) spojení interceptnout, zeptat se a podle toho povolit/zakázat.

...
 
Zkousel si sandbox Firejail? https://github.com/netblue30/firejail/  -
Citace
firejail --private --net=none wget

Integruje to chroot secomp apparmor firewall atd.
Nechce se mi asi spouštět úplně všechny věci v systému přes různé firejaily. To už mi jednodušší přijde to, co jsem dříve provozoval - můj uživatel neměl vůbec povolený přístup na internet vyjma několika vyjmenovaných případů (např. servery kam jsem se SSHčkoval) a internetové věci jsem spouštěl pod separátním uživatelem.

Jinak zkušenosti po dni používání: tentokrát jsem načapal Thunderbird.

1) Při otevření přílohy posílá na sb-ssl.google.com plnou cestu k poště (doslova mailbox:///home/jenda/.thunderbird/XXXXXX.default/Mail/Local%20Folders/Inbox), jméno přílohy (!!!) a její SHA256 hash (!!!). (pro vypnutí zrušte browser.safebrowsing.downloads.remote.url v about:config)

2) Když v nastavení odkliknete zakšrtávátko "Allow Thunderbird to send technical and interaction data to Mozilla", tak to pošle do Mozilly telemetrii o tom, že si nepřejete zasílat telemetrii. Smart řešení! (https://twitter.com/janekrubes/status/1355089000340598788)

Kód: [Vybrat]
{"type":"deletion-request","id":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX","creationDate":"2021-02-10T18:55:32.926Z","version":4,"application":{"architecture":"x86-64","buildId":"20210203182138","name":"Thunderbird","version":"78.7.1","displayVersion":"78.7.1","vendor":"","platformVersion":"78.7.0","xpcomAbi":"x86_64-gcc3","channel":"default"},"payload":{"scalars":{}},"clientId":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX"}
Název: Re:Aplikační firewall pro Linux
Přispěvatel: Rhinox 10. 02. 2021, 21:22:27
Na par projektech se pracuje, ale pokud vim, nic neni dotazeno do plne pouzitelne podoby. Krom OpenSnitch mi napadaji jeste:

https://linux-application-firewall.org/
https://douaneapp.com/
Název: Re:Aplikační firewall pro Linux
Přispěvatel: duck.typing 12. 02. 2021, 20:48:14
... Jinak zkušenosti po dni používání: tentokrát jsem načapal Thunderbird. ...
Dobrá práce. Díky za podělení se o zkušenosti.

To by možná i stálo za nějaké ublognutí? Nejlépe i v angličtině, ať to má alespoň nějaký dosah. Předpokládám, že jde o vlastnost, nikoliv o chybu, takže reportovat bug asi nemá smysl.
Název: Re:Aplikační firewall pro Linux
Přispěvatel: uwe.filter 12. 02. 2021, 20:53:12
Já bych to skoro i za chybu považoval (je mi jasné, že vývojáři asi sotva, bohužel). Pokud aplikace jakýmkoliv ne zcela zřejmým způsobem někam posílá uživatelova data, má se nejdřív zeptat, ať už je záměr takového odesílání sebevíc bohulibý.
Název: Re:Aplikační firewall pro Linux
Přispěvatel: _Jenda 12. 02. 2021, 23:49:59
... Jinak zkušenosti po dni používání: tentokrát jsem načapal Thunderbird. ...
Dobrá práce. Díky za podělení se o zkušenosti.

To by možná i stálo za nějaké ublognutí? Nejlépe i v angličtině, ať to má alespoň nějaký dosah. Předpokládám, že jde o vlastnost, nikoliv o chybu, takže reportovat bug asi nemá smysl.
https://jenda.hrach.eu/w/et
https://brmlab.cz/project/spyzilla

Ale je to teda dost neaktualizované.
Název: Re:Aplikační firewall pro Linux
Přispěvatel: ZAJDAN 13. 02. 2021, 11:16:53
pomocí IPtables:

1. Create, validate new group; add required users to this group:
Create:
Kód: [Vybrat]
groupadd no-internetValidate:
Kód: [Vybrat]
grep no-internet /etc/groupAdd user:
Kód: [Vybrat]
useradd -g no-internet username
Note: If you're modifying already existing user you should run:
Kód: [Vybrat]
usermod -a -G no-internet userName check with :
Kód: [Vybrat]
sudo groups userName
2. Create a script in your path and make it executable:
Create:
Kód: [Vybrat]
nano /home/username/.local/bin/no-internetExecutable:
Kód: [Vybrat]
chmod 755 /home/username/.local/bin/no-internetContent:
Kód: [Vybrat]
#!/bin/bash
sg no-internet "$@"

3. Add iptables rule for dropping network activity for group no-internet:
Kód: [Vybrat]
iptables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP
Note: Don't forget to make the changes permanent, so it would be applied automatically after reboot. Doing it, depends on your Linux distribution.

4. Check it, for example on Firefox by running:
Kód: [Vybrat]
no-internet "firefox"   
5. In case you would want to make an exception and allow a program to access local network:
Kód: [Vybrat]
iptables -A OUTPUT -m owner --gid-owner no-internet -d 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner no-internet -d 127.0.0.0/8 -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner no-internet -j DROP

6. Make it permanent
One way to apply the iptables rule at boot is to add the rule as a service with systemd
Kód: [Vybrat]
cat /usr/lib/systemd/system/nonet.service
[Unit]
Description=Nonet group iptable update
After=network.target
After=xsession.target
After=iptables.service
After=shorewall.service

[Service]
Type=oneshot
RemainAfterExit=true
StandardOutput=journal
ExecStart=/bin/bash /home/user/Scripts/Nonet.iptables.sh
Název: Re:Aplikační firewall pro Linux
Přispěvatel: Ondrej_Malek 15. 02. 2021, 15:33:05
pomocí IPtables:
...

IMO ekvivalent az po 5. :
Kód: [Vybrat]
firejail --noprofile \
--netfilter=/etc/firejail/nolocal.net \
              --net=eth0 someexecutable