Portál AbcLinuxu, 6. listopadu 2025 07:58
Provadeli jsme audit. To samo osobe neni nic zajimaveho. Zajimavy je ukol, ktery z toho pro mne vyplynul.
Ve firme, kde jsme audit provadeli, totiz pouzivaji jako firewall Kerio WinRoute, ktere poskytuje jednu funkci, ktera se velmi zalibila memu sefovi. Kerio umi dynamicky zavadet pravidla do firewallu na zaklade uzivatelskeho jmena pouziteho pro prihlaseni do weboveho formulare. Uzivatel se tedy prihlasi na webovou stranku firewallu(https), firewall ho autentizuje vuci AD a otevre na urcitou dobu predem definovane porty pro ip adresu ze ktere se uzivatel prihlasil.
Jak uz jsem psal vyse, tak memu sefovi i mne se tak funkce zalibila a ted mam za ukol rozbehat neco podobneho na linuxu.
Nepripada mi to jako nejaky zasadni problem neco podobneho rozbehat, ale zase to neni uplne trivialni zalezitost, obzvlast diky tomu, ze se jedna o otazku bezpecnosti cele vnitrni site za firewallem.
Po pravde, drive jsem uz podobny system pouzival. V byvalem zamestnani jsme meli jednoduchou webovou aplikaci, ktera umoznovala pomoci weboveho rozhrani zakazovat uzivatelum pristup na internet na zaklade jejich ip nebo mac adresy.
Cele to fungovalo tak, ze pomoci weboveho rozhrani se spustil bashovy skript, ktery spustil php skript a refreshnul firewall (v byvalem zamestnani se pouzival shorewall). Php skript vytahl z mysql databaze ip adresy(mac adresy), ktere mely nastaven priznak, ktery zakazoval pristup na internet, a tyto ip adresy zapsal do souboru blacklist. Shorewall pak na zaklade tohoto souboru zakazoval pristup na internet
Tim padem mam zaklad, nebo spis predstavu, aplikace hotovou a zbyva mi "jen" ji upravit pro novou funkcnost. Ta by mela vypadat takto:
Uzivatel zada do internetoveho prohlize adresu(fqdn) a port weboveho rozhrani firewallu(https). Tam zada do prihlasovaciho formulare sve uzivatelske jmeno a heslo. Na zaklade jeho prihlasovaciho jmena zavede skript na webove strance(php,perl, ???) predem definovana iptables pravidla, pripadne spusti bashovy skript, ktery provede totez. Zaroven se spusti timeout, ktery po urcitem case iptables pravidla zase odebere.
Tady bych pozadal o radu jak odebrat pravidla po urcite dobe neaktivity z dane ip adresy. Pravidla by se mela z fw take odebirat po odhlášení uživatele nebo po zavřeni prohlizece
Nejzadnejsi problem vidim v tom, kterak zavest pravidla pouze pro ip adresu, ze, ktere se uzivatel na stranky prihlasil. Tohle bude muset resit nejspis nejaky php skript, ktery bashovy skript upravi podle aktualnich informaci.
Rad bych vas pozadal o vase rady, navrhy, zkusenosti a bezpecnostni pripominky k vyse uvedenemu zameru.
Neexistuje uz nejaky open source projekt, ktery by nabizel reseni jake jsem popsal vyse?
Napada vas neco na co sem pri navrhu reseni zapomnel?
Diky za vase reakce
Tiskni
Sdílej:
)
, která zjistí IP adresu, ověří uživatele a zapíše do DB pravidlo, které se má nastavit.
Druhá vrstva bude program, který bude z DB číst pravidla a nastavovat je na iptables. Do DB si také poznamená, kdy pravidlo nastavil a kdy má vypršet. Program poběží v nekonečné smyčce a bude si držet jedno spojení do DB. Pokud spojení spadne, obnoví se. Pokud spadne celý proces, v cronu bude skript, který ho znovu nahodí...
Celé tohle bych nasadil na oddělený stroj, např. proto, aby špatně napsaný program nemohl ohrozit hlavní internetovou bránu podniku. Když to špatně napíšeš, tak uživatelé přijdou o vzdálený přístup, ale nezesere se ti net v celé firmě.
Bohužel je ale ještě potřeba ošetřit uživatele, kteří sdílí IP adresu, nemají vlastní veřejnou. V tom případě totiž povolíš přístup třeba tisíci lidem, místo jednoho zaměstnance.
Přijde mi to dost kostrbaté řešení, za lepší bych považoval nějaké tunelování, buď SSH nebo celou VPN.
Ale stejně je to celé pakárna
protože uživatel nemusí mít veřejnou IP a pak zpřístupníme službu více lidem než chceme.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.