Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: CPU 16. 03. 2022, 21:06:28

Název: Python + Firewall + Debian 11
Přispěvatel: CPU 16. 03. 2022, 21:06:28
Zdravím,

pro Debian 11 mám prý použít UFW (jako frontend k IPtables) jako nejlepší a nejsnazší volba.
Ale čím to řídit? Potřebuji za běhu přidávat pravidla, ideálně Pythonem, prý nejsnáze přes python-ufw, který je dostupný a snadno aktualizovatelný přes APT (apt-get install python-ufw).

https://debian.pkgs.org/10/debian-main-arm64/python-ufw_0.36-1_all.deb.html

Jenže na balík python-ufw se (jako obvykle) několik let nesáhlo a rád bych se ujistil, že tohle je dobrá cesta.


Název: Re:Python + Firewall + Debian 11
Přispěvatel: Ondřej Kolín 16. 03. 2022, 22:19:57
Ansible + Community.general.ufw role?

Ale mozna jenom nechapu ten use-case a vyznamu "za behu"
Název: Re:Python + Firewall + Debian 11
Přispěvatel: CPU 16. 03. 2022, 23:06:47
Chci dynamicky přidávat a odebírat IP adresy klientů.
Přihlásí se na webu, což pro danou IP otevře dodatečné porty (PPTP VPN, DB, SSH) podle oprávnění.
Není to 100% zabezpečení, ale silná dodatečná vrstva.

1. uživatel Ruda se přihlásí
2. pro jeho IP se vytvoří SSH tunel do DMZ na stroj Srv01
3. za 180 minut to spadne

Nebo:
1. uživatel JAN se přihlásí
2. pro jeho IP se povolí VPN
3. za 180 minut to spadne

Podobná řešení jsou, ale nevyhovují, chci si napsat svoje.
Název: Re:Python + Firewall + Debian 11
Přispěvatel: veskotskujehnusne 17. 03. 2022, 10:29:06
Moc mi to nedává smysl, pokud necháš tu VPN otevřenou ven a budou tam slušná hesla, zabezpečení máš slušné a jdeš od válu. Ta opičárna okolo je přebytečná.
Název: Re:Python + Firewall + Debian 11
Přispěvatel: CPU 17. 03. 2022, 12:33:07
pokud...pokud...pokud...pokud...pokud....pokud...

Prosím jen k věci, pro svoje konání mám velmi dobré důvody.
Pokud se chcete vyjádřit k řízení firewallu, budu velmi rád.

Z technického hlediska bude oddělený webový server (před DMZ) a firewall chránící DMZ, který si bude z webového serveru stahovat data a parsovat je. Hacknutí webového serveru tedy nepovede k průniku do firmy.
Název: Re:Python + Firewall + Debian 11
Přispěvatel: robin martinez 17. 03. 2022, 12:56:32
no tak si to res pres ten pythonni balik, ne? Problem vyresen
Název: Re:Python + Firewall + Debian 11
Přispěvatel: CPU 17. 03. 2022, 13:26:59
no tak si to res pres ten pythonni balik, ne? Problem vyresen

Jenže se na něj dost dlouho nesáhlo.
Tak jestli není něco lepšího.
Název: Re:Python + Firewall + Debian 11
Přispěvatel: robin martinez 17. 03. 2022, 13:35:49
https://letmegooglethat.com/?q=python+ufw (https://letmegooglethat.com/?q=python+ufw)
Název: Re:Python + Firewall + Debian 11
Přispěvatel: CPU 17. 03. 2022, 13:43:10
Myslíš, že jsem to neudělal?

pyufw 2019
python-ufw 2018
Ještě jsem našel dvě starší...

Nic, co by nevypadalo mrtvě.
Pokud je tam za rok 0 commitů, je to mrtvé, nerad používám mrtvé knihovny, byť tam třeba hned nehrozí bezpečnostní díra.
Název: Re:Python + Firewall + Debian 11
Přispěvatel: robin martinez 17. 03. 2022, 14:08:33
a to je potreba mit kazdy tyden novou verzi nejake knihovny? Pokud funguje, tak se na to nemusi x mesicu/let sahnout.

