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/.
Strony: 1
Chcialem poznac dzialanie firewalla "statless" za pomoca netfilter_persistent. service na Ubuntu 16.04.
uname -a Linux robin-desktop 4.13.0-45-generic #50~16.04.1-Ubuntu SMP Wed May 30 11:18:27 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Zastosowalem regolke:
iptables -t raw -I PREROUTING -j NOTRACK iptables -t raw -I OUTPUT -j NOTRACK
Nastepnie:
sudo service netfilter-persistent start
i komunikat;
sudo service netfilter-persistent start Job for netfilter-persistent.service failed because the control process exited with error code. See "systemctl status netfilter-persistent.service" and "journalctl -xe" for details
Sprawdzam poprawnosc tablicy "raw":
sudo iptables-restore -t /etc/iptables/rules.v4 iptables-restore: line 2 failed
Laduje modul "raw":
modprobe -v iptable_raw
reboot i sprawdzam;
modinfo iptable_raw filename: /lib/modules/4.13.0-45-generic/kernel/net/ipv4/netfilter/iptable_raw.ko license: GPL srcversion: 47CC897C719E76996CC9459 depends: x_tables,ip_tables intree: Y name: iptable_raw vermagic: 4.13.0-45-generic SMP mod_unload
Sprawdzam jeszcze inaczej:
lsmod | grep iptable_raw root@robin-desktop:/home/robin# lsmod | grep ip_tables ip_tables 24576 3 iptable_mangle,iptable_filter,iptable_nat x_tables 40960 11 ipt_REJECT,iptable_mangle,ip_tables,ebtables,iptable_filter,xt_tcpudp,ipt_MASQUERADE,xt_CHECKSUM,ip6table_filter,xt_conntrack,ip6_tables
W dostepnych modulach "raw" nie ma.
ls /lib/modules/`uname -r`/kernel/net/netfilter/ipset nft_limit.ko xt_ipcomp.ko ipvs nft_log.ko xt_iprange.ko nf_conntrack_amanda.ko nft_masq.ko xt_ipvs.ko nf_conntrack_broadcast.ko nft_meta.ko xt_l2tp.ko nf_conntrack_ftp.ko nft_nat.ko xt_LED.ko nf_conntrack_h323.ko nft_numgen.ko xt_length.ko nf_conntrack_irc.ko nft_objref.ko xt_limit.ko nf_conntrack.ko nft_queue.ko xt_LOG.ko nf_conntrack_netbios_ns.ko nft_quota.ko xt_mac.ko nf_conntrack_netlink.ko nft_redir.ko xt_mark.ko nf_conntrack_pptp.ko nft_reject_inet.ko xt_multiport.ko nf_conntrack_proto_gre.ko nft_reject.ko xt_nat.ko nf_conntrack_sane.ko nft_rt.ko xt_NETMAP.ko nf_conntrack_sip.ko nft_set_bitmap.ko xt_nfacct.ko nf_conntrack_snmp.ko nft_set_hash.ko xt_NFLOG.ko nf_conntrack_tftp.ko nft_set_rbtree.ko xt_NFQUEUE.ko nf_dup_netdev.ko x_tables.ko xt_osf.ko nf_log_common.ko xt_addrtype.ko xt_owner.ko nf_log_netdev.ko xt_AUDIT.ko xt_physdev.ko nf_nat_amanda.ko xt_bpf.ko xt_pkttype.ko nf_nat_ftp.ko xt_cgroup.ko xt_policy.ko nf_nat_irc.ko xt_CHECKSUM.ko xt_quota.ko nf_nat.ko xt_CLASSIFY.ko xt_rateest.ko nf_nat_redirect.ko xt_cluster.ko xt_RATEEST.ko nf_nat_sip.ko xt_comment.ko xt_realm.ko nf_nat_tftp.ko xt_connbytes.ko xt_recent.ko nfnetlink_acct.ko xt_connlabel.ko xt_REDIRECT.ko nfnetlink_cthelper.ko xt_connlimit.ko xt_sctp.ko nfnetlink_cttimeout.ko xt_connmark.ko xt_SECMARK.ko nfnetlink.ko xt_CONNSECMARK.ko xt_set.ko nfnetlink_log.ko xt_conntrack.ko xt_socket.ko nfnetlink_queue.ko xt_cpu.ko xt_state.ko nf_synproxy_core.ko xt_CT.ko xt_statistic.ko nf_tables_inet.ko xt_dccp.ko xt_string.ko nf_tables.ko xt_devgroup.ko xt_tcpmss.ko nf_tables_netdev.ko xt_dscp.ko xt_TCPMSS.ko nft_compat.ko xt_DSCP.ko xt_TCPOPTSTRIP.ko nft_counter.ko xt_ecn.ko xt_tcpudp.ko nft_ct.ko xt_esp.ko xt_TEE.ko nft_dup_netdev.ko xt_hashlimit.ko xt_time.ko nft_exthdr.ko xt_helper.ko xt_TPROXY.ko nft_fib_inet.ko xt_hl.ko xt_TRACE.ko nft_fib.ko xt_HL.ko xt_u32.ko nft_fwd_netdev.ko xt_HMARK.ko nft_hash.ko xt_IDLETIMER.ko
W liscie zaladowanych modulow, etz nie.
cat /proc/net/ip_tables_matches conntrack conntrack conntrack udplite udp tcp icmp
Skoro ladowanie:
modprobe iptable_raw
nie dziala, to jak sobie z tym modulem poradzic?
Ostatnio edytowany przez Novi-cjusz (2018-06-24 20:33:38)
Offline
[quote=Novi-cjusz]
sudo service netfilter-persistent start
i komunikat;
sudo service netfilter-persistent start Job for netfilter-persistent.service failed because the control process exited with error code. See "systemctl status netfilter-persistent.service" and "journalctl -xe" for details
[/quote]
Offline
Jak by to bylo takie latwe to bym juz dawno mial zrobione.
systemctl status netfilter-persistent.service
bo uslugajest zaladowana ale nie aktywna.
Domyslam sie ze z powodu braku modulu "raw" niezbednego do dzialania tablicy "raw"
journalctl -xe
nic nie wnosi.
Mysle,ze trzeba komplowac Kernela.
Ostatnio edytowany przez Novi-cjusz (2018-06-24 17:16:08)
Offline
Pokaż wynik:
iptables -t raw -I OUTPUT DROP iptables -t raw -I PREROUTING DROP
To wyjaśni, czy tablica raw działa, czy nie.
xD
Bo u mnie wygląda to tak:
modinfo iptable_raw modinfo: ERROR: Module iptable_raw not found.
zgrep -i raw /proc/config.gz CONFIG_INET_RAW_DIAG=y CONFIG_IP_NF_RAW=y CONFIG_IP6_NF_RAW=y CONFIG_SERIO_RAW=y # CONFIG_RAW_DRIVER is not set CONFIG_SND_RAWMIDI=y CONFIG_HIDRAW=y # CONFIG_HID_UDRAW_PS3 is not set # CONFIG_USB_SERIAL_SIERRAWIRELESS is not set CONFIG_USB_GADGET_VBUS_DRAW=2
a tablica raw netfiltera chodzi bardzo grzecznie.
Pozdro
Ostatnio edytowany przez Jacekalex (2018-06-24 17:22:23)
Offline
iptables -t raw -I OUTPUT DROP iptables v1.6.0: Invalid rule number `DROP' Try `iptables -h' or 'iptables --help' for more information.
iptables -t raw -I PREROUTING DROP iptables v1.6.0: Invalid rule number `DROP' Try `iptables -h' or 'iptables --help' for more information.
Jestem w trakcie kompilowania Kernela.
Znalazlem "raw table support"
https://imgur.com/a/hSd1xlL
Nie wiem jak to zaladowac?
Przycisk Load otwiera takie okno:
https://imgur.com/a/y7Gx16o
Offline
Mój błąd, spróbuj:
iptables -t raw -P OUTPUT DROP iptables -t raw -P PREROUTING DROP
Offline
Te komendy odcinaja mnie od sieci.
Offline
[quote=Novi-cjusz]Te komendy odcinaja mnie od sieci.[/quote]
Jeżeli odcinają od sieci, to znaczy, że tablica RAW działa bardzo skutecznie. xD
Zdawało mi się, że chodziło Ci o to, żeby ten fakt dokładnie sprawdzić, i to się udało. :D
Zacznij teraz konfigurować firewalla skryptami a nie jakimiś kretyńskimi wynalazkami dla lamerow typu systemd i netfilter-persistent i wszystko będzie działało.
Tak jak u mnie.
PS:
Debian ma bardzo fajne miejsce do odpalania skryptu FW:
ls -l /etc/network/if-pre-up.d/ razem 0 lrwxrwxrwx 1 root root 24 sty 23 17:52 firewall -> /usr/local/sbin/firewall
Wstaje przy każdym uruchomieniu przed podniesieniem interfejsów sieciowych.
SOA#1
Ostatnio edytowany przez Jacekalex (2018-06-24 19:27:21)
Offline
Ciagle jest:
systemctl start netfilter-persistent Job for netfilter-persistent.service failed because the control process exited with error code. See "systemctl status netfilter-persistent.service" and "journalctl -xe" for details.
oraz:
systemctl status netfilter-persistent ● netfilter-persistent.service - netfilter persistent configuration Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; ve Active: failed (Result: exit-code) since Sun 2018-06-24 17:39:12 IST; 1min 0s Process: 6058 ExecStart=/usr/sbin/netfilter-persistent start (code=exited, sta Main PID: 6058 (code=exited, status=1/FAILURE) Jun 24 17:39:12 robin-desktop systemd[1]: Starting netfilter persistent configur Jun 24 17:39:12 robin-desktop netfilter-persistent[6058]: run-parts: executing / Jun 24 17:39:12 robin-desktop netfilter-persistent[6058]: run-parts: /usr/share/ Jun 24 17:39:12 robin-desktop netfilter-persistent[6058]: run-parts: executing / Jun 24 17:39:12 robin-desktop netfilter-persistent[6058]: run-parts: /usr/share/ Jun 24 17:39:12 robin-desktop systemd[1]: netfilter-persistent.service: Main pro Jun 24 17:39:12 robin-desktop systemd[1]: Failed to start netfilter persistent c Jun 24 17:39:12 robin-desktop systemd[1]: netfilter-persistent.service: Unit ent Jun 24 17:39:12 robin-desktop systemd[1]: netfilter-persistent.service: Failed w lines 1-15/15 (END)...skipping...
Dodam tylko, ze ta sama usluga netfilter-persistent na innym konfigu iptables dzialala dobrze, wnioskuje ze przyczyna problemu jest konfiguracja iptables.?
Chcialem to odpalic na Ubuntu, bo wczesniej podany przez Ciebie przepis z pre-up-d na Debianie dzialal bezblednie.
Nie wiem czy mozna tak samo sprobowac na Ubuntu???
Ostatnio edytowany przez Novi-cjusz (2018-06-24 18:51:27)
Offline
Można na Ubuntu, to w końcu system podobny do Debiana, nic tam nowego (na szczęście) w konsoli nie wymyślili, i nie spieprzyli za bardzo (na razie).
Ostatnio edytowany przez Jacekalex (2018-06-24 19:27:58)
Offline
Zrobilem ze skryptu (wylaczylem usluge netfilter-persistent w systemd), wszystko pieknie tylko mnie znowu odcina od Sieci.
Taki konfig:
#!/bin/sh # Stateless firewall! iptables -t raw -I PREROUTING -j NOTRACK iptables -t raw -I OUTPUT -j NOTRACK # Allow any established connections, dropping everything else iptables -A INPUT -p tcp \! --syn -j ACCEPT iptables -A OUTPUT -p tcp \! --syn -j ACCEPT iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT # icmp routing messages # Allow remote ssh and http access iptables -A INPUT -p tcp --dport 22 -j ACCEPT # ssh iptables -A INPUT -p tcp --dport 80 -j ACCEPT # http # Allow DNS lookups to be initiated from this server iptables -A OUTPUT -p udp --dport 53 -j ACCEPT # dns iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT # dns iptables -A INPUT -p udp --sport 53 -j ACCEPT # dns responses
Gdzie jest blad ?
Ostatnio edytowany przez Novi-cjusz (2018-06-24 20:02:18)
Offline
iptables -t raw -I PREROUTING -j NOTRACK iptables -t raw -I OUTPUT -j NOTRACK
to jest idiotyzm.
NOTRACK obecnie używa się chyba tylko w połączeniu z SYNPROXY, na serwerach WWW,
a nie dla całego ruchu, zwłaszcza na desktopie.
Firewall z kontrolą stanu pakietu wymaga tablicy CONNTRACK. te reguły powodują ominięcie tej tablicy, bez której reszta FW w ogóle nie wie, czy system nawiązał to połączenie czy przyszło z zewnątrz.
Takie gimnastyki w tablicy FITER:
iptables -A INPUT -p tcp \! --syn -j ACCEPT iptables -A OUTPUT -p tcp \! --syn -j ACCEPT
też nie mają żadnego sensu.
Cały skrypt jest zbyt idiotyczny, żeby go dalej komentować.
Chyba że to ma być na router, ale też nie tędy droga, jak chcesz przyspieszyć ruch na routerze, to używasz tylko tablicy RAW, i wtedy NOTRACK miałby jakiś sens.
Podobny jak blacklistowanie wszystkich modułów conntrack.
Jeśli natomiast używasz tablic NAT, MANGLE czy FILTER, to one działają tylko w oparciu o mechanizm CONNTRACK.
Ostatnio edytowany przez Jacekalex (2018-06-24 20:11:46)
Offline
Wlasnie w zamysle bylo wylaczenie kontroli stanu pakietow przez te 2 regolki.
Statefull --> Stateless.
Ze wzgledu na nadrzednosc tablicy "raw"
Dwie ostatnie regolki w zamysle to restrykcyjna kontrola TCP.
Jezeli polaczenie TCP jest ustanowione to przepusc.
Ten skrypt to tylko temat do przemyslen, rozwijanie bazy.
Ostatnio edytowany przez Novi-cjusz (2018-06-24 20:32:04)
Offline
[quote=Novi-cjusz]Wlasnie w zamysle bylo wylaczenie kontroli stanu pakietow przez te 2 regolki.
Statefull --> Stateless.
Ze wzgledu na nadrzednosc tablicy "raw"[/quote]
Jaki jest cel tej nadrzędności?
To jest router czy komputer stacjonarny lub laptop do pracy czy zabawy.
Przy zwykłym komputerze osobistym, który ma mniej niż 10 lat nie zauważysz żadnej różnicy w działaniu sieci.
Różnicę w wydajności zobaczysz dopiero, jak np przez starego kompa spróbujesz puścić ruch rzędu 1Gbit/s albo przez nowy rzędu 10Gbit/s.
Czyli net dla sporej liczby komputerów.
Np mój komp:
sty '18 56,31 GiB | 1,62 GiB | 57,93 GiB | 185,79 kbit/s lut '18 17,44 GiB | 633,56 MiB | 18,06 GiB | 64,12 kbit/s mar '18 80,82 GiB | 1,82 GiB | 82,64 GiB | 265,04 kbit/s kwi '18 103,10 GiB | 2,24 GiB | 105,34 GiB | 349,10 kbit/s maj '18 104,40 GiB | 2,08 GiB | 106,48 GiB | 341,51 kbit/s cze '18 34,38 GiB | 1,72 GiB | 36,11 GiB | 150,80 kbit/s ------------------------+-------------+-------------+--------------- estimated 43,33 GiB | 2,17 GiB | 45,50 GiB |
Offline
Bardziej szukalem zastosowania dla tablicy "raw" w zakresie uszczelnienia firewalla, przepustowosci nie bralem pod uwage.
Jak mozna zwiekszyc bezpieczenstwo desktopa wykorzystujac specyfike tabeli "raw" Taki byl moj zamysl.
Niestety w Sieci o "raw" nie ma zbyt wiele.
Dziekuje za profesjonalna (jak zwykle) porade. (;-)
Ostatnio edytowany przez Novi-cjusz (2018-06-24 20:32:33)
Offline
Do tablicy RAW elegancko pasują wszystkie filtry Ipseta, np Peerblock.
Można tam też dawać np limity pakietów na poszczególne porty, ale to już raczej na serwerze gier się przyda.
Działają tam też reguły modułu hashlimit, co może się przydać przy różnych usługach dostępu zdalnego, np SSH, serwera www, ftp czy innej usługi sieciowej.
Dla desktopa kluczowa jest tablica FILTER, mechanizm CONNTRACK, i ewentualnie np cgroup do filtrowania ruchu wychodzącego per/program.
Pozdro
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00012 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00105 | 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.31.64' WHERE u.id=1 |
0.00086 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.144.31.64', 1732183329) |
0.00064 | SELECT * FROM punbb_online WHERE logged<1732183029 |
0.00082 | 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=30503 AND t.moved_to IS NULL |
0.00007 | SELECT search_for, replace_with FROM punbb_censoring |
0.00208 | 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=30503 ORDER BY p.id LIMIT 0,25 |
0.00130 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=30503 |
Total query time: 0.00698 s |