Toon posts:

iptables: portforward werkt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
hey allemaal,

ik zit met het volgende probleem, ik heb een routerje (slackware) draaie met iptables vurmuur. Ik wil graag poorten 21 en 25 forwarden naar 10.1.1.2 ik krijg geen foutmeldingen maar toch werkt de forward niet, ook staat mijn forward policy op accept.

hier is mijn vuurmuur script
code:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
#!/bin/bash
####################################################
#
# Config section, you can change this with your ip's  
#
####################################################

for i in `ifconfig -a|grep -i eth|awk '{print $1}'`; do A="$A $i";done
B=`echo $A|wc -w|awk '{print $1}'`

echo ""
echo "Found $B nics :$A"
echo ""

EXTIF=`echo $A|awk '{print $1}'`
INTIF1=`echo $A|awk '{print $2}'`
INTIF2=`echo $A|awk '{print $3}'`
LOIF="lo"
LAN1="10.1.1.0/16"
LAN2="10.2.1.0/16"

LOIP=`ifconfig $LOIF | grep inet | cut -d : -f 2 | cut -d \  -f 1`

EXTIP=`ifconfig $EXTIF | grep inet | cut -d : -f 2 | cut -d \  -f 1`
EXTMASK=`ifconfig $EXTIF | grep Mask | cut -d : -f 4`
EXTBCAST=`ifconfig $EXTIF | grep inet | cut -d : -f 3 | cut -d \  -f 1`

INTIP1=`ifconfig $INTIF1 | grep inet | cut -d : -f 2 | cut -d \  -f 1`
INTMASK1=`ifconfig $INTIF1 | grep Mask | cut -d : -f 4`
INTBCAST1=`ifconfig $INTIF1 | grep inet | cut -d : -f 3 | cut -d \  -f 1`

INTIP2=`ifconfig $INTIF2 | grep inet | cut -d : -f 2 | cut -d \  -f 1`
INTMASK2=`ifconfig $INTIF2 | grep Mask | cut -d : -f 4`
INTBCAST2=`ifconfig $INTIF2 | grep inet | cut -d : -f 3 | cut -d \  -f 1`

####################################################
#
# Script section, don't change anything below here
# if you don't know what you're doing
#
####################################################
     
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

echo -n "Reduce DoS'ing ability... "
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "1800" > /proc/sys/net/ipv4/tcp_keepalive_time
echo "1" > /proc/sys/net/ipv4/tcp_window_scaling
echo "0" > /proc/sys/net/ipv4/tcp_sack
echo "1280" > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo -e "\033[32mDone!\033[0m"

echo -n "Flushing Chains... "
iptables -F
iptables -X
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING
echo -e "\033[32mDone!\033[0m"

echo -n "Set default policies for the INPUT, FORWARD and OUTPUT chains... "
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT
echo -e "\033[32mDone!\033[0m"

echo -n "Accept the packets we actually want to forward... "
iptables -A FORWARD -i $INTIF1 -s 0/0 -j ACCEPT
iptables -A FORWARD -i $INTIF2 -s 0/0 -j ACCEPT
iptables -A FORWARD -i ppp+ -s 0/0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: 
"
echo -e "\033[32mDone!\033[0m"

echo -n "Create chains... "
iptables -N icmp_packets
echo -n "ICMP_PACKETS, "
iptables -N tcp_packets
echo -n "TCP_PACKETS, "
iptables -N udpincoming_packets
echo -n "UDPINCOMING_PACKETS, "
iptables -N illegal
echo -n "ILLEGAL, " 
iptables -N allowed
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
echo -n "ALLOWED... "
echo -e "\033[32mDone!\033[0m"

echo ""
echo -e "\033[31mILLEGAL chain -> "
echo -e "\033[0m"

echo -n " Drop illegal flag combinations which also prevents most port scanning... "
iptables -A illegal -i $EXTIF -p tcp --tcp-flags ALL ALL -j DROP
iptables -A illegal -i $EXTIF -p tcp --tcp-flags ALL NONE -j DROP
iptables -A illegal -i $EXTIF -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A illegal -i $EXTIF -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A illegal -i $EXTIF -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A illegal -i $EXTIF -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A illegal -i $EXTIF -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -A illegal -i $EXTIF -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -A illegal -i $EXTIF -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -A illegal -i $EXTIF -p tcp --tcp-flags ACK,URG URG -j DROP
echo -e "\033[32mDone!\033[0m"

echo -n " Refuse directed broadcasts used in Smurf/Fraggle type DOS attacks... "
iptables -A illegal -i $EXTIF -d 255.255.255.255 -j DROP
iptables -A illegal -i $EXTIF -d $EXTBCAST -j DROP
echo -e "\033[32mDone!\033[0m"

