Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam
Z pewnych powodów muszę się zająć maszyną którą wcześniej zarządzała inna osoba. Jest to router na OpenBSD. Packet filter to dla mnie nowość, i chociaż staram się nadrobić zaległości to potrzebuję pomocy z logowaniem gdyż muszę znaleźć szkodnika w sieci.
Wygląda to tak:
#NAT
pass out log quick on em0 inet from {192.168.10.0/24, 10.10.1.0/24, 172.16.0.0/24} to any modulate state nat-to xxx.xxx.xx.xx/29 source-hash 0x9c6fcc381f059d875b831ba9658d149b
Jak widać adresy wewnętrzne wychodzą klasą ip na zewnątrz. Niestety z tego co rozumiem to ta linijka działa w określonej kolejności, czyli logowanie odbywa się już po translacji adresów, więc w logu brak jest informacji o ip wewnętrznym.
Chciałbym prosić o pomoc w rozpisaniu regułki tak żebym mógł zebrać informacje która maszyna wychodzi jakim ip i gdzie, czyli coś takiego jak output z pfctl -s state.
Z góry dziękuję za pomoc.
Offline
Może coś z poniższych zadziała. PF-em się pobawiłem, a potem zostały tylko skrypty i już trochę nie pamiętam.
#1 ext_if="em0" match out log (all, to pflog0) on $ext_if inet from {192.168.10.0/24, 10.10.1.0/24, 172.16.0.0/24} to any tag pakiet_bedzie_natowany pass out tagged pakiet_bedzie_natowany modulate state nat-to 20.20.20.20/32 source-hash 0x9c6fcc381f059d875b831ba9658d149b match out log (all, to pflog0) tagged pakiet_bedzie_natowany #2 ext_if="em0" match out log (all, to pflog0) on $ext_if inet from {192.168.10.0/24, 10.10.1.0/24, 172.16.0.0/24} to any tag pakiet_bedzie_natowany pass out log (all, to pflog0) tagged pakiet_bedzie_natowany modulate state nat-to 20.20.20.20/32 source-hash 0x9c6fcc381f059d875b831ba9658d149b
Do czytania logów:
tcpdump -n -e -ttt -i pflog0
Ostatnio edytowany przez uzytkownikubunt (2016-11-28 15:16:01)
Offline
To jak podejrzewam, czytałeś:
http://openbsd.das.ufsc.br/faq/pf/pl/index.html
Ostatnio edytowany przez Jacekalex (2016-11-28 19:00:30)
Offline
A chyba trzeba jeszcze interfejs pflog podnieść
ifconfig pflog up
Offline
Dziękuję za odpowiedzi.
Samo logowanie działa, problem jest taki że nie loguje tego co potrzeba.
Sprawdzę zaproponowane rozwiązanie.
Linka oczywiście przestudiowałem przed zadaniem pytania, ale nie wszystko było jasne na tyle żebym sam doszedł do rozwiązania problemu.
Offline
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00094 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.47.245' WHERE u.id=1 |
0.00080 | UPDATE punbb_online SET logged=1733246739 WHERE ident='3.145.47.245' |
0.00053 | SELECT * FROM punbb_online WHERE logged<1733246439 |
0.00075 | DELETE FROM punbb_online WHERE ident='18.220.206.141' |
0.00085 | DELETE FROM punbb_online WHERE ident='3.14.132.43' |
0.00077 | DELETE FROM punbb_online WHERE ident='3.141.30.147' |
0.00104 | DELETE FROM punbb_online WHERE ident='52.14.6.41' |
0.00080 | SELECT topic_id FROM punbb_posts WHERE id=307185 |
0.00010 | SELECT id FROM punbb_posts WHERE topic_id=29180 ORDER BY posted |
0.00054 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=29180 AND t.moved_to IS NULL |
0.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00172 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=29180 ORDER BY p.id LIMIT 0,25 |
0.00075 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=29180 |
Total query time: 0.00979 s |