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,
Posiadam VPS'a na którym chciałbym aby automatycznie ładowały się po restarcie następujące reguły iptables:
iptables -t nat -I PREROUTING -p tcp -i eth0 --dport 9981 -j DNAT --to 10.1.100.99:9981 iptables -I FORWARD -p tcp -d 10.1.100.99 --dport 9981 -j ACCEPT iptables -t nat -I PREROUTING -p tcp -i eth0 --dport 9080 -j DNAT --to 10.1.100.99:9080 iptables -I FORWARD -p tcp -d 10.1.100.99 --dport 9080 -j ACCEPT iptables -t nat -I PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to 10.1.100.99:80 iptables -I FORWARD -p tcp -d 10.1.100.99 --dport 80 -j ACCEPT
W tym celu posłużyłem się iptables-persistent - czyli wywołałem powyższe reguły iptables a następnie zainstalowałem iptables-persistent. Po restarcie i wylistowaniu reguł (iptables -L) widzę, że są one załadowane, jednak nie działają. Muszę je ponownie wywołać bezpośrednio w terminalu i wówczas wszystko działa poprawnie (przekierowanie portów na komputer podłączony jako klient VPN).
CZy da się coś z tym poradzić, abym nie musiał za każdym razem po restarcie VPS'a wklejać tych reguł do terminala? I generalnie dlaczego nie działają skoro są ładowane po restarcie?
Offline
Kolejność regułek ma znaczenie. Być może te regułki są poprzedzone innymi.
Przydałby się jakiś pełny listing regułek fireewalla po restarcie.
Ostatnio edytowany przez arecki (2017-11-02 16:53:59)
Offline
Dzięki za szybką odpowiedź.
Tak wygląda listing przed załadowaniem reguł:
root@qwerty:~# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination AS0_ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED AS0_ACCEPT all -- anywhere anywhere AS0_IN_PRE all -- anywhere anywhere mark match 0x2000000/0x2000000 AS0_ACCEPT udp -- anywhere qwerty state NEW udp dpt:openvpn AS0_ACCEPT tcp -- anywhere qwerty state NEW tcp dpt:https AS0_WEBACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED AS0_WEBACCEPT tcp -- anywhere qwerty state NEW tcp dpt:943 f2b-ssh tcp -- anywhere anywhere multiport dports ssh f2b-sshd tcp -- anywhere anywhere multiport dports ssh Chain FORWARD (policy ACCEPT) target prot opt source destination AS0_ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED AS0_IN_PRE all -- anywhere anywhere mark match 0x2000000/0x2000000 AS0_OUT_S2C all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination AS0_OUT_LOCAL all -- anywhere anywhere Chain AS0_ACCEPT (5 references) target prot opt source destination ACCEPT all -- anywhere anywhere Chain AS0_IN (3 references) target prot opt source destination ACCEPT all -- anywhere 172.27.224.1 AS0_IN_POST all -- anywhere anywhere Chain AS0_IN_NAT (0 references) target prot opt source destination MARK all -- anywhere anywhere MARK or 0x8000000 ACCEPT all -- anywhere anywhere Chain AS0_IN_POST (1 references) target prot opt source destination AS0_OUT all -- anywhere anywhere DROP all -- anywhere anywhere Chain AS0_IN_PRE (2 references) target prot opt source destination AS0_IN all -- anywhere 192.168.0.0/16 AS0_IN all -- anywhere 172.16.0.0/12 AS0_IN all -- anywhere 10.0.0.0/8 ACCEPT all -- anywhere anywhere Chain AS0_IN_ROUTE (0 references) target prot opt source destination MARK all -- anywhere anywhere MARK or 0x4000000 ACCEPT all -- anywhere anywhere Chain AS0_OUT (2 references) target prot opt source destination AS0_OUT_POST all -- anywhere anywhere Chain AS0_OUT_LOCAL (1 references) target prot opt source destination DROP icmp -- anywhere anywhere icmp redirect ACCEPT all -- anywhere anywhere Chain AS0_OUT_POST (1 references) target prot opt source destination DROP all -- anywhere anywhere Chain AS0_OUT_S2C (1 references) target prot opt source destination AS0_OUT all -- anywhere anywhere Chain AS0_WEBACCEPT (2 references) target prot opt source destination ACCEPT all -- anywhere anywhere Chain f2b-ssh (1 references) target prot opt source destination RETURN all -- anywhere anywhere Chain f2b-sshd (1 references) target prot opt source destination RETURN all -- anywhere anywhere
A tak po załadowaniu reguł:
root@qwerty:~# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination AS0_ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED AS0_ACCEPT all -- anywhere anywhere AS0_IN_PRE all -- anywhere anywhere mark match 0x2000000/0x2000000 AS0_ACCEPT udp -- anywhere qwerty state NEW udp dpt:openvpn AS0_ACCEPT tcp -- anywhere qwerty state NEW tcp dpt:https AS0_WEBACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED AS0_WEBACCEPT tcp -- anywhere qwerty state NEW tcp dpt:943 f2b-ssh tcp -- anywhere anywhere multiport dports ssh f2b-sshd tcp -- anywhere anywhere multiport dports ssh Chain FORWARD (policy ACCEPT) target prot opt source destination [*] ACCEPT tcp -- anywhere 10.1.100.99 tcp dpt:http [*] ACCEPT tcp -- anywhere 10.1.100.99 tcp dpt:9080 [*] ACCEPT tcp -- anywhere 10.1.100.99 tcp dpt:9981 AS0_ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED AS0_IN_PRE all -- anywhere anywhere mark match 0x2000000/0x2000000 AS0_OUT_S2C all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination AS0_OUT_LOCAL all -- anywhere anywhere Chain AS0_ACCEPT (5 references) target prot opt source destination ACCEPT all -- anywhere anywhere Chain AS0_IN (3 references) target prot opt source destination ACCEPT all -- anywhere 172.27.224.1 AS0_IN_POST all -- anywhere anywhere Chain AS0_IN_NAT (0 references) target prot opt source destination MARK all -- anywhere anywhere MARK or 0x8000000 ACCEPT all -- anywhere anywhere Chain AS0_IN_POST (1 references) target prot opt source destination AS0_OUT all -- anywhere anywhere DROP all -- anywhere anywhere Chain AS0_IN_PRE (2 references) target prot opt source destination AS0_IN all -- anywhere 192.168.0.0/16 AS0_IN all -- anywhere 172.16.0.0/12 AS0_IN all -- anywhere 10.0.0.0/8 ACCEPT all -- anywhere anywhere Chain AS0_IN_ROUTE (0 references) target prot opt source destination MARK all -- anywhere anywhere MARK or 0x4000000 ACCEPT all -- anywhere anywhere Chain AS0_OUT (2 references) target prot opt source destination AS0_OUT_POST all -- anywhere anywhere Chain AS0_OUT_LOCAL (1 references) target prot opt source destination DROP icmp -- anywhere anywhere icmp redirect ACCEPT all -- anywhere anywhere Chain AS0_OUT_POST (1 references) target prot opt source destination DROP all -- anywhere anywhere Chain AS0_OUT_S2C (1 references) target prot opt source destination AS0_OUT all -- anywhere anywhere Chain AS0_WEBACCEPT (2 references) target prot opt source destination ACCEPT all -- anywhere anywhere Chain f2b-ssh (1 references) target prot opt source destination RETURN all -- anywhere anywhere Chain f2b-sshd (1 references) target prot opt source destination RETURN all -- anywhere anywhere
Ostatnio edytowany przez tenson (2017-11-02 18:19:05)
Offline
To jeszcze wypadałoby wskazać w tym powyższym listingu te nowe regułki.
Inna sprawa, że nie pokazałeś analogicznych listingów dla tablicy NAT.
A już poza tematem, ten twój "firewall" jest bez sensu (polityka ACCEPT w powiązaniu z obecnymi regułkami).
Ostatnio edytowany przez arecki (2017-11-02 17:17:10)
Offline
To, że wygląda bez sensu to inna sprawa, ale takie są defaultowe zaraz po utworzeniu nowego świeżego VPS. Jeżeli zrobię flush wszystkiego to uwalę VPS'a (już próbowałem, na szczęście zrobiłem snapshota).
Natomiast w drugim listingu zaznaczyłem gwiazdką [*] nowe reguły które pojawiły się po ich dodaniu (edytowałem post przed chwilą).
Ostatnio edytowany przez tenson (2017-11-02 18:20:43)
Offline
[quote=tenson]w drugim listingu zaznaczyłem gwiazdką [*] nowe reguły które pojawiły się po ich dodaniu (edytowałem post przed chwilą).[/quote]
Wciąż brak tablicy nat.
[quote=tenson]To, że wygląda bez sensu to inna sprawa,[/quote]
Dlatego napisałem "poza tematem".
Offline
Ok, już poprawiam. Mam nadzieję, że o to chodzi.
Tablice NAT
Przed wywołaniem reguł z pierwszego posta:
root@qwerty:~# iptables -t nat -v -L -n --line-number Chain PREROUTING (policy ACCEPT 17 packets, 1262 bytes) num pkts bytes target prot opt in out source destination 1 0 0 AS0_NAT_PRE_REL_EST all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED Chain INPUT (policy ACCEPT 17 packets, 1262 bytes) num pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 AS0_NAT_POST_REL_EST all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 AS0_NAT_PRE all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x2000000/0x2000000 Chain AS0_NAT (3 references) num pkts bytes target prot opt in out source destination 1 0 0 SNAT all -- * eth0 0.0.0.0/0 0.0.0.0/0 to:[ZEWNĘTRZNY IP SERWERA VPS] 2 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain AS0_NAT_POST_REL_EST (1 references) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain AS0_NAT_PRE (1 references) num pkts bytes target prot opt in out source destination 1 0 0 AS0_NAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x8000000/0x8000000 2 0 0 AS0_NAT_TEST all -- * * 0.0.0.0/0 192.168.0.0/16 3 0 0 AS0_NAT_TEST all -- * * 0.0.0.0/0 172.16.0.0/12 4 0 0 AS0_NAT_TEST all -- * * 0.0.0.0/0 10.0.0.0/8 5 0 0 AS0_NAT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain AS0_NAT_PRE_REL_EST (1 references) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain AS0_NAT_TEST (3 references) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT all -- * as0t+ 0.0.0.0/0 0.0.0.0/0 2 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x4000000/0x4000000 3 0 0 ACCEPT all -- * * 0.0.0.0/0 10.1.100.0/24 4 0 0 ACCEPT all -- * * 0.0.0.0/0 172.27.224.0/20 5 0 0 AS0_NAT all -- * * 0.0.0.0/0 0.0.0.0/0
Po wywołaniu reguł z pierwszego posta:
root@qwerty:~# iptables -t nat -v -L -n --line-number Chain PREROUTING (policy ACCEPT 24 packets, 2770 bytes) num pkts bytes target prot opt in out source destination 1 6 360 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:10.1.100.99:80 2 0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9080 to:10.1.100.99:9080 3 0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9981 to:10.1.100.99:9981 4 0 0 AS0_NAT_PRE_REL_EST all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED Chain INPUT (policy ACCEPT 24 packets, 2770 bytes) num pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 6 packets, 422 bytes) num pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 12 packets, 782 bytes) num pkts bytes target prot opt in out source destination 1 0 0 AS0_NAT_POST_REL_EST all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 AS0_NAT_PRE all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x2000000/0x2000000 Chain AS0_NAT (3 references) num pkts bytes target prot opt in out source destination 1 0 0 SNAT all -- * eth0 0.0.0.0/0 0.0.0.0/0 to:[ZEWNĘTRZNY IP SERWERA VPS] 2 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain AS0_NAT_POST_REL_EST (1 references) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain AS0_NAT_PRE (1 references) num pkts bytes target prot opt in out source destination 1 0 0 AS0_NAT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x8000000/0x8000000 2 0 0 AS0_NAT_TEST all -- * * 0.0.0.0/0 192.168.0.0/16 3 0 0 AS0_NAT_TEST all -- * * 0.0.0.0/0 172.16.0.0/12 4 0 0 AS0_NAT_TEST all -- * * 0.0.0.0/0 10.0.0.0/8 5 0 0 AS0_NAT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain AS0_NAT_PRE_REL_EST (1 references) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain AS0_NAT_TEST (3 references) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT all -- * as0t+ 0.0.0.0/0 0.0.0.0/0 2 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x4000000/0x4000000 3 0 0 ACCEPT all -- * * 0.0.0.0/0 10.1.100.0/24 4 0 0 ACCEPT all -- * * 0.0.0.0/0 172.27.224.0/20 5 0 0 AS0_NAT all -- * * 0.0.0.0/0 0.0.0.0/0
Offline
Jak widzisz po restarcie serwera nie ma tych regułek w żadnej z tablic, więc nie wiem gdzie ty je widziałeś.
Offline
No ok, a linie 1,2,3,4 na samej górze w drugim kodzie w poście #7 ???
Sorry za lamerskie pytania, ale kompletnie nie znam się na iptables więc proszę mi wybaczyć :)
Ostatnio edytowany przez tenson (2017-11-03 10:57:47)
Offline
[quote=tenson]No ok, a linie 1,2,3,4 na samej górze w drugim kodzie w poście #7 ???[/quote]
Proszę, oto te linie.
1 6 360 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:10.1.100.99:80 2 0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9080 to:10.1.100.99:9080 3 0 0 DNAT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9981 to:10.1.100.99:9981 4 0 0 AS0_NAT_PRE_REL_EST all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Tylko nie rozumiem o co pytasz, skoro są to linijki już po "ręcznym" dodaniu.
Pisałeś w pierwszej wiadomości, że:
[quote=tenson]Po restarcie i wylistowaniu reguł (iptables -L) widzę, że są one załadowane, jednak nie działają[/quote]
jednak przedstawione listingi temu przeczą.
Problem tkwi najprawdopodobniej w poniższym.
[quote=tenson]W tym celu posłużyłem się iptables-persistent - czyli wywołałem powyższe reguły iptables a następnie zainstalowałem iptables-persistent.[/quote]
Tu mogłeś popełnić błąd.
iptables-persistent trzyma swoje regułki w określonym miejscu, nie napisałeś jak je tam umieszczałeś.
Można tak
iptables-save > /sciezka/do/regulek
aby zapisać bieżący stan regułek iptables.
A tak:
iptables-restore < /sciezka/do/regulek
aby zaciągnąć regułki z wcześniej przygotowanego pliku.
No i jak wszystko będzie prawidłowo działać to wtedy trzeba zadbać o uruchamianie przy starcie umieszczając np. w /etc/network/if-pre-up.d/ skrypt uruchmiający
iptables-restore < /sciezka/do/regulek
W dobie systemd rozwiązanie powyższego jest zapewne inne.
Ostatnio edytowany przez arecki (2017-11-03 14:35:58)
Offline
Time (s) | Query |
---|---|
0.00009 | 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='18.223.43.106' WHERE u.id=1 |
0.00202 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.223.43.106', 1732704522) |
0.00053 | SELECT * FROM punbb_online WHERE logged<1732704222 |
0.00049 | SELECT topic_id FROM punbb_posts WHERE id=315177 |
0.00006 | SELECT id FROM punbb_posts WHERE topic_id=30025 ORDER BY posted |
0.00030 | 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=30025 AND t.moved_to IS NULL |
0.00021 | SELECT search_for, replace_with FROM punbb_censoring |
0.00163 | 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=30025 ORDER BY p.id LIMIT 0,25 |
0.00081 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=30025 |
Total query time: 0.00717 s |