echo -n " Refuse spoofed packets pretending to be from your IP address... "
iptables -A illegal -i $EXTIF -s $EXTIP -d $EXTIP -j DROP
echo -e "\033[32mDone!\033[0m"

echo -n " Drop Fragments... "
iptables -A illegal -i $EXTIF -f -j DROP
echo -e "\033[32mDone!\033[0m"

echo -n " Make sure packets are associated with known connections... "
iptables -A illegal -i $EXTIF -m state --state INVALID -j DROP
echo -e "\033[32mDone!\033[0m"

echo -n " Make sure NEW tcp connections are SYN packets... "
iptables -A illegal -i $EXTIF -p tcp ! --syn -m state --state NEW -j DROP
echo -e "\033[32mDone!\033[0m"

echo -n " Refuse bogus IP ranges... "
iptables -A illegal -i $EXTIF -s 255.255.255.255/32 -j DROP    # Broadcast
iptables -A illegal -i $EXTIF -s 127.0.0.0/8 -j DROP           # Loopback
iptables -A illegal -i $EXTIF -s 169.254.0.0/16 -j DROP        # Link local networks
iptables -A illegal -i $EXTIF -s 192.0.2.0/24 -j DROP          # Test-net
iptables -A illegal -i $EXTIF -s 248.0.0.0/5 -j DROP           # Unallocated
iptables -A illegal -i $EXTIF -s 10.0.0.0/8 -j DROP            # Class A private (RFC 1918)
iptables -A illegal -i $EXTIF -s 172.16.0.0/16 -j DROP         # Class B private (RFC 1918)
iptables -A illegal -i $EXTIF -s 192.168.0.0/16 -j DROP        # Class C private (RFC 1918)
iptables -A illegal -i $EXTIF -s 224.0.0.0/4 -j DROP           # Class D multicast
iptables -A illegal -i $EXTIF -s 240.0.0.0/5 -j DROP           # Class E reserved
echo -e "\033[32mDone!\033[0m"

echo ""
echo -n "Change ICMP rules... "
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
iptables -A icmp_packets -p ICMP -s 0/0 --icmp-type echo-request -j DROP
iptables -A icmp_packets -p ICMP -d $INTBCAST1 -j DROP
iptables -A icmp_packets -p ICMP -d $INTBCAST2 -j DROP
echo -e "\033[32mDone!\033[0m"

echo ""
echo -e "\033[31mChange TCP/UDP rules -> "
echo -e "\033[0m"
echo -n " TCP ports... "
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 --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 113 -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 1024:65535 -j allowed

echo -e "\033[32mDone!\033[0m"
echo -n " UDP ports... "
iptables -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT
iptables -A udpincoming_packets -p UDP -s 0/0 --source-port 1024:65535 -j ACCEPT
echo -e "\033[32mDone!\033[0m"

echo ""
echo -e "\033[31mINPUT chain -> "
echo -e "\033[0m"

echo -n " Incoming packets from the internet... "
iptables -A INPUT -p ICMP -i $EXTIF -j icmp_packets
iptables -A INPUT -p TCP -i $EXTIF -j tcp_packets
iptables -A INPUT -p UDP -i $EXTIF -j udpincoming_packets
iptables -A INPUT -p TCP -i $EXTIF -j illegal
echo -e "\033[32mDone!\033[0m"

echo -n " Special networks not part of the Internet... "
iptables -A INPUT -p ALL -i $INTIF1 -d $INTBCAST1 -j ACCEPT
iptables -A INPUT -p ALL -i $LOIF -s $LOIP -j ACCEPT
iptables -A INPUT -p ALL -i $LOIF -s $INTIP1 -j ACCEPT
iptables -A INPUT -p ALL -i $LOIF -s $INTIP2 -j ACCEPT  
iptables -A INPUT -p ALL -i $LOIF -s $EXTIP -j ACCEPT
iptables -A INPUT -p ALL -i $INTIF1 -s 0/0 -j ACCEPT
iptables -A INPUT -p ALL -i $INTIF2 -s 0/0 -j ACCEPT
iptables -A INPUT -p ALL -d $EXTIP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: "
echo -e "\033[32mDone!\033[0m"

echo ""
echo -e "\033[31mOUTPUT chain -> "
echo -e "\033[0m"

