Forwarding portów - Iptables
Moderatorzy: Moderatorzy, Administratorzy
Re: Forwarding portów - Iptables
To ja się dla odmiany zapytam:
forwarodanie portów tcp i udp w iptables (BEZ zewnętrzych programów) w obie strony...
Większośc zaproponowanych mi przez ludzi rozwiązań robi to tylko w jedną stronę (pakiety nie mogą dojść w drugą.. i w sumie nie wiem czemu)
forwarodanie portów tcp i udp w iptables (BEZ zewnętrzych programów) w obie strony...
Większośc zaproponowanych mi przez ludzi rozwiązań robi to tylko w jedną stronę (pakiety nie mogą dojść w drugą.. i w sumie nie wiem czemu)
[color=#888888][i][size=75]Whatever walks in my heart
Will walk alone...[/size][/i][/color]
Will walk alone...[/size][/i][/color]
Re: Forwarding portów - Iptables
hm... A moze tak zapodasz jakies rozwiazanie, ktore nie dziala?
Nie chce dawac Ci nastepnego niedzialajacego rozwiazania
Nie chce dawac Ci nastepnego niedzialajacego rozwiazania
--
jezior
"I znowu k$#%^ nie byłem asertywny!"
jezior
"I znowu k$#%^ nie byłem asertywny!"
- bzyk
- Moderator w st. spocz.
- Posty: 991
- Rejestracja: 2004-06-05, 06:32
- Lokalizacja: Pszczyna
- Kontakt:
Re: Forwarding portów - Iptables
pokaz wynik komendy iptables -L
In /dev/null no one can hear you scream.
Re: Forwarding portów - Iptables
iptables -t nat -A PREROUTING -p tcp -d ZEW_IP --dport 1:65535 -j DNAT --to WEW_IP
Naprzyklad tak.Przyklad nei ejst zly i dziala na 100%.Jesli Ci nie zadziala cos robisz zle.
Naprzyklad tak.Przyklad nei ejst zly i dziala na 100%.Jesli Ci nie zadziala cos robisz zle.
Re: Forwarding portów - Iptables
No więc ja próbowałem wystawić sobie swój ftp na zewnątrz, ustawiłem go na dziwny port:
A na serverze dodałem takie linijki:
tak wiem, udp nie jest potrzebne, ale to miało pierwotnie co innego robić. teraz: lokalnie na ftp:
natomiast z servera:
iptables:
Ja tego nie rozumiem.. wszyskim działa a mi nie.... gdzieś robię jakiś błąd ? coś trzeba w kenerla wkmpilować czy co?
Kod: Zaznacz cały
[ciuciu:root]:[~]: cat /etc/inetd.conf | grep 9176
9176 stream tcp nowait root /usr/sbin/tcpd proftpd
Kod: Zaznacz cały
iptables -A FORWARD -p tcp -d $EXTIP --dport 9176 -j TCPACCEPT
iptables -A FORWARD -p udp -d $EXTIP --dport 9176 -j TCPACCEPT
iptables -t nat -A PREROUTING -d $EXTIP -p tcp --dport 9176 -j DNAT --to 192.168.0.9
iptables -t nat -A PREROUTING -d $EXTIP -p udp --dport 9176 -j DNAT --to 192.168.0.9
Kod: Zaznacz cały
[ciuciu:ciuciu]:[~]: telnet localhost 9176
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 ProFTPD 1.2.9 Server (ProFTPD Default Installation) [ciuciu]
Kod: Zaznacz cały
[kroofka:root]:[~]: telnet localhost 9176
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Kod: Zaznacz cały
[kroofka:root]:[~]: iptables -L | grep 9176
TCPACCEPT tcp -- anywhere ri170 tcp dpt:9176
TCPACCEPT udp -- anywhere ri170 udp dpt:9176
[color=#888888][i][size=75]Whatever walks in my heart
Will walk alone...[/size][/i][/color]
Will walk alone...[/size][/i][/color]
Re: Forwarding portów - Iptables
Przede wszystkim do ftpa potrzeba dwóch portów TCP !!
# -- - - -------- FTP forwarding --------- - - --
iptables -I FORWARD -i $EXTIF -o $INTIF -p tcp --dport 4824 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A PREROUTING -i $EXTIF -t nat -p tcp -d $EXTIP --dport 4824 -j DNAT --to 192.168.1.24:4824
iptables -I FORWARD -i $EXTIF -o $INTIF -p tcp --dport 4825 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A PREROUTING -i $EXTIF -t nat -p tcp -d $EXTIP --dport 4825 -j DNAT --to 192.168.1.24:4825
#- -E-N-D- -
Zostało jeszcze ustawienie zakresu portów na serwerze ftp
np. Serv-U pod winde, dajesz 4824 - 4825
(konkretnie w <<local server>> -> settings -> advanced -> PASV port range)
i działa pięknie w trybie pasywnym w obie strony.
# -- - - -------- FTP forwarding --------- - - --
iptables -I FORWARD -i $EXTIF -o $INTIF -p tcp --dport 4824 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A PREROUTING -i $EXTIF -t nat -p tcp -d $EXTIP --dport 4824 -j DNAT --to 192.168.1.24:4824
iptables -I FORWARD -i $EXTIF -o $INTIF -p tcp --dport 4825 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A PREROUTING -i $EXTIF -t nat -p tcp -d $EXTIP --dport 4825 -j DNAT --to 192.168.1.24:4825
#- -E-N-D- -
Zostało jeszcze ustawienie zakresu portów na serwerze ftp
np. Serv-U pod winde, dajesz 4824 - 4825
(konkretnie w <<local server>> -> settings -> advanced -> PASV port range)
i działa pięknie w trybie pasywnym w obie strony.
Re: Forwarding portów - Iptables
Nawet jeśli porty do przesyłu pasywnego są zablokowane to normalnie można się zalogować (ale już nie listować np)... z tym że ja dostaje connection refused, a to nie powinno tak działać..
[color=#888888][i][size=75]Whatever walks in my heart
Will walk alone...[/size][/i][/color]
Will walk alone...[/size][/i][/color]
Re: Forwarding portów - Iptables
W kernelu - NAT of local connections
i regułka, żeby serwer mógł się dostać na przeforwardowany port:
iptables -t nat -A OUTPUT -o lo -d adres:port_lokalny -j DNAT --to-destination adres:port_zdalny
Zdaje się jakoś tak powinno być dla konkretnego portu. Używam tego przy SNAT/DNAT IP na inną maszynkę, na której jest serwer poczty, www itd, i działa z serwera, który robi SNAT/DNAT, a nie tylko z zewnątrz.
i regułka, żeby serwer mógł się dostać na przeforwardowany port:
iptables -t nat -A OUTPUT -o lo -d adres:port_lokalny -j DNAT --to-destination adres:port_zdalny
Zdaje się jakoś tak powinno być dla konkretnego portu. Używam tego przy SNAT/DNAT IP na inną maszynkę, na której jest serwer poczty, www itd, i działa z serwera, który robi SNAT/DNAT, a nie tylko z zewnątrz.
Firewall z maskaradą (udostępnianie połączenia sieciowego)
Kod: Zaznacz cały
#!/bin/sh
############################## KONFIGURACJA ###########################
# Dane wyjscia na swiat
INET_IP="192.168.1.1"
INET_IFACE="eth0"
INET_BROADCAST="0.0.0.0"
# Dane sieci wewnetrznej
LAN_IP="192.168.25.1"
LAN_ADMIN_IP="192.168.25.2"
LAN_IP_RANGE="192.168.25.0/24"
LAN_BROADCAST_ADDRESS="192.168.25.255"
LAN_IFACE="eth1"
# Dane localhosta
LO_IFACE="lo"
LO_IP="127.0.0.1"
# Gdzie jest program iptables?
IPTABLES="iptables"
#MAX ilosc polaczen na 1 usluge (bylo 5)
MAX_CON_SERV="10"
#MAX ilosc polaczen wszystkich na 1 IP w LANie
MAX_CON="20"
################################# MODULY ############################
# Moduly do zaladowania - nic nie trzeba ladowac bo wsio wkompilowane w kernel
# /sbin/depmod -a
#/sbin/modprobe ip_tables
#/sbin/modprobe ip_conntrack
#/sbin/modprobe iptable_filter
#/sbin/modprobe iptable_mangle
#/sbin/modprobe iptable_nat
#/sbin/modprobe ipt_LOG
#/sbin/modprobe ipt_limit
#/sbin/modprobe ipt_state
#/sbin/modprobe ipt_owner
#/sbin/modprobe ipt_REJECT
#/sbin/modprobe ipt_MASQUERADE
#/sbin/modprobe ip_conntrack_ftp
#/sbin/modprobe ip_conntrack_irc
#/sbin/modprobe ip_nat_ftp
#/sbin/modprobe ip_nat_irc
echo "1" > /proc/sys/net/ipv4/ip_forward
#echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
#echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
############################# LANCUCHY ###########################
# Podstawowe zasady dla lancuchow
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
# Tworzymy lancuch dla zlych pakietow TCP
$IPTABLES -N bad_tcp_packets
# Tworzymy lancuch dla zablokowanych hostow
$IPTABLES -N blocked_ips
# Tworzymy oddzielne lancuchy dla ICMP, TCP i UDP
$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets
######################### blocked_ips ########################
# Lancuch zablokowanych hostow (blokada na input)
#$IPTABLES -A blocked_ips -s z.z.z.z -j DROP
######################### bad_tcp_packets #####################
# Lancuch zlych pakietow TCP
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
############################## allowed #############################
# Dozwolone pakiety TCP
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP
############################ tcp_packets ########################
# Ograniczenie liczby polaczen z jednego IP z zewnatrz do 5 jednoczesnie
# dla WWW i FTP
#!!!
#$IPTABLES -A tcp_packets -p TCP -i $INET_IFACE -s 0/0 --dport 21 --syn -m connlimit --connlimit-above $MAX_CON_SERV -j DROP
#$IPTABLES -A tcp_packets -p TCP -i $INET_IFACE -s 0/0 --dport 80 --syn -m connlimit --connlimit-above $MAX_CON_SERV -j DROP
# Ograniczenie liczby polaczen z jednego IP z zewnatrz do 50 jednoczesnie
# dla innych uslug
#!!
#$IPTABLES -A tcp_packets -p TCP -i $INET_IFACE -s 0/0 --syn -m connlimit --connlimit-above $MAX_CON -j DROP
# Otwarte porty TCP
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 20 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --sport 20 --dport 1024:65000 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 25 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 53 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 110 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 119 -j allowed
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 143 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 389 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 443 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 8074 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 2002 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 4025 -j allowed
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 4661 -j allowed
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 4662 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 8767 -j allowed
#vpn
#$IPTABLES -A tcp_packets -p TCP --dport 1723 -j allowed
#$IPTABLES -A tcp_packets -p 47 -j allowed
############################# udp_packets ###########################
# Otwarte porty UDP
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 8767 -j ACCEPT
#$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 4665 -j ACCEPT
#$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 4672 -j ACCEPT
# Nie logowac broadcastow MS
$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d $INET_BROADCAST --destination-port 135:139 -j DROP
# Nie logowac requestow DHCP
$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d 255.255.255.255 --destination-port 67:68 -j DROP
############################## icmp_packets ###########################
# Otwarte ICMP
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
######################## INPUT CHAIN #########################
# Zablokowane IP-ki
$IPTABLES -A INPUT -j blocked_ips
# Zle pakiety TCP
$IPTABLES -A INPUT -p TCP -j bad_tcp_packets
# Siec wewnetrzna
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BROADCAST_ADDRESS -j ACCEPT
# Requesty DHCP z wewnatrz LANU
$IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT
# Pakiety przychodzace z netu
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
# Nie logowac multicastow
$IPTABLES -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP
######################### FORWARD CHAIN ######################
# Zle pakiety TCP
$IPTABLES -A FORWARD -p TCP -j bad_tcp_packets
# Pakiety do port-forwardowania (patrz: prerouting)
$IPTABLES -A FORWARD -p TCP -i $INET_IFACE -o $LAN_IFACE -d $LAN_ADMIN_IP --dport 2555 -j allowed
#$IPTABLES -A FORWARD -p TCP -i $INET_IFACE -o $LAN_IFACE -d $LAN_ADMIN_IP --dport 4661 -j allowed
$IPTABLES -A FORWARD -p TCP -i $INET_IFACE -o $LAN_IFACE -d $LAN_ADMIN_IP --dport 2555 -j allowed
#$IPTABLES -A FORWARD -p UDP -i $INET_IFACE -o $LAN_IFACE -d $LAN_ADMIN_IP --dport 411 -j ACCEPT
#$IPTABLES -A FORWARD -p UDP -i $INET_IFACE -o $LAN_IFACE -d $LAN_ADMIN_IP --dport 4665 -j ACCEPT
#$IPTABLES -A FORWARD -p UDP -i $INET_IFACE -o $LAN_IFACE -d $LAN_ADMIN_IP --dport 4672 -j ACCEPT
# Ograniczenie liczby polaczen z sieci lokalnej do netu do 50
#$IPTABLES -A FORWARD -p TCP -i $LAN_IFACE --syn -m connlimit --connlimit-above $MAX_CON -j DROP
# Pakiety do forwardowania z LAN-u do netu
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
####################### OUTPUT CHAIN #######################
# Zle pakiety TCP
$IPTABLES -A OUTPUT -p TCP -j bad_tcp_packets
# Pakiety ktore wypuszczamy
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT
########################### PREROUTING ########################
# port forward
$IPTABLES -t nat -A PREROUTING -p TCP -i $INET_IFACE -d $INET_IP --dport 2555 -j DNAT --to-destination $LAN_ADMIN_IP
$IPTABLES -t nat -A PREROUTING -p UDP -i $INET_IFACE -d $INET_IP --dport 2555 -j DNAT --to-destination $LAN_ADMIN_IP
#$IPTABLES -t nat -A PREROUTING -p TCP -i $INET_IFACE -d $INET_IP --dport 4661 -j DNAT --to-destination $LAN_ADMIN_IP
#$IPTABLES -t nat -A PREROUTING -p TCP -i $INET_IFACE -d $INET_IP --dport 4662 -j DNAT --to-destination $LAN_ADMIN_IP
#$IPTABLES -t nat -A PREROUTING -p UDP -i $INET_IFACE -d $INET_IP --dport 4665 -j DNAT --to-destination $LAN_ADMIN_IP
#$IPTABLES -t nat -A PREROUTING -p UDP -i $INET_IFACE -d $INET_IP --dport 4672 -j DNAT --to-destination $LAN_ADMIN_IP
#nieplacacy
#$IPTABLES -t nat -A PREROUTING -s 192.168.0.6 -d ! 80.55.145.210 -p TCP --dport 80 -j DNAT --to-destination 192.168.0.1:211
#$IPTABLES -t nat -A PREROUTING -s 192.168.0.16 -d ! 80.55.145.210 -p TCP --dport 80 -j DNAT --to-destination 192.168.0.1:211
#$IPTABLES -t nat -A PREROUTING -s 192.168.0.11 -d ! 80.55.145.210 -p TCP --dport 80 -j DNAT --to-destination 192.168.0.1:211
#$IPTABLES -t nat -A PREROUTING -s 192.168.0.15 -d ! 80.55.145.OC210 -p TCP --dport 80 -j DNAT --to-destination 192.168.0.1:211
# znakowanie pakietow do htb -NIEUZYWANE!!!
# znakowanie ICMP
#$IPTABLES -t mangle -A PREROUTING -p ICMP -j MARK --set-mark 0x1
#$IPTABLES -t mangle -A PREROUTING -p ICMP -j RETURN
# znakowanie SSH
#$IPTABLES -t mangle -A PREROUTING -p TCP -m tcp --dport 22 -j MARK --set-mark 0x2
#$IPTABLES -t mangle -A PREROUTING -p TCP -m tcp --dport 22 -j RETURN
# znakowanie pakietow TCP zaczynajacych sesje
#$IPTABLES -t mangle -A PREROUTING -p TCP -m tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 0x1
#$IPTABLES -t mangle -A PREROUTING -p TCP -m tcp --tcp-flags SYN,RST,ACK SYN -j RETURN
# znakowanie pozostalych pakietow
#$IPTABLES -t mangle -A PREROUTING -j MARK --set-mark 0x9
########################## POSTROUTING ########################
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
Kod: Zaznacz cały
/etc/rc.d/rc.firewall
Kod: Zaznacz cały
# Dane wyjscia na swiat
INET_IP="192.168.1.1"
INET_IFACE="eth0"
INET_BROADCAST="0.0.0.0"
# Dane sieci wewnetrznej
LAN_IP="192.168.25.1"
LAN_ADMIN_IP="192.168.25.2"
LAN_IP_RANGE="192.168.25.0/24"
LAN_BROADCAST_ADDRESS="192.168.25.255"
LAN_IFACE="eth1"
-------------------------------------------------
K jak kajak...
K jak kajak...
Re: Forwarding portów - Iptables
Wedlug mnie winne jest to, ze probojesz sie laczysz na interfejs po Loopbacku i wtedy nie wchodzisz w regulki preroutingow. Sprobj sie polaczyc na ten port z zewnetrznego adresu IP i sprawdz wtedy...
kanedaaa
kanedaaa