Toon posts:

Firewall portforwerden mislukt.

Pagina: 1
Acties:
  • 102 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb hier mijn firewall gestuurd omdat ik echt de balen er in heb. Deze werkt tot nu toe erg goed maar nu wil ik graag een poort forwarden met het volgende commando

iptables -A PREROUTING -t nat -p tcp -d (mijn ip) --dport 8080 -j DNAT --to 192.168.0.7:80

Maar dan doe je nmap localhost en hij pakt hem nog niet. Wat doe ik fout ik heb overal op tweakers al open zoeken maar helaas niks kunnen vinden.

echo Starting firewall....
iptables -F
iptables -t nat -F
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 5000:5019 -j DNAT --to 192.168.0.1:5000-5019
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 5081 -j DNAT --to 192.168.0.7:5081
iptables -A INPUT -p udp --source-port 53 -i ACCEPT
iptables -A INPUT -p tcp --source-port 53 -i ACCEPT
iptables -A INPUT -p TCP -i eth0 --destination-port 23 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 79 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 111 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 137 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 138 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 139 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 1001 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 1002 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 2064 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 3306 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 3456 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 8080 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 8181 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 12345 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 12456 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 31337 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 31338 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 40426 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 50505 -j REJECT
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 90 -j REDIRECT --to-port 80
route add 217.120.36.152 gw 217.120.36.1

Verwijderd

Ik neem aan dat de Forward policy op accept staat?
Dan zou hij hem op poort 80 wel moeten forwarden.

Het lijkt me op zich wel ok, al zijn er hier wel vaker mensen die prolemen hebben met het portforwarden naar een andere poort. Als je hem gewoon forward naar poort 8080, en daar de service op draait, doet hij het dan wel?

En wat is 192.168.0.7 voor een machine? dat zou het ipadres moeten zijn van de computer waar de service op draait.

En wat bedoel je met nmap localhost?
Je zet duidelijk de portforward met "-i eth0".
<edit>
Oh, je zet je destination ip: "-d $ip".
Hmm, daar zal een "nmap localhost" ook niet terechtkomen.
</edit>
Ik neem aan dat nmap localhost niet binnenkomt als input via eth0.
Het beste kun je dit echt testen vanaf een andere machine.
Een portscan-website, of een nmap vanaf een computer van een vriend.

Verwijderd

Topicstarter
Op donderdag 13 september 2001 23:17 schreef MarcelP het volgende:
Ik neem aan dat de Forward policy op accept staat?
Dan zou hij hem op poort 80 wel moeten forwarden.

Het lijkt me op zich wel ok, al zijn er hier wel vaker mensen die prolemen hebben met het portforwarden naar een andere poort. Als je hem gewoon forward naar poort 8080, en daar de service op draait, doet hij het dan wel?

En wat is 192.168.0.7 voor een machine? dat zou het ipadres moeten zijn van de computer waar de service op draait.

En wat bedoel je met nmap localhost?
Je zet duidelijk de portforward met "-i eth0".
Ik heb het nu van een anderen computer geprobeerd maardat werkte net zo goed niet helaas. Die poort 8081 in vnc server dus dat je ergens anders op je windows machine kan werken. Hoe bedoel je forward poly op accept.Hoe bedoel je dat precies ?

Verwijderd

Een pakketje wat binnenkomt zal eerst over de prerouting chain gaan, en wanneer het bestemd is voor een andere computer zal het over de forward chain gaan.
Wanneer hij een match heeft met een rule, wordt hij uit de chain geknikkerd. Wanneer hij geen match heeft, zal hij voordat hij de chain verlaat nog moeten luisteren naar de default policy van een chain. Deze kan bijv. accept of deny zijn.
iptables -L |grep policy.
geeft een listing van je policy.

Leuk dat je test vanaf een andere computer, maar waar staat die computer?
Dir portforward geld alleen voor pakketjes die op eth0 binnenkomen. Als jijh lokaal test, zal de connectie gemaakt worden vanaf lo of eth1. Dan wordt er dus geen portforward gedaan. Het handigste is echt om ook via het interface te testen waarop hij ook moet werken. Dus log in op een computer die aan de kant van je eth0 interface zit, en doe van daar een nmap of telnet.

Succes ermee,
Ik ben het weekend weg dus aan mij heb je verder weinig meer.

Verwijderd

Topicstarter
Het is echt van een totaal anderen computer op het internet. En wat bedoel je met het eerste stuk daar kom ik niet helemaal goed uit.

Verwijderd

Topicstarter
Iemand een sugestie voor dit probleem?

Verwijderd

ja, ik :)

De readme's en howto's eens gaan lezen, staat dit allemaal goed in uitgelegd.

Je script bevat alleen zaken voor de input chain, niets voor de forward en output. Daarnaast kan ik er niet uithalen wat de policies zijn voor die chains.

Zoek ook eens op 'REDIRECT' in de howto's

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Kun je met de standaard RedHat 6.2 ipchains ook een poort forwarden naar een interne machine? Of heb je hier weer speciale software voor nodig?

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

