Ik heb hier een servertje met twee NICs, p1p1 = internal NIC, eth0 = WAN NIC. Deze server speelt ook als router hier in huis. So far so good. Nu heb ik op poort 7654 een golang http server draaien. Deze wil ik "van buitenaf" kunnen bereiken op poort 80. Dit probeer ik met een redirect te doen van poort 80 naar 7654. Dit lukt me redelijk. Op een externe locatie werkt het allemaal. Als ik op poort 80 probeer te verbinden, dan wordt het netjes geredirect naar poort 7654.
Maar nu het probleem: als ik vanuit een computer op het interne netwerk probeer om om poort 80 te verbinden, dan werkt het niet meer. Dus ik dacht: ik gooi het stukje "-i $wan_NIC" eruit, zodat niet alleen op de externe NIC, maar ook op de interne NIC de forwarding plaatsvindt. Niet dus
. Nouja, AL het verkeerd dat de clients op poort 80 aanvragen wordt hiermee ge-redirect naar poort 7654.
Ik weet echt niet meer hoe ik dit op moet lossen. Ik heb het volgende script die m'n IPTABLES configureert:
Maar nu het probleem: als ik vanuit een computer op het interne netwerk probeer om om poort 80 te verbinden, dan werkt het niet meer. Dus ik dacht: ik gooi het stukje "-i $wan_NIC" eruit, zodat niet alleen op de externe NIC, maar ook op de interne NIC de forwarding plaatsvindt. Niet dus
Ik weet echt niet meer hoe ik dit op moet lossen. Ik heb het volgende script die m'n IPTABLES configureert:
Bash:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| #!/bin/sh # p1p1 = internal NIC # eth0 = WAN NIC lan_nic=p1p1 wan_nic=eth0 echo "Clear old firewall rules..." iptables --flush iptables --flush FORWARD iptables --flush INPUT iptables --flush OUTPUT iptables --table nat --flush iptables --table nat --delete-chain iptables --table mangle --flush iptables --table mangle --delete-chain iptables --delete-chain echo "Drop all INPUT and FORWARD..." iptables -P INPUT DROP iptables -P FORWARD DROP echo "Drop all IPv6 traffic..." ip6tables -P INPUT DROP ip6tables -P OUTPUT DROP ip6tables -P FORWARD DROP echo "Accept everything on lo and $lan_nic (local network)..." iptables -A INPUT -i lo -p all -j ACCEPT iptables -A OUTPUT -o lo -p all -j ACCEPT iptables -A INPUT -i $lan_nic -p all -j ACCEPT -s 192.168.1.0/24 iptables -A OUTPUT -o $lan_nic -p all -j ACCEPT -d 192.168.1.0/24 echo "IP Forwarding and Routing for gateway use..." iptables -A FORWARD -o $wan_nic -i $lan_nic -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o $wan_nic -j MASQUERADE echo "Enable Packet Forwarding..." echo 1 > /proc/sys/net/ipv4/ip_forward echo "Maintain established connections..." iptables -A INPUT --in-interface $wan_nic --match conntrack --ctstate ESTABLISHED,RELATED --jump ACCEPT echo "Configuration for redirected webserver in golang..." iptables -t nat -I PREROUTING -i $wan_nic -p tcp --dport 80 -j REDIRECT --to-port 7654 iptables -A INPUT -i $wan_nic -p tcp --dport 7654 -m state --state NEW -j ACCEPT |