Aplikační firewall pro Linux

Aplikační firewall pro Linux
« kdy: 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, který na první pohled vypadá docela slibně. Dále jsem před časem narazil na 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.
Provozoval internetový portál, ale chodili mu tam lidi.


_Jenda

  • *****
  • 1 601
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Aplikační firewall pro Linux
« Odpověď #1 kdy: 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".

_Jenda

  • *****
  • 1 601
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Aplikační firewall pro Linux
« Odpověď #2 kdy: 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.

Re:Aplikační firewall pro Linux
« Odpověď #3 kdy: 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.
« Poslední změna: 10. 02. 2021, 16:36:10 od Ondrej_Malek »

_Jenda

  • *****
  • 1 601
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Aplikační firewall pro Linux
« Odpověď #4 kdy: 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í!

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"}


Rhinox

  • ***
  • 114
    • Zobrazit profil
    • E-mail
Re:Aplikační firewall pro Linux
« Odpověď #5 kdy: 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/

Re:Aplikační firewall pro Linux
« Odpověď #6 kdy: 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.
Provozoval internetový portál, ale chodili mu tam lidi.

Re:Aplikační firewall pro Linux
« Odpověď #7 kdy: 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ý.

_Jenda

  • *****
  • 1 601
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Aplikační firewall pro Linux
« Odpověď #8 kdy: 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é.

ZAJDAN

  • *****
  • 2 086
    • Zobrazit profil
    • E-mail
Re:Aplikační firewall pro Linux
« Odpověď #9 kdy: 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
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Re:Aplikační firewall pro Linux
« Odpověď #10 kdy: 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
« Poslední změna: 15. 02. 2021, 15:36:10 od Ondrej_Malek »