Tach auch,
Ich hab ein Problem mit einer Regel von iptables. Ich hab mich schon einige Zeit mir Iptables beschäftigt, der Knoten ist aber noch nicht wirklich geplatzt.
Problemstellung:
Ein Desktop-PC, welcher als Router fungiert soll gegen einen anständigen Server ausgetauscht werden. Dieser hat unter anderem einen iRMC Web Server integriert, der über eine eigene interne IP-Adresse (192.168.0.250) erreichbar sein wird.
Ich möchte den iRMC aber auch vom Internet aus erreichen können, um Probleme mit dem Server, wenn sie denn auftreten (oder auftreten könnten) weitestgehend von aussen zu beheben.
Im aktuellen Router (interne Adresse 192.168.0.10) ist Squid installiert und iptables als Firewall aktiviert. Die Konfiguration folgt hier:
iptables -L gibt aus:
...und natürlich erreiche ich auch den iRMC Web von aussen nicht.
Was mache ich bloss falsch? Was hab ich hier offensichtlich nicht verstanden?
Dank an alle, die hilfreiche Tipps geben können.
Thomas
Ich hab ein Problem mit einer Regel von iptables. Ich hab mich schon einige Zeit mir Iptables beschäftigt, der Knoten ist aber noch nicht wirklich geplatzt.
Problemstellung:
Ein Desktop-PC, welcher als Router fungiert soll gegen einen anständigen Server ausgetauscht werden. Dieser hat unter anderem einen iRMC Web Server integriert, der über eine eigene interne IP-Adresse (192.168.0.250) erreichbar sein wird.
Ich möchte den iRMC aber auch vom Internet aus erreichen können, um Probleme mit dem Server, wenn sie denn auftreten (oder auftreten könnten) weitestgehend von aussen zu beheben.
Im aktuellen Router (interne Adresse 192.168.0.10) ist Squid installiert und iptables als Firewall aktiviert. Die Konfiguration folgt hier:
Code:
#!/bin/bash
# Install ipt_p2p to avoid P2P-Connections
insmod /home/wichtige_Software/ipp2p-0.8.2/ipt_ipp2p.ko
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/tcp_ecn
echo "configuring transparent proxy $SQUIDSERVER..."
echo "Delete all tables and rules"
echo "echo iptables -F"
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
echo "iptables -P FORWARD DROP"
iptables -P FORWARD DROP
# Ethernet-Interfaces
# EXT an eth1, interne Adresse 192.168.1.1 (DSL-Zugang)
EXT=dsl0
#
# intern 192.168.0.10
INT=eth1
# Definition des internen Netzes
INTERN=192.168.0.0/16
# Proxserver-Port
SQUIDSERVER=192.168.0.10:3128
# Ports
P_HIGH=1024:65535 #User-Ports
# Transparentes HTTP-Proxying einschalten
# SSH erlauben
echo "iptables -I INPUT -i $EXT -p tcp -m tcp --dport 22 --syn -j ACCEPT"
iptables -I INPUT -i $EXT -p tcp -m tcp --dport 22 --syn -j ACCEPT
iptables -I INPUT -i $EXT -p tcp --sport $P_HIGH --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -I OUTPUT -o $EXT -p tcp --sport 22 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -i $EXT -p tcp -m tcp --dport 8080 --syn -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i $EXT -d $INT --dport 8080 -j DNAT --to 192.168.1.250:8080
echo "iptables -A FORWARD -i $INT -o $EXT -j ACCEPT"
iptables -A FORWARD -i $INT -o $EXT -j ACCEPT
echo "iptables -A FORWARD -i $EXT -o $INT -m state --state ESTABLISHED,RELATED -j ACCEPT"
iptables -A FORWARD -i $EXT -o $INT -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "iptables -t nat -A PREROUTING -i $INT -p tcp -s --sport $P_HIGH -d 80 -j DNAT --destination $SQUIDSERVER"
iptables -t nat -A PREROUTING -i $INT -p tcp --sport $P_HIGH --dport 80 -j DNAT --to-destination $SQUIDSERVER
echo "iptables -A PREROUTING -t mangle -p tcp -m ipp2p --edk --kazaa --gnu --bit --apple --dc --soul -j DROP"
iptables -A PREROUTING -t mangle -p tcp -m ipp2p --edk --kazaa --gnu --bit --apple --dc --soul -j DROP
echo "iptables -A FORWARD -m ipp2p --bit -j DROP"
iptables -A FORWARD -m ipp2p --bit -j DROP
#iptables -A FORWARD -m ipp2p --ipp2p -p tcp -j DROP
#
echo "iptables -t nat -A PREROUTING -i $INT -p tcp --dport 80 -j REDIRECT --to-port 3128"
iptables -t nat -A PREROUTING -i $INT -p tcp --source 80 -j REDIRECT --to-port 3128
echo "iptables -t nat -A POSTROUTING -o dsl0 -j MASQUERADE"
iptables -t nat -A POSTROUTING -o $EXT -j MASQUERADE
iptables -L gibt aus:
Code:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http-alt flags:FIN,SYN,RST,ACK/SYN
ACCEPT tcp -- anywhere anywhere tcp spts:1024:65535 dpt:ssh state NEW,RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh flags:FIN,SYN,RST,ACK/SYN
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT 0 -- anywhere anywhere
ACCEPT 0 -- anywhere anywhere state RELATED,ESTABLISHED
DROP 0 -- anywhere anywhere ipp2p v0.8.2 --bit
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp spt:ssh dpts:1024:65535 state RELATED,ESTABLISHED
...und natürlich erreiche ich auch den iRMC Web von aussen nicht.
Was mache ich bloss falsch? Was hab ich hier offensichtlich nicht verstanden?
Dank an alle, die hilfreiche Tipps geben können.
Thomas