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/.
Commit jest.
Nie przekleił się. ;)
Offline
Potrzeba było jeszcze:
apt-get install xtables-addons-dkms
Teraz mam
iptables -t raw -S
-P PREROUTING ACCEPT
-P OUTPUT ACCEPT
-A PREROUTING -p tcp -m set --match-set whitelist src -j ACCEPT
-A PREROUTING -p tcp -m multiport ! --sports 80,443 -m set --match-set bt_level1 src -j STEAL
-A PREROUTING -m set --match-set bt_spyware src -j STEAL
-A PREROUTING -m set --match-set bt_webexploit src -j STEAL
-A OUTPUT -p tcp -m set --match-set whitelist dst -j ACCEPT
-A OUTPUT -p tcp -m multiport ! --dports 80,443 -m set --match-set bt_level1 dst -j STEAL
-A OUTPUT -m set --match-set bt_spyware dst -j STEAL
-A OUTPUT -m set --match-set bt_webexploit dst -j STEAL[/quote]iptables -t filter -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
-A OUTPUT -m state --state INVALID -j DROP[/quote]
Czyli tablica filter się nie dodała?
A poza tym uważam, że Debian jest najlepszy.
[url=http://ludolfina.pl]ludolfina.pl[/url]Offline
W sumie to faktycznie, nie ma tego pakietu w texcie. Myślałem, że xtables-addons-common automatycznie dociągnie go. Zaraz to dopiszę.
Co do reguł, to tak powinno wyglądać. Sprawdź sobie jak pakiety latają przez
watch -n 0.5 "iptables -nvL" watch -n 0.5 "iptables -nvL -t raw"
Offline
Chain PREROUTING (policy ACCEPT 529K packets, 725M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 match-set whitelist src
9 432 STEAL tcp — * * 0.0.0.0/0 0.0.0.0/0 multiport sports !80,443 match-set bt_level1 src
9 1494 STEAL all — * * 0.0.0.0/0 0.0.0.0/0 match-set bt_spyware src
0 0 STEAL all — * * 0.0.0.0/0 0.0.0.0/0 match-set bt_webexploit src
Chain OUTPUT (policy ACCEPT 307K packets, 36M bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 match-set whitelist dst
24 1440 STEAL tcp — * * 0.0.0.0/0 0.0.0.0/0 multiport dports !80,443 match-set bt_level1 dst
0 0 STEAL all — * * 0.0.0.0/0 0.0.0.0/0 match-set bt_spyware dst
0 0 STEAL all — * * 0.0.0.0/0 0.0.0.0/0 match-set bt_webexploit dst[/quote]
Coś tam lata do tego celu STEAL. Dlaczego w liście bt_level1 są tylko tcp? Nie powinno być all?
A poza tym uważam, że Debian jest najlepszy.
[url=http://ludolfina.pl]ludolfina.pl[/url]
Offline
Ciekawe pytanie i na dobrą sprawę to nie mam pojęcia. xD Tak zasugerował Jacekalex . Ja sobie właśnie wrzuciłem regułę od udp by zobaczyć czy gdzieś jakieś pakiety lecą, no i lecą. :]
Jacekalex -- mógłbyś napisać czy te pakiety wysyłane po udp na adresy zakazane mają jakieś znaczenie? Puścić je czy blokować? Ich jest w sumie 2-3x więcej niż tych po tcp.
Ostatnio edytowany przez morfik (2014-01-14 12:14:39)
Offline
To, ze udp jest wiecej mnie nie dziwi.
Dlaczego masz:
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -j REJECT --reject-with icmp-proto-unreachable[/quote]
zamiast -j DROP
?
A poza tym uważam, że Debian jest najlepszy.
[url=http://ludolfina.pl]ludolfina.pl[/url]
Offline
Zajrzyj pod https://wiki.archlinux.org/index.php/Simple_Stateful_Firewall#The_INPUT_chain
We reject TCP connections with TCP RST packets and UDP streams with ICMP port unreachable messages if the ports are not opened. This imitates default Linux behavior (RFC compliant), and it allows the sender to quickly close the connection and clean up.
For other protocols, we add a final rule to the INPUT chain to reject all remaining incoming traffic with icmp protocol unreachable messages. This imitates Linux's default behavior.[/quote]
Ja się jeszcze za bardzo nie wgryzałem w iptables, ale mam to w planach i sobie to kiedyś rozpiszę. Póki co, tylko experymentuje.Ostatnio edytowany przez morfik (2014-01-14 14:42:53)
Offline
Mi się wydaję, że lepiej, żeby komputer był niewidoczny, ;)
Offline
Trochę inna sprawa z tym drop. Próbowałeś kiedyś skanować swój komputer? Przy reject odpowiadasz, że "nie". Przy drop nie odpowiadasz nic.(o ile dobrze pamiętam)
Zmieniłem sobie na DROP i różnicy nie widzę. Możesz napisać, co pogarsza zmiana REJECT na DROP?
Offline
Zadałem to pytanie na stackexchange i dostałem taką odpowiedź (kawałek z niej):
A common reason for using DROP rather than REJECT is to avoid giving away information about which ports are open, however, discarding packets gives away exactly as much information as the rejection.
With REJECT, you do your scan and categorise the results into "connection established" and "connection rejected".
With DROP, you categorise the results into "connection established" and "connection timed out".
The most trivial scanner will use the operating system "connect" call and will wait until one connection attempt is completed before starting on the next. This type of scanner will be slowed down considerably by dropping packets. However, if the attack sets a timeout of 5 seconds per connection attempt, it is possible to scan every reserved port (1..1023) on a machine in just 1.5 hours. Scans are always automated, and an attacker doesn't care that the result isn't immediate.
A more sophisticated scanner will send packets itself rather than relying on the operating system's TCP implementation. Such scanners are fast, efficient and indifferent to the choice of REJECT or DROP.
CONCLUSION
DROP offers no effective barrier to hostile forces but can dramatically slow down applications run by legitimate users. DROP should not normally be used.[/quote]
A tu jeszcze link http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-rejectOstatnio edytowany przez morfik (2014-01-15 16:45:49)
Offline
Cel STEAL tak jak i DROP blokuje wszystko.
Wszystko na ten temat jest w manie i helpach.
REJECT odbija pakiet syn z komunikatem ICMP o błędzie, przy czym opcja tcp-reset działa tylko dla połączenia tcp, przy ustawieniu na udp wywali bląd.
Poza tym, jak ktoś tego nie rozumie, to ustawić reguły dla adresu np 127.0.15.14 i skanować ten adres przy pomocy nmapa przy rożnych typach ustawień fw.
Albo postawić WM na vboxie czy kvm i testować komunikację po tap lub vboxnet między dwoma systemami.
Tablica raw ogarnia pakiety zanim zacznie je śledzić mechanizm conntrack.
Dlatego ma tylko dwa łańcuchy, PREROUTING i OUTPUT.
Przykład testowania modułów xtables:
-A INPUT -d 127.0.2.1/32 -i lo -p udp -j REJECT --reject-with icmp-host-unreachable -A INPUT -d 127.0.2.1/32 -i lo -p tcp -j REJECT --reject-with tcp-reset -A INPUT -d 127.0.2.2/32 -i lo -j CHAOS --delude -A INPUT -d 127.0.2.3/32 -i lo -j CHAOS --tarpit -A INPUT -d 127.0.2.4/32 -i lo -j STEAL -A INPUT -d 127.0.2.5/32 -i lo -p tcp -j DELUDE -A INPUT -d 127.0.2.6/32 -i lo -j DROP -A INPUT -d 127.0.2.7/32 -i lo -p tcp -j TARPIT --tarpit -A INPUT -d 127.0.2.8/32 -i lo -p tcp -j TARPIT --honeypot -A INPUT -d 127.0.2.9/32 -i lo -p tcp -j TARPIT --reset -A INPUT ! -d 127.0.2.0/24 -i lo -j ACCEPT
Najweselsze wyniki nmap pokazuje przy DELUDE albo CHAOS --delude.
Ostatnio edytowany przez Jacekalex (2014-03-12 13:28:38)
Offline
Pomijając dyskusję na temat celów i ustawień zapory(to chyba lepiej w innym wątku) może wrócimy do drugiego problemu?
Dlaczego w bt_level1 są tylko połączęnia tcp?
Offline
Może jakiś update i wersja związana z systemd?
Offline
Właśnie związany ze zmianą initu na systemd.
Offline
Trochę inna sprawa z tym drop. Próbowałeś kiedyś skanować swój komputer? Przy reject odpowiadasz, że "nie". Przy drop nie odpowiadasz nic.(o ile dobrze pamiętam)
Zmieniłem sobie na DROP i różnicy nie widzę. Możesz napisać, co pogarsza zmiana REJECT na DROP?[/quote]
Tak sobie czytam na sieci i znalazłem całkiem miłe wyjaśnienie:Upewniłem się, że mój firewall blokuje dostęp do serwera MySQL, ale nie za bardzo pasuje mi to, że nmap przez proste skanowanie portów jest w stanie powiedzieć, że na moim serwerze teoretycznie zainstalowany jest serwer MySQL. Jak to jest możliwe? Odpowiedź tkwi w sposobie, w jaki firewall odpowiada na żądanie połączenia. Jeśli reguła łańcucha trafia w sposób postępowania typu DROP – przychodzący pakiet po prostu jest ignorowany. Jest to zupełnie inny sposób niż ten, który wykonywany jest przez system operacyjny, gdy żadna aplikacja nie nasłuchuje na danym porcie – wówczas system odpowiada na żądanie pakietem TCP RST. Dlatego dość sprytny skaner portów jest w stanie odróżnić, który port jest nieużywany, a który zwyczajnie filtrowany. Jeśli chcemy, aby nasz firewall zachował się identycznie jak system operacyjny wystarczy w/w regułę zastąpić następującym wpisem:
1
iptables -A INPUT -p tcp --dport 3306 ! -s 127.0.0.1 -j REJECT --reject-with tcp-reset[/quote]
http://nfsec.pl/security/5607Offline
Znacznie ciekawsze możliwości dają cele TARPIT, STEAL, CHAOS, DELUDE.
Wszystkie z xtables-addons, na jaju 3.14 na razie się nie kompiluje.
I jak zwykle na nfsec przykład z doopy wzięty, bo w przypadku domyślnej akcji DROP, wszystkie 65536 portów dropuje pakiety (z wyjątkiem portów otwartych dla poszczególnych usług), i niech sobie ktoś kombinuje, co się za dropowanymi portami kryje, jakież to tajne usługi tam wiszą :D
Jeśli takich portów ma np 65520, to przyjemnej zabawy życzę.
Jeśli natomiast mamy adres hosta, i na nim stoi Wordpress, to skąd możemy wiedzieć, czy tam jest Mysql, czy nie ma. :D
Jak myślicie, na Dugu jest Mysql? albo PostgreSQL?
Skąd to można wiedzieć? :DDD
Nie wiem, kto pisze na tym nfsec, ale jakieś niezła bałwaneria chyba. która pisze o sprawach, których w ogóle nie rozumie, np pisze o firewallu nie rozumiejąc znaczenia polityki domyślnej, tak, jakby zagadnienie firewalla dzieliło się na 65536 odrębnych zagadnień dla poszczególnych portów, każdego osobno.
W takim pisaniu w ogóle nie widać logiki rozumowania, tylko dosłownie pieprzenie.
System i tak zawsze będzie na tyle bezpieczny, jak administrator systemu kumaty, i to w zasadzie wszystko.
Offline
Ten STEAL target został już porzucony jakiś czas temu — http://sourceforge.net/p/xtables-addons/xtables-addons/ci/f28cfff13889481427d63a815371c3bfc8926c7f/
Jak myślicie, na Dugu jest Mysql?[/quote]
Ja wiem ze tu jest mysql, już tyle razy się wysypał i wywalił mi błęda o zbyt dużej liczbie połączeń, że się zastanawiam czy to ja może coś tu psuje. xD
Offline
U mnie na jaju 3.13.x STEAL działał bez problemu, na 3.14.x nie udało mi się na razie xtables skompilować.
Offline
Ok.
ale jak te rozważania mają się do desktopu na którym nie ma żadnych usług uruchmionych?
Offline
ipset v6.21.1: Error in line 1: Hash is full, cannot add more eleme
Hmm...
Czy jakiś problem po aktualizacji ipset?
Offline
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00099 | 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.144.249.63' WHERE u.id=1 |
0.00075 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.144.249.63', 1732965838) |
0.00043 | SELECT * FROM punbb_online WHERE logged<1732965538 |
0.00056 | SELECT topic_id FROM punbb_posts WHERE id=251209 |
0.00006 | SELECT id FROM punbb_posts WHERE topic_id=24743 ORDER BY posted |
0.00052 | 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=24743 AND t.moved_to IS NULL |
0.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00135 | 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=24743 ORDER BY p.id LIMIT 25,25 |
0.00110 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=24743 |
Total query time: 0.00596 s |