User traffic monitor másik szerveren (iptables)

 ( mecseid | 2013. május 15., szerda - 12:57 )

Üdv!

Egy olyan problémám lenne, hogy van egy gép Apache2-vel, és egy átjáró. Az átjárón szeretném szűrni a "user" forgalmat. Ezen leginkább azt értem, hogy azon a szerveren, amelyiken az Apache2 van, mennyi új kapcsolat épül fel, ahol a csomag tulajdonosa egy adott user.

Azt tudom hogy az iptables-nek van owner modulja, aminek segítségével én beállítok egy mark-ot, de ez a mark nem megy át a hálózaton, gondolom output ágon leszedi (vagy nem is tudom hogy működik ez pontosan.

Esetleg erre valami ötlet?

Vagy ha nagyon érthetetlen amit írtam, akkor kérlek szóljatok :)

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Első kérdés, hogy mit értesz user alatt. Az Apache felé elküldött usernevet, vagy a kliens rendszeren bejelentkezett felhasználót?

Miért nem az Apache log alapján készítesz kimutatást? Vagy pontosan mi a cél?

"amelyiken az Apache2 van, mennyi új kapcsolat épül fel"
Ezzel pedig vigyázz, mert HTTP/1.0 és HTTP/1.1 között ebből a szempontból vannak különbségek. De visszautalok az előző kérdésre: az Apache logja milyen ok miatt nem jó a célra?

Az Apache felé elküldött usernevet

Mint pl (hogy félreértés ne essék):
/home/username/public_html/.....

Én erre a username-re gondoltam, hogy nálam kinek az oldalát "töltik" le sokszor, megy rá sok új lekérés, stb...

Ez azt jelenti, hogy az Apache-hoz és logjához nem férsz hozzá, csak az átjáró van a te kezelésedben? Akkor lehet pl. transzparens proxyt húzni rá, de abban ugye URL utazik, nem a fizikai útvonal ("home/username/public_html/").

Ha hozzáférsz az Apache logjához, akkor pedig vagy egy logelemző kell neked, vagy akár kézzel is lehet rá írni néhánysoros scriptet.

Éppenséggel hozzá tudok férni, csak mindenképp az átjárón kellene elemezni ezt a forgalmat (magam se értem miért).

Ezért is gondoltam első körben az iptables owner és mark modulra, de ez sajnos nem utaztatja a mark jelzést a hálózaton.

De végülis mi a probléma?
1.a) A logokat tartalmazó könyvtárat hálózati filerendszeren kiajánlod az átjáró számára.
1.b) A logokat átmásolod az átjáróra.
2.) Az átjárón futtatod a logelemzést.

"Ezért is gondoltam első körben az iptables owner és mark modulra, de ez sajnos nem utaztatja a mark jelzést a hálózaton."
Mint említetted, nem a kliensre, hanem a szerverre vagy kíváncsi. Így vagy a szerveren gyűjtöd ezeket az adatokat, majd kielemzed máshol, vagy az átjárón az átmenő forgalomban fellelhető URL-ekből gazdálkodsz. (Csak megjegyzésként: SSL.)

A log nem jó, mert csak error-t logolnak (ehhez nem nyúlhatok hozzá).
Az URL-en és SSL-en elgondolkozom.

"Éppenséggel hozzá tudok férni"  "A log nem jó, mert csak error-t logolnak (ehhez nem nyúlhatok hozzá)."
És nem is kérheted meg őket arra, hogy ha már ilyen kimutatást szeretnének, akkor adják hozzá a náluk előálló szükséges adatokat is? Nem nagy dolog engedélyez(tet)ni az access logolását.

Az SSL-t azért említettem, mert egy egyszerű HTTPS sessionből nem igazán fogod tudni kihalászni az URL-t, és a szerver nevén kívül ezen még a TLS/SNI sem segít. Egyéb buktató lehet, ha a http://www.example.com/foo/bar címet nézi valaki, ebből hogy fogod kitalálni, hogy a www.example.com virtualhost az exampleuser123 nevében fut, vagy a /home/exampleuser123/www.example.com a document rootja? Mert te leírásod alapján ezt keresed. A proxy lehet a legegyszerűbb, de annak is ugyanígy megvannak ezek a korlátai.

Javaslom, mielőtt nekiállnál, beszélj azzal, aki ezt a feladatot kéri tőled, vonjátok be az Apache üzemeltetőjét is, sokkal egyszerűbb és tisztább lesz a megoldás.