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,
mam serwer dedykowany z Debianem 7.4. Chciałem dzisiaj postawić na nim VPS z Freebsd 10. Jakiś czas temu postawiłem VPS z Freebsd 8.0 jednak teraz muszę przejść do 10 bo wymagają tego binarki gry.
Wtedy przekierowywałem porty ssh,ftp,mysql etc. używając czegoś takiego
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2230 -j DNAT --to 192.168.100.167:22 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 2230 -j DNAT --to 192.168.100.167:22 iptables -A FORWARD -i eth0 -o virbr0 -p tcp --dport 2230 -j ACCEPT; iptables -A FORWARD -i eth0 -o virbr0 -p udp --dport 2230 -j ACCEPT;
i wszystko działało, teraz jeśli łaczę się przez putty przez ip zewnętrzne dedyka na porcie 2230 mam timed out natomiast jeśli najpierw zaloguję sie na ssh dedyka a potem wpisze ssh 192.168.100.167 mogę wejść do ssh freebsd. Freebsd ma dostęp do internetu pingowałem różne strony i pobierałem pliki.
Vps'a postawiłem przez Virtual Machine Manager
Ifconfig dedyka wygląda tak - http://screenshooter.net/100078482/vtohwnn
Ifconfig Freebsd wyglą tak - http://screenshooter.net/100078482/mewxxrh
Z góry dziękuję za pomoc
Offline
a włączyłeś IP forward?
echo 1 > /proc/sys/net/ipv4/ip_forward
albo w /etc/sysctl.conf
net.ipv4.ip_forward=1
Offline
Zrobiłem jak napisałeś bo faktycznie było na 0 jak tylko będę mógł za kilka h zresetuje sieć i powiem co z tego jest.
Offline
Mam Timed out
Offline
Kod:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2230 -j DNAT --to 192.168.100.167:22 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 2230 -j DNAT --to 192.168.100.167:22 iptables -A FORWARD -i eth0 -o virbr0 -p tcp --dport 2230 -j ACCEPT; iptables -A FORWARD -i eth0 -o virbr0 -p udp --dport 2230 -j ACCEPT;
DNAT zrobiony, a SNAT w drugą stronę krasnoludki mają zrobić?
Przecież jak pakiet wejdzie, to musi jakoś wrócić, jak już robisz NAT,
i działa PREROUTING, to jeszcze musisz zrobić SNAT albo maskaradę, żeby ten pakiet z powrotem też był prawidłowo adresowany, bo inaczej nigdzie nie dojdzie.
W dodatku nie pokazałeś całego FW, a w Netfilterze kluczowa jest kolejność reguł.
Ostatnio edytowany przez Jacekalex (2014-07-31 14:59:48)
Offline
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
@Jacekalex:
racja, to powinno załatwić sprawe
a przynajmniej u mnie działa
Ostatnio edytowany przez ramsi1986 (2014-07-31 15:25:34)
Offline
masz zmienny adres ip na dedyku?
bo jeśli nie to może lepiej zastosować prawidłowy target?
Offline
@ethanak mam stałe.
@Jacekalex jestem zielony w forwardowaniu te zasady iptables które napisałem 1 poście znalazłem w jakimś temacie na innym forum i działało po wklepaniu tych 4 linijek na każdy port.
iptables -S
-P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT -A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT -A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT -A FORWARD -d 192.168.100.0/24 -i eth0 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 192.168.100.0/24 -i virbr0 -o eth0 -j ACCEPT -A FORWARD -i virbr0 -o virbr0 -j ACCEPT -A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable -A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable -A FORWARD -i eth0 -o virbr0 -p tcp -m tcp --dport 2230 -j ACCEPT -A FORWARD -i eth0 -o virbr0 -p udp -m udp --dport 2230 -j ACCEPT
iptables -L
Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT udp -- anywhere anywhere udp dpt:domain ACCEPT tcp -- anywhere anywhere tcp dpt:domain ACCEPT udp -- anywhere anywhere udp dpt:bootps ACCEPT tcp -- anywhere anywhere tcp dpt:bootps Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere 192.168.100.0/24 state RELATED,ESTABLISHED ACCEPT all -- 192.168.100.0/24 anywhere ACCEPT all -- anywhere anywhere REJECT all -- anywhere anywhere reject-with icmp-port-unreachable REJECT all -- anywhere anywhere reject-with icmp-port-unreachable ACCEPT tcp -- anywhere anywhere tcp dpt:2230 ACCEPT udp -- anywhere anywhere udp dpt:2230 Chain OUTPUT (policy ACCEPT) target prot opt source destination
Najlepiej i chyba najszybciej by było jakby ktoś mi powiedział jak to zrobić krok po kroku :D
Ostatnio edytowany przez koxen (2014-07-31 22:05:27)
Offline
@Jacekalex jestem zielony w forwardowaniu te zasady iptables które napisałem 1 poście znalazłem w jakimś temacie na innym forum i działało po wklepaniu tych 4 linijek na każdy port.
W czytaniu jesteś jeszcze bardziej zielony, bo tam wyżej masz podane na tacy najprostsze rozwiązanie.
A tu jest dokumentacja:
http://pl.wikibooks.org/wiki/Sieci_w_Linuksie/Netfi … s#tablica_nat
http://pl.wikibooks.org/wiki/Sieci:Linux/Netfilter/iptables/akcje
Offline
Rozumiem że mówisz o
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
czyli z tymi linijkami co były w 1 poście jest ok?
Offline
podaj output:
iptables -L -t nat iptables -S -t nat
a co do krok po kroku, to mój firewall, robi to za pomocą kilku linijek:
#!/bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward # włącza forwardowanie IP iptables -P FORWARD ACCEPT # domyślnie przepuszcza cały ruch w łańcuchu FORWARD iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 9987 -j DNAT --to-destination XX.XX.XX.XX:9987 # przekierowanie portu 9987 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # maskarada
i zasadniczo to mi robi cała robotę. eth1 to mój interfejs zewnętrzny a eth0 wewnętrzny. jak chce przekierować kolejny port to dodaje kolejną linijkę, maskarada zawsze musi być na samym końcu, włączanie forwardowania IP na samym początku.
Ostatnio edytowany przez ramsi1986 (2014-07-31 22:42:01)
Offline
@ramsi1986
root@serv023180:~# iptables -L -t nat Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- anywhere anywhere tcp dpt:2230 to:19 2.168.100.167:22 DNAT tcp -- anywhere anywhere tcp dpt:2230 to:19 2.168.100.167:22 DNAT udp -- anywhere anywhere udp dpt:2230 to:19 2.168.100.167:22 Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE tcp -- 192.168.100.0/24 !192.168.100.0/24 masq ports: 1024- 65535 MASQUERADE udp -- 192.168.100.0/24 !192.168.100.0/24 masq ports: 1024- 65535 MASQUERADE all -- 192.168.100.0/24 !192.168.100.0/24 MASQUERADE all -- anywhere anywhere
root@serv023180:~# iptables -S -t nat -P PREROUTING ACCEPT -P INPUT ACCEPT -P OUTPUT ACCEPT -P POSTROUTING ACCEPT -A PREROUTING -i eth0 -p tcp -m tcp --dport 2230 -j DNAT --to-destination 192.168.100.167:22 -A PREROUTING -i eth0 -p tcp -m tcp --dport 2230 -j DNAT --to-destination 192.168.100.167:22 -A PREROUTING -i eth0 -p udp -m udp --dport 2230 -j DNAT --to-destination 192.168.100.167:22 -A POSTROUTING -s 192.168.100.0/24 ! -d 192.168.100.0/24 -o eth0 -p tcp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.100.0/24 ! -d 192.168.100.0/24 -o eth0 -p udp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.100.0/24 ! -d 192.168.100.0/24 -o eth0 -j MASQUERADE -A POSTROUTING -o eth0 -j MASQUERADE
Offline
pozbądź się tego:
koxen napisał(-a):
Kod:
-A POSTROUTING -s 192.168.100.0/24 ! -d 192.168.100.0/24 -o eth0 -p tcp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.100.0/24 ! -d 192.168.100.0/24 -o eth0 -p udp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.100.0/24 ! -d 192.168.100.0/24 -o eth0 -j MASQUERADE
skoro masz to na końcu:
-A POSTROUTING -o eth0 -j MASQUERADE
Offline
@ramsi1986 to dodał ten Virtual Machine Manager przy tworzeniu interfejsu, usuwam.
Offline
koxen napisał(-a):
@ramsi1986 to dodał ten Virtual Machine Manager przy tworzeniu interfejsu, usuwam.
wiesz co? daj mi wjazd przez SSH to Ci to naprawie... :)
Offline
@ramsi1986 napisałem PW
Offline
coś mi nie gra z tym mostkiem virbr0
Offline
@ramsi1986 to dodał ten Virtual Machine Manager przy tworzeniu interfejsu, usuwam.
Co i kto dodał?
Co to jest ten jakiśtam Manager?
Czy to jest z repo, czy znowu jakiś slitaśny manager chooj wie skąd?
Ostatnio edytowany przez Jacekalex (2014-07-31 23:02:21)
Offline
tak to jest jak sie gui używa :) śmieci dodaje, potem trzeba zamiatać :)
Offline
problem rozwiązany, te dwie linijki robiły bałagan:
iptables -A FORWARD -i eth0 -o virbr0 -p tcp --dport 2230 -j ACCEPT; iptables -A FORWARD -i eth0 -o virbr0 -p udp --dport 2230 -j ACCEPT;
wyczyściłem i napisałem prosty skrypcik, który uruchamia się przy starcie i sprząta wszystko.
#!/bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward iptables -F iptables -F -t nat iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 2230 -j DNAT --to-destination 192.168.100.167:22 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Offline
DZIĘKI DZIĘKI WIELKIE
Offline
pamiętaj, że masz wszystkie polityki ustawione na ACCEPT, powinieneś nad tym popracować :)
Offline