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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2016-07-09 12:55:18

  manmartin - Użytkownik

manmartin
Użytkownik
Zarejestrowany: 2016-07-09

Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

Mam postawiony serwer na debianie 7
Adres wew 10.0.0.1
zewn 95.171.197.XX

Do tego klient Openvpn - Openwrt połaczony modem Hilink do MR3420
Adres wew 192.168.1.1

Wszystko śmiga pięknie, (mogę udostępnić działająca konfigurację Openvpn i routingu jeżeli ktoś ma jakiś problem z konfiguracją). Routing na serwerze mam ustawiony tak że z sieci 10.0.0.0/24 mam dostęp do 192.168.1.1 i 192.168.1.10, działa też przekierowanie portu na adres IP:

Kod:

iptables -t nat -A PREROUTING -i eth3 -p tcp -d 10.0.0.1 --dport 9000 -j DNAT --to 192.168.1.10:9000

ale po dodaniu

Kod:

iptables -t nat -A PREROUTING -i eth2 -p tcp -d 95.171.197.XX --dport 9000 -j DNAT --to 192.168.1.10:9000

dostępu z zewnątrz nie mam po tym porcie

Dodam że net jest dostarczony przez PPPoE, próbowałem też wskazać interfejs ppp0, ale bez zmian.

ifconfig:

Kod:

eth2      Link encap:Ethernet  HWaddr 90:2b:34:d5:32:91  
          inet6 addr: fe80::922b:34ff:fed5:3291/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22017 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13523 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:21948453 (20.9 MiB)  TX bytes:1845039 (1.7 MiB)
          Interrupt:41 