echo -n " Special OUTPUT rules to decide which IP's to allow... "
iptables -A OUTPUT -p ALL -s $LOIP -j ACCEPT
iptables -A OUTPUT -p ALL -s $INTIP1 -j ACCEPT
iptables -A OUTPUT -p ALL -s $INTIP2 -j ACCEPT
iptables -A OUTPUT -p ALL -s $EXTIP -j ACCEPT
echo -e "\033[32mDone!\033[0m"

echo -n " Log weird packets that don't match the above... "
iptables -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died:"
echo -e "\033[32mDone!\033[0m"
echo ""

echo -n "Forwarding ports... " 

iptables -t nat -A PREROUTING -p tcp -i eth1 -d 80.57.242.131 --dport 21 -j DNAT --to 10.0.0.2:21       
iptables -t nat -A PREROUTING -p tcp -i eth1 -d 80.57.242.131 --dport 25 -j DNAT --to 10.1.1.2:25   

echo -e "\033[32mDone!\033[0m"

echo -n "Enable simple IP Forwarding and NAT... "
iptables -t nat -A POSTROUTING -o $EXTIF -j SNAT --to-source $EXTIP
echo -e "\033[32mDone!\033[0m"

echo -n "Allow pptpd connections... "
iptables -A FORWARD -i ppp+ -o $EXTIF -p 47 -s 0/0 -d 0/0 -j ACCEPT
iptables -A FORWARD -o ppp+ -i $EXTIF -p 47 -s 0/0 -d 0/0 -j ACCEPT
iptables -A FORWARD -p gre -d 0/0 -j ACCEPT
iptables -A FORWARD -p tcp --dport 1723 -d 0/0 -j ACCEPT
echo -e "\033[32mDone!\033[0m"
echo ""



iptables -t nat -A PREROUTING -p tcp -i eth1 -d 80.57.242.131 --dport 21 -j DNAT --to 10.0.0.2:21
iptables -t nat -A PREROUTING -p tcp -i eth1 -d 80.57.242.131 --dport 25 -j DNAT --to 10.1.1.2:25

deze 2 regels zouden toch moeten werken ? of heb ik het helemaal verkeerd ?

  • Orion84
  • Registratie: April 2002
  • Laatst online: 18:47

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

Weet er niet precies alles van af. Maar ik kan me wel herinneren dat de volgorde in die file nogal van belang is. Een packet dat onder twee regels valt wordt volgens de bovenste verwerkt. Dus als jij bovenaan ergens een regel hebt staan dat je firewall packets op poorten 21 en 25 moet blokkeren, dan helpen deze laatste portforwards niks. Dus kijk dat even goed na.

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


  • Sendy
  • Registratie: September 2001
  • Niet online
Dat klopt ja: als je een pakket al blokt in de eerste regel, dan worden eventuele regels die later komen (met bijvoorbeeld een ACCEPT) genegeerd.

Verder moet de TS opletten dat buiten de PREROUTING rule ook de FORWARD moet mogen. Aangezien het script boven voor mij teveel is om door te kijken, moet de TS dit zelf maar even opzoeken.

Verwijderd

Topicstarter
hmmm ik heb zelf nog ven goed gekken in mijn script maar nergens worden deze poorten geblokt op wat voor'n manier dan ook en er wordt ook niets geblokt wat hiermee te maken zou hebben naar mijn mening

  • Eric Oud Ammerveld
  • Registratie: December 2000
  • Laatst online: 05-07-2024

Eric Oud Ammerveld

Arduino developing... :)

Probeer deze eens zou ik zeggen :
http://firewall-jay.sourceforge.net/download.php

Zal je een hoop gebeun schelen, is de perfecte app om eenvoudig een systeem te firewallen en om goed te NATten.

-=@@D=- Macbook Pro 16"


  • Zwerver
  • Registratie: Februari 2001
  • Niet online
AADNOLL schreef op 08 november 2004 @ 22:17:
Probeer deze eens zou ik zeggen :
http://firewall-jay.sourceforge.net/download.php

Zal je een hoop gebeun schelen, is de perfecte app om eenvoudig een systeem te firewallen en om goed te NATten.
Probeer aub de vraag van de TS te beantwoorden zonder met een alternatief te komen. Ten eerste leert de TS er niks van en ten tweede is dat niet zijn vraag. Thnx.

Woonachtig Down Under. Ik negeer je insults niet, maar tegen de tijd dat ik ze lees zijn ze meestal niet relevant meer


Verwijderd

Ik heb het script even doorgekeken maar ik moet zeggen dat het verdomde moeilijk is om een fout te ondekken in de huidige staat met al die vars en echo's

Staat de heleboel al in je iptables? Post als het kan dan even de output van 'iptables -L'
Pagina: 1