mijn vorige antwoord was een beetje flauw, hier wat
uitgebreider:
code:
1
2
3
4
echo Starting firewall....
iptables -F
iptables -t nat -F
echo "1" > /proc/sys/net/ipv4/ip_forward

tot hier gaat alles goed. Je hebt alle chains gecleared en forwarding aangezet.
code:
1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Is in principe ook goed, alhoewel het waarsch. beter is om SNAT te gebruiken. (Masquarade is alleen bedoeld voor niet-statische verbindingen zoals bv. dial-up)
code:
1
2
iptables -A INPUT -p udp --source-port 53 -i ACCEPT
iptables -A INPUT -p tcp --source-port 53 -i ACCEPT

Het is je om de DNS te doen, daarvoor hoeft alleen UDP geaccepteerd te worden. TCP kun je dus weghalen.
code:
1
2
3
4
iptables -A INPUT -p TCP -i eth0 --destination-port 23 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 79 -j REJECT
iptables -A INPUT -p TCP -i eth0 --destination-port 111 -j REJECT
[..] enzovoort]

Waarom doe je dit?

Je kunt een policy instellen voor een chain. Als je iptables -L doet zie je wat de policy is voor een chain.

Jij doet het precies verkeerd om. Normaal gesproken zet je de policy op 'DROP', dwz. elk pakketje wat die chain inkomt wordt gedropped tenzij anders aangegeven. ipv. aangeven wat je _niet_ wil hebben hoor je dus aan te geven wat je _wel_ wilt hebben.

Daarnaast is het van belang te begrijpen hoe pakketjes door de chains gaan.. hier een overzichtje:
code:
1
2
3
4
5
6
7
8
9
Incoming                        Outgoing
    |                           ^
    |                           |
    v
  PRE Routing -----> Chain Forward -----> POST Routing
    |                           ^
    |                           |
    v                           |
  Chain Input --------------------------> Chain Output

Wat bedoel ik hiermee? Simpel.. en pakketje komt je PC in. Dan gaat hij bij (pre)routing kijken waar dit pakketje voor bedoeld is. Is het voor hemzelf dan gaat het ding de input chain in, is het voor een andere PC dan gaat hij de Forward chain in.


Ik weet eigenlijk wel zeker dat daar de fout ergens zit, vandaar mijn advies om te gaan lezen.

Verwijderd

Topicstarter
Ik heb hem nu hem aangepast maar het lukt mij nu op deze manier om te de poorten vanuit buiten af weer open te zetten. Lokaal gaat alles wel goed. En het is mij ook nog niet gelukt om een poort te forwarden iemand een sugestie. Ik heb de man nu 10 keer doorgelezen en kom er nog steeds niet uit sorry mensen.

echo Starting firewall....
iptables -F
iptables -t nat -F
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -p TCP -i eth0 -j REJECT
iptables -A INPUT -s 127.0.0.1/32 -i ACCEPT
iptables -A INPUT -s 192.168.0.1/32 -d 0/0 -j ACCEPT
iptables -A INPUT -p udp --source-port 53 -i ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -p TCP -i eth0 --destination-port 25 -j ACCEPT
iptables -A INPUT -p TCP -i eth0 --destination-port 80 -j ACCEPT
#iptables -A INPUT -p TCP -i eth0 --destination-port 111 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 137 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 138 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 139 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 1001 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 1002 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 2064 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 3306 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 3456 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 8080 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 8181 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 12345 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 12456 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 31337 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 31338 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 40426 -j REJECT
#iptables -A INPUT -p TCP -i eth0 --destination-port 50505 -j REJECT
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 90 -j REDIRECT --to-port 80
route add 217.120.36.152 gw 217.120.36.1

Verwijderd

Je hebt nog steeds alleen INPUT regels staan. De INPUT chain wordt gebruikt voor pakketjes welke voor de bewuste computer zelf zijn.

De Man gelezen, maar heb je ook de HOWTO's gelezen?

De link naar de documentatie:

http://netfilter.samba.org/unreliable-guides/

Verwijderd

Op zondag 16 september 2001 05:05 schreef hezik het volgende:
Je hebt nog steeds alleen INPUT regels staan.
Dit is een basis firewall voor IPchans, kijk en vergelijk, de forwarding moet er echt aanstaan om de rest te kunnen doen.
Zoek even naar een vergelijkbare pzet voor IPtables.
Mijn bescherming heb ik in PMFirewall zitten, maar mocht die uit vallen werkt in ieder geval mijn forwarding nog (die PMFirewall ook voor zijn rekening neemt).
Systeem: RH6 en dit stukje komt uit rc.local

/sbin/ipchains -F input
/sbin/ipchains -F forward
/sbin/ipchains -F output
/sbin/ipchains -M -S 7200 10 60
/sbin/ipchains -A input -j ACCEPT -i eth1 -s 0/0 68 -d 0/0 67 -p udp
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0
/sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ
/usr/local/pmfirewall/pmfirewall start
Pagina: 1