eth3      Link encap:Ethernet  HWaddr ec:08:6b:02:ad:d5  
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::ee08:6bff:fe02:add5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16850 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24341 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1952418 (1.8 MiB)  TX bytes:21332901 (20.3 MiB)
          Interrupt:40 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:172 errors:0 dropped:0 overruns:0 frame:0
          TX packets:172 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:20132 (19.6 KiB)  TX bytes:20132 (19.6 KiB)

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:95.171.197.81  P-t-P:10.161.1.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1480  Metric:1
          RX packets:21072 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13461 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:21161817 (20.1 MiB)  TX bytes:1544997 (1.4 MiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:1861 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1559 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:522900 (510.6 KiB)  TX bytes:231835 (226.4 KiB)

IPtables (do testów wywaliłem wszystkie zasady blokujące, ale bez zmian):

Kod:

# wlaczenie w kernelu forwardowania 
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
# Ochrona przed atakiem typu Smurf
/bin/echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Nie aktceptujemy pakietow "source route"
/bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Nie przyjmujemy pakietow ICMP rediect, ktore moga zmienic tablice routingu
/bin/echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Wlaczamy ochrone przed blednymi komunikatami ICMP error
/bin/echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Wlaczenie mechanizmu wykrywania oczywistych falszerstw 
# (pakiety znajdujace sie tylko tablicy routingu)
/bin/echo 65536 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
/bin/echo 36024 > /proc/sys/net/ipv4/tcp_max_syn_backlog
# zwiekszenie rozmaru tablicy ARP
/bin/echo 1024 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
/bin/echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
/bin/echo 8192 > /proc/sys/net/ipv4/neigh/default/gc_thresh3
# Blokada przed atakami typu SYN FLOODING
/bin/echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# WĹ‚aczenie proxy arp - dzieki temu serwer nie zdycha po kilku
#/bin/echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
# Zwiekszenie rozmiarutablic routingu
/bin/echo "18192" > /proc/sys/net/ipv4/route/max_size

# czyszczenie starych regul
iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
iptables -t mangle -F
iptables -t mangle -X

# ustawienie domyslnej polityki
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

#iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP
#iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP
#iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP


# utrzymanie polaczen nawiazanych
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED

# udostepniaie internetu w sieci lokalnej
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT


iptables -t nat -A PREROUTING -i ppp0 -p tcp -d 95.171.197.XX --dport 9000 -j DNAT --to 192.168.1.10:9000
iptables -t nat -A PREROUTING -i ppp0 -p tcp -d 95.171.197.XX --dport 9001 -j DNAT --to 192.168.1.1:80
iptables -t nat -A PREROUTING -i ppp0 -p tcp -d 95.171.197.XX --dport 9002 -j DNAT --to 192.168.1.10:80
iptables -t nat -A PREROUTING -i eth2 -p tcp -d 95.171.197.XX --dport 9000 -j DNAT --to 192.168.1.10:9000
iptables -t nat -A PREROUTING -i eth2 -p tcp -d 95.171.197.XX --dport 9001 -j DNAT --to 192.168.1.1:80
iptables -t nat -A PREROUTING -i eth2 -p tcp -d 95.171.197.XX --dport 9002 -j DNAT --to 192.168.1.10:80
iptables -t nat -A PREROUTING -i eth3 -p tcp -d 10.0.0.1 --dport 9000 -j DNAT --to 192.168.1.10:9000
iptables -t nat -A PREROUTING -i eth3 -p tcp -d 10.0.0.1 --dport 9001 -j DNAT --to 192.168.1.1:80
iptables -t nat -A PREROUTING -i eth3 -p tcp -d 10.0.0.1 --dport 9002 -j DNAT --to 192.168.1.10:80

Jak wystawić te porty do WAN tak samo jak wystawiam do LAN, żeby działało?

Ostatnio edytowany przez manmartin (2016-07-09 12:55:40)

Offline

 

#2  2016-07-09 13:15:31

  mati75 - Psuj

mati75
Psuj
Skąd: default city
Zarejestrowany: 2010-03-14
Serwis

Re: Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

Dodaj:

Kod:

iptables -A PREROUTING -i ppp0 -p tcp -m tcp --dport 9000 -j DNAT --to-destination 192.168.1.10:9000

[img]https://l0calh0st.pl/obrazki/userbar.png[/img]

Offline

 

#3  2016-07-09 13:23:53

  manmartin - Użytkownik

manmartin
Użytkownik
Zarejestrowany: 2016-07-09

Re: Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

Po wpisaniu tego pojawia się:

Kod:

 iptables -A PREROUTING -i ppp0 -p tcp -m tcp --dport 9000 -j DNAT --to-destination 192.168.1.10:9000
iptables: No chain/target/match by that name.

Mam dodać -d 95.171.197.XX ?

Offline

 

#4  2016-07-09 13:34:01

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

Dodać opcję -t nat.

Offline

 

#5  2016-07-09 13:44:34

  manmartin - Użytkownik

manmartin
Użytkownik
Zarejestrowany: 2016-07-09

Re: Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

Dodałem i dalej nie działa.
Może to być wina tego że na kliencie openvpn jest tylko trasa do 10.0.0.0/24 a nie ma trasy do 95.171.197.00/24 ?

Offline

 

#6  2016-07-09 13:52:46

  mati75 - Psuj

mati75
Psuj
Skąd: default city
Zarejestrowany: 2010-03-14
Serwis

Re: Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

Raczej nie. Pokaż jeszcze:

Kod:

ip route show

[img]https://l0calh0st.pl/obrazki/userbar.png[/img]

Offline

 

#7  2016-07-09 13:53:48

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

Mapa interfejsów Debiana:
ppp0 - Internet
eth2 - ?
eth3 - LAN 10.0.0.0/24

Co jest na eth2?
Do którego interfejsu jest podłączony MR3420?

Offline

 

#8  2016-07-09 14:00:49

  manmartin - Użytkownik

manmartin
Użytkownik
Zarejestrowany: 2016-07-09

Re: Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

MR3420 podłaczony jest do Modemu Hilink
z serwerem łączy się przez tun0 (openvpn)
eth2 to fizyczny interfejs pod który jest podłaczone PPPoe

Offline

 

#9  2016-07-09 14:22:20

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

Czyli tun0 jest tunelem zestawionym na eth2?
Nie podałeś tablicy routingu (patrz post mati75).

Offline

 

#10  2016-07-09 14:25:54

  manmartin - Użytkownik

manmartin
Użytkownik
Zarejestrowany: 2016-07-09

Re: Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

Teraz coś padło z OpenVpn i stracilem dostęp do 192.168.1.1

Tutaj routing debiana:

Kod:

root@Hackeddomain:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         *               0.0.0.0         U     0      0        0 ppp0
10.0.0.0        *               255.255.255.0   U     0      0        0 eth3
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0
10.161.1.1      *               255.255.255.255 UH    0      0        0 ppp0
192.168.1.0     10.8.0.2        255.255.255.0   UG    0      0        0 tun0


root@Hackeddomain:~# ip route show
default dev ppp0  scope link
10.0.0.0/24 dev eth3  proto kernel  scope link  src 10.0.0.1
10.8.0.0/24 via 10.8.0.2 dev tun0
10.8.0.2 dev tun0  proto kernel  scope link  src 10.8.0.1
10.161.1.1 dev ppp0  proto kernel  scope link  src 95.171.197.81
192.168.1.0/24 via 10.8.0.2 dev tun0

tun0 to wirtualny interfejs openvpn i łaczy sie bezpośrednio z mr3420 (przez tunel 10.8.0.0/24)

Ostatnio edytowany przez manmartin (2016-07-09 14:27:36)

Offline

 

#11  2016-07-09 14:55:00

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

Co jest na 192.168.1.1 a co na 192.168.1.10?

Offline

 

#12  2016-07-09 15:19:22

  manmartin - Użytkownik

manmartin
Użytkownik
Zarejestrowany: 2016-07-09

Re: Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

192.168.1.1 zarządzanie konfiguracją openwrt, 192.168.1.10 rejestrator do monitoringu

Teraz coś się stało z tunelem i nie mam dostępu do 192.168.1.0/24

Ostatnio edytowany przez manmartin (2016-07-09 15:20:52)

Offline

 

#13  2016-07-10 22:15:46

  Yampress - Imperator

Yampress
Imperator
Zarejestrowany: 2007-10-18

Re: Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

Kod:

# ustawienie domyslnej polityki
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Chyba zdajesz sobie sprawe, że tymi 3 wpisami zrobiłeś firewall, który działa tak jakby firewalla w ogóle nie było.
Przemyśl sobie co zrobiłeś. Ogromna dziura w firewallu

Offline

 

#14  2016-07-13 14:00:35

  manmartin - Użytkownik

manmartin
Użytkownik
Zarejestrowany: 2016-07-09

Re: Wystawianie portów na zewnątrz IPTABLES NAT i OPENVPN

Na razie nie chodzi i o firewall, potrzebuje przekierować kilka portów z zewnętrznych hostów i tyle. Firewall zrobi się później za forewarding zacznie działać.
Próbowałem przekierować porty z 10.0.0.2 - jest to access point, zarządza nim się przez HTTP, wrzuciłem coś takiego do firewall:

Kod:

iptables -t nat -A PREROUTING -i ppp0 -p tcp -d 95.171.197.81 --dport 25542 -j DNAT --to 10.0.0.2:80
iptables -t nat -A PREROUTING -i ppp0 -p tcp -m tcp --dport 25543 -j DNAT --to-destination 10.0.0.2:80

i efekt jest taki że forewarding nie działa, jednak jeżeli jako IP docelowe dam wewnętrzne IP serwera (10.0.0.1) na którym jest firewall to wyświetla się stronka na serwerze.

Pomogła zmiana gateway na access poincie gateway na 10.0.0.1 (parę dni temu stał jeszcze router 10.0.0.254), jedynie zastanawia mnie fakt czemu ze złym gateway nie działa? skoro pakiet i tak trafia do 10.0.0.1 które forewarduje do 95.171,197.XX

W takim razie muszę skoro 192.168.1.1 ma tunel przez który lecą pakiety tylko do 10.0.0.0/24 (reszta leci od razu do neta) to mam dodać jeszcze routing do 95.171.197.00/24 ?

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.011 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00012 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00134 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='13.58.200.16' WHERE u.id=1
0.00233 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '13.58.200.16', 1732739845)
0.00053 SELECT * FROM punbb_online WHERE logged<1732739545
0.00060 SELECT topic_id FROM punbb_posts WHERE id=303254
0.00108 SELECT id FROM punbb_posts WHERE topic_id=28770 ORDER BY posted
0.00031 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=28770 AND t.moved_to IS NULL
0.00028 SELECT search_for, replace_with FROM punbb_censoring
0.00078 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=28770 ORDER BY p.id LIMIT 0,25
0.00093 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28770
Total query time: 0.00834 s