Jak tu psali ostatni, jsem s to, ze nevime, proc to tak vubec chces resit, a je to tvoje vec, ale pokud ti nesedi 'zastarala' knihovna, tak to v pythonu vyres pres os.system nebo subprocess a volej si ufw s pozadovanymi parametry a vis presne, co se tam deje a bude to tak bezpecny, jak to sam napises :)



Název: Re:Python + Firewall + Debian 11
Přispěvatel: LA_user 17. 03. 2022, 14:42:54
Myslíš, že jsem to neudělal?

pyufw 2019
python-ufw 2018
Ještě jsem našel dvě starší...

Nic, co by nevypadalo mrtvě.
Pokud je tam za rok 0 commitů, je to mrtvé, nerad používám mrtvé knihovny, byť tam třeba hned nehrozí bezpečnostní díra.

Proč by někdo upravoval funkční věc? Jen aby někomu udělal radost? Já ti nevím, mě to přijde jako vážně zvláštní přístup...
Název: Re:Python + Firewall + Debian 11
Přispěvatel: CPU 17. 03. 2022, 15:43:21
Proč by někdo upravoval funkční věc? Jen aby někomu udělal radost? Já ti nevím, mě to přijde jako vážně zvláštní přístup...

A máš vůbec nějaké zkušenosti s vývojem software?
Pokud se na něco dost dlouho nesáhne, už je to mrtvé napořád, i kdyby se objevila sebevětší bezpečnostní díra.
(EDIT: Čest výjimkám.)

BTW, os.system("blabla") je možná docela dobrý nápad, protože bych se obešel bez té knihovny a v podstatě od toho nechci nic světoborného.

Aka: os.system("firewall-cmd --reload >/dev/null 2>&1")

Díky, to je dobrá myšlenka k uvážení...
Název: Re:Python + Firewall + Debian 11
Přispěvatel: rmrf 17. 03. 2022, 18:37:01
Udělej ipsec VPN, přiděluj jednotlivým uživatelům stálé privátní adresy a nakonfiguruj firewall napevno.
Udělej ipsec VPN host-to-host(net), markuj jednotlivá spojení podle uživatele a nakonfiguruj firewall napevno.
(Udělej ipsec VPN host-to-host(net) a pomocí updown scriptu zařiď tu úpravu firewallu.)

Prostě bych se pokud možno nezabýval dynamickou úpravou firewallu, ale řešil bych to na úrovni VPN.
Název: Re:Python + Firewall + Debian 11
Přispěvatel: CPU 17. 03. 2022, 19:28:27

Jenže to není jen o VPN, ale i hromadě dalších služeb, které budou dostupné jen po předchozím "před-přihlášení".

Název: Re:Python + Firewall + Debian 11
Přispěvatel: drobax 20. 03. 2022, 10:15:58
Chci dynamicky přidávat a odebírat IP adresy klientů.
Přihlásí se na webu, což pro danou IP otevře dodatečné porty (PPTP VPN, DB, SSH) podle oprávnění.
Není to 100% zabezpečení, ale silná dodatečná vrstva.

1. uživatel Ruda se přihlásí
2. pro jeho IP se vytvoří SSH tunel do DMZ na stroj Srv01
3. za 180 minut to spadne

Nebo:
1. uživatel JAN se přihlásí
2. pro jeho IP se povolí VPN
3. za 180 minut to spadne

Podobná řešení jsou, ale nevyhovují, chci si napsat svoje.
Co když uživatel Jan ve 180 minutách změní ipadresu? To se má logovat znovu?
Název: Re:Python + Firewall + Debian 11
Přispěvatel: drobax 20. 03. 2022, 10:42:57
Co ho použít přímo?
Kód: [Vybrat]
import ufw.frontend
Název: Re:Python + Firewall + Debian 11
Přispěvatel: CPU 20. 03. 2022, 15:03:39
Co když uživatel Jan ve 180 minutách změní ipadresu? To se má logovat znovu?

Pokud bude mít otevřenou stránku prohlížeče s "před-přihlášením" tak ne, protože se mu to bude aktualizovat na pozadí a spojení se zavře až 180 minut po zavření prohlížeče. Pokud si tu stránku zavře, tak má po 180 minutách peška, což je chtěné chování.

Co ho použít přímo? import ufw.frontend
Koukám, že UWF má od 0.35 podporu Pythonu 3.5 ... to jsem třeba nevěděl, pokud by to byla pravda, tak paráda!