Iptables PREROUTING werkt niet in combinatie met MANGLE

Pagina: 1
Acties:

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 29-01 21:41
Ik heb de volgende IPtables regels:

Table:
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
Chain INPUT (policy ACCEPT 73M packets, 34G bytes)
 pkts bytes target     prot opt in     out     source               destination
 256K  234M ACCEPT     tcp  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25
3162K  312M ACCEPT     tcp  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
   13   688 ACCEPT     tcp  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
 1060 51090 ACCEPT     tcp  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143
    0     0 ACCEPT     tcp  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:993
    0     0 ACCEPT     all  --  ppp0   *       x.x.x.201        0.0.0.0/0
   63  3780 ACCEPT     all  --  ppp0   *      x.x.x.202        0.0.0.0/0
15990 4521K ACCEPT     all  --  ppp0   *       x.x.x.203        0.0.0.0/0
    0     0 ACCEPT     all  --  ppp0   *       x.x.x.204        0.0.0.0/0
    0     0 ACCEPT     all  --  ppp0   *       x.x.x.122        0.0.0.0/0
    0     0 ACCEPT     all  --  ppp0   *       x.x.x.71         0.0.0.0/0
    0     0 ACCEPT     tcp  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:1723
   20  1520 ACCEPT     udp  --  ppp0   *       194.109.22.18        0.0.0.0/0           udp spt:123
 4961  276K ACCEPT     icmp --  ppp0   *       0.0.0.0/0            0.0.0.0/0
 276K   44M ACCEPT     udp  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           udp spt:53
 3841 1584K DROP       all  --  ppp0   *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT 14M packets, 9479M bytes)
 pkts bytes target     prot opt in     out     source               destination
19882   29M ACCEPT     tcp  --  *      *       0.0.0.0/0            82.94.249.x       tcp dpt:25
15499  824K ACCEPT     tcp  --  *      *       82.94.249.x        0.0.0.0/0           tcp spt:25
  342  360K ACCEPT     tcp  --  *      *       0.0.0.0/0            82.94.249.x       tcp dpt:25
  241 12115 ACCEPT     tcp  --  *      *       82.94.249.x       0.0.0.0/0           tcp spt:25
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            194.109.6.51        tcp dpt:25
    0     0 ACCEPT     tcp  --  *      *       194.109.6.51         0.0.0.0/0           tcp spt:25
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25

Chain OUTPUT (policy ACCEPT 91M packets, 61G bytes)
 pkts bytes target     prot opt in     out     source               destination
 197K  278M ACCEPT     tcp  --  *      ppp0    0.0.0.0/0            0.0.0.0/0           tcp dpt:25
    0     0 ACCEPT     all  --  *      ppp0    0.0.0.0/0            x.x.x.71
  232 17632 ACCEPT     udp  --  *      ppp0    0.0.0.0/0            194.109.22.18       udp dpt:123


Table NAT:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Chain PREROUTING (policy ACCEPT 421K packets, 37M bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all  --  br0.10 *       0.0.0.0/0            10.0.0.0/8
    0     0 DROP       all  --  br0.10 *       0.0.0.0/0            192.168.0.0/16
    0     0 DNAT       tcp  --  br0.10 *       0.0.0.0/0            0.0.0.0/0           to:10.0.100.1:3128
    0     0 DNAT       tcp  --  br0.7  *       0.0.0.0/0            0.0.0.0/0           to:10.0.70.1:3128

Chain POSTROUTING (policy ACCEPT 33 packets, 3168 bytes)
 pkts bytes target     prot opt in     out     source               destination
 241K   18M ACCEPT     all  --  *      *       0.0.0.0/0            10.0.0.0/8
 662K   45M ACCEPT     all  --  *      *       0.0.0.0/0            192.168.1.0/24
 202K   16M MASQUERADE  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 2188K packets, 154M bytes)
 pkts bytes target     prot opt in     out     source               destination


Table MANGLE:
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
Chain PREROUTING (policy ACCEPT 95M packets, 44G bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain INPUT (policy ACCEPT 81M packets, 35G bytes)
 pkts bytes target     prot opt in     out     source               destination
 1289  156K ACCEPT     all  --  br0.10 *       0.0.0.0/0            x.x.x.128
   25  3450 DROP       all  --  br0.10 *       0.0.0.0/0           !10.0.100.0/24

Chain FORWARD (policy ACCEPT 11M packets, 8970M bytes)
 pkts bytes target     prot opt in     out     source               destination
1613K  315M VLAN1      all  --  br0    *       0.0.0.0/0            0.0.0.0/0
 830K   81M VLAN2      all  --  br0.2  *       0.0.0.0/0            0.0.0.0/0
    0     0 VLAN3      all  --  br0.3  *       0.0.0.0/0            0.0.0.0/0
    0     0 VLAN4      all  --  br0.4  *       0.0.0.0/0            0.0.0.0/0
    0     0 VLAN5      all  --  br0.5  *       0.0.0.0/0            0.0.0.0/0
1300K   99M VLAN6      all  --  br0.6  *       0.0.0.0/0            0.0.0.0/0
 3552 1207K VLAN7      all  --  br0.7  *       0.0.0.0/0            0.0.0.0/0
   49  2319 VLAN10     all  --  br0.10 *       0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 91M packets, 62G bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 105M packets, 71G bytes)
 pkts bytes target     prot opt in     out     source               destination
 218K  309M MARK       tcp  --  *      ppp0    0.0.0.0/0            0.0.0.0/0           tcp dpt:25 MARK set 0x2

Chain VLAN1 (1 references)
 pkts bytes target     prot opt in     out     source               destination
 720K  172M ACCEPT     all  --  *      br0.6   192.168.1.183        0.0.0.0/0
31269 9809K ACCEPT     all  --  *      br0.6   192.168.1.188        0.0.0.0/0
 1353  147K ACCEPT     all  --  *      br0.2   192.168.1.201        0.0.0.0/0
27779 1862K ACCEPT     all  --  *      br0.2   192.168.1.40         0.0.0.0/0
    0     0 ACCEPT     all  --  *      br0.2   192.168.1.20         0.0.0.0/0
    0     0 ACCEPT     all  --  *      br0.2   192.168.1.11         0.0.0.0/0
    0     0 ACCEPT     all  --  *      br0.2   192.168.1.9          0.0.0.0/0
   83  6560 ACCEPT     all  --  *      br0.2   192.168.1.200        0.0.0.0/0
    0     0 DROP       all  --  *      br0.3   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.4   0.0.0.0/0            0.0.0.0/0
  965 88124 DROP       all  --  *      br0.5   0.0.0.0/0            0.0.0.0/0
 2052  223K DROP       all  --  *      br0.6   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.7   0.0.0.0/0            0.0.0.0/0

Chain VLAN10 (1 references)
 pkts bytes target     prot opt in     out     source               destination
   37  1824 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain VLAN2 (1 references)
 pkts bytes target     prot opt in     out     source               destination
 1354  143K ACCEPT     all  --  *      br0     0.0.0.0/0            192.168.1.201
29144   23M ACCEPT     all  --  *      br0     0.0.0.0/0            192.168.1.40
 6004  807K ACCEPT     all  --  *      br0     0.0.0.0/0            192.168.1.20
  632 66608 ACCEPT     all  --  *      br0     0.0.0.0/0            192.168.1.11
    0     0 ACCEPT     all  --  *      br0     0.0.0.0/0            192.168.1.9
   66  6635 ACCEPT     all  --  *      br0     0.0.0.0/0            192.168.1.200
    0     0 DROP       all  --  *      br0.3   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.4   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.5   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.6   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.7   0.0.0.0/0            0.0.0.0/0

Chain VLAN3 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all  --  *      br0     0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.2   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.4   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.5   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.6   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.7   0.0.0.0/0            0.0.0.0/0

Chain VLAN4 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all  --  *      br0     0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.2   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.3   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.5   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.6   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.7   0.0.0.0/0            0.0.0.0/0

Chain VLAN5 (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all  --  *      br0     0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.2   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.3   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.4   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.6   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.7   0.0.0.0/0            0.0.0.0/0

Chain VLAN6 (1 references)
 pkts bytes target     prot opt in     out     source               destination
1297K   99M ACCEPT     all  --  *      *       10.0.60.117          0.0.0.0/0
    0     0 DROP       all  --  *      br0     0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.2   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.3   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.4   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.5   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.7   0.0.0.0/0            0.0.0.0/0

Chain VLAN7 (1 references)
 pkts bytes target     prot opt in     out     source               destination
   24  1248 DROP       all  --  *      br0     0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.2   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.3   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.4   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.5   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      br0.6   0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  *      !ppp0   0.0.0.0/0            0.0.0.0/0


Een redelijk berg, wellicht niet op z'n handigst in elkaar geschroefd.

Het probleem waar ik mee zit is dat de regels in NAT table bij PREROUTING niet werken. Vanaf VLAN10 zouden alle request naar een squid proxy moeten gaan. Maar de regel word in z'n geheel niet bereikt. Als ik bij table MANGLE, chain VLAN10 de DROP weggooi, gaan de packets wel naar de POSTROUTING regels.

Dit vind ik dus raar, ik verwacht eigenlijk dat de PREROUTING regel eerder dan POSTROUTING regel zou moeten komen.

Ik staar me nu al even blind op deze regels, maar ik kan niet bedenken waar het fout gaat.

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 29-01 21:41
Ik heb zelf al iets gevonden.

Ik heb voor de regel 'iptables -t nat -A PREROUTING -i br0.10 -p tcp -j DNAT -s 10.0.100.0/24 --to 10.0.100.1:3128' het volgende gezet:
'iptables -t nat -A PREROUTING -j LOG'

In het de log die hier uit ontstaat stond dit:
server01 kernel: IN=br0 OUT= PHYSIN=eth0 MAC=00:30:48:61:f0:f6:00:1e:33:03:98:07:81:00 SRC=10.0.100.193 DST=x.x.x.203 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=203 DF PROTO=TCP SPT=1075 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0
M.a.w. alles word ontvangen alsof het op VLAN 1 staat!!

Kan iemand dit verklaren? Of denk ik hier ergens verkeerd?

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
Ik ben niet echt een iptables expert, maar ik wist dat er iets was met virtual interfaces. Hier een stukje dat ik op internet heb gevonden daarover:
Just remember that iptables will treat each of the virtual interfaces as one interface, so eth0:1, eth0:2, and eth0:3 would all be just eth0 in your iptables rules (using aliases in the rules will cause an error).
Dat zal waarschijnlijk de reden zijn dat '-i br0.10' niet goed werkt.

Zomaar een wild idee is om, als virtual interfaces wel goed werken in Table MANGLE, de packets daar te 'marken' zodat je ze in de table NAT kan herkennen.

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 29-01 21:41
cool_zero schreef op woensdag 19 maart 2008 @ 20:25:
Ik ben niet echt een iptables expert, maar ik wist dat er iets was met virtual interfaces. Hier een stukje dat ik op internet heb gevonden daarover:

[...]


Dat zal waarschijnlijk de reden zijn dat '-i br0.10' niet goed werkt.

Zomaar een wild idee is om, als virtual interfaces wel goed werken in Table MANGLE, de packets daar te 'marken' zodat je ze in de table NAT kan herkennen.
Een interface met een punt end en dan een getal is een VLAN interface. De oorsprong is wel van de parent dmv een 802.1q tagged frames. Wat ik raar vind is dat iptables al speelt voordat deze tagged frames naar hun 'virtuele' interface gaan. (Een alias eth0:1 is ook echt een alias adres op interface eth0. eth0.x zou een volwaardige interface moeten zijn, althans wel in mijn ogen).

Deze vraag zal ik tevens op het netfilter mailing gooien, nadat ik wat verder getest heb (Wellicht speelt de bridge interface ook weer parten)

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


  • cool_zero
  • Registratie: Juni 2001
  • Laatst online: 25-10-2022
Een VLAN interface is inderdaad anders dan een alias, daar heb ik overheen gekeken. Over de volgorde van iptables, bridging etc. hebt ik nog wel een aardige link gevonden, namelijk: http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html

Ik zou het eerst moeten bestuderen voordat ik dat allemaal snap, maar misschien kun jij er wel wat mee.

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 22-01 08:08

TrailBlazer

Karnemelk FTW

Hoe is je switch dan geconfigureerd want om een of andere reden lijkt het alsof vlan 10 als native vlan staat ingesteld.

Mijn redirect ziet er zo uit met mangle hoef ik niks te doen.
code:
1
2
3
4
5
6
7
8
9
10
11
epia:~# iptables -t nat -nvL PREROUTING
Chain PREROUTING (policy ACCEPT 528K packets, 105M bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DNAT       udp  --  *      *       0.0.0.0/0            84.104.214.28       udp dpt:88 to:192.168.100.4:88
    6   312 DNAT       udp  --  *      *       0.0.0.0/0            84.104.214.28       udp dpt:3074 to:192.168.100.4:3074
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            84.104.214.28       tcp dpt:3074 to:192.168.100.4:3074
15008  724K REDIRECT   tcp  --  eth0.101 *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 3128
   78  4056 ACCEPT     tcp  --  eth0.100 *       192.168.100.2        192.168.1.0/24      tcp dpt:80
15633  813K REDIRECT   tcp  --  eth0.100 *       192.168.100.2        0.0.0.0/0           tcp dpt:80 redir ports 3128
 7807  406K REDIRECT   tcp  --  eth0.100 *       192.168.100.201      0.0.0.0/0           tcp dpt:80 redir ports 3128
epia:~#

[ Voor 82% gewijzigd door TrailBlazer op 20-03-2008 22:18 ]


  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 29-01 21:41
TrailBlazer schreef op donderdag 20 maart 2008 @ 22:13:
Hoe is je switch dan geconfigureerd want om een of andere reden lijkt het alsof vlan 10 als native vlan staat ingesteld.

Mijn redirect ziet er zo uit met mangle hoef ik niks te doen.
code:
1
2
3
4
5
6
7
8
9
10
11
epia:~# iptables -t nat -nvL PREROUTING
Chain PREROUTING (policy ACCEPT 528K packets, 105M bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DNAT       udp  --  *      *       0.0.0.0/0            84.104.214.28       udp dpt:88 to:192.168.100.4:88
    6   312 DNAT       udp  --  *      *       0.0.0.0/0            84.104.214.28       udp dpt:3074 to:192.168.100.4:3074
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            84.104.214.28       tcp dpt:3074 to:192.168.100.4:3074
15008  724K REDIRECT   tcp  --  eth0.101 *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 3128
   78  4056 ACCEPT     tcp  --  eth0.100 *       192.168.100.2        192.168.1.0/24      tcp dpt:80
15633  813K REDIRECT   tcp  --  eth0.100 *       192.168.100.2        0.0.0.0/0           tcp dpt:80 redir ports 3128
 7807  406K REDIRECT   tcp  --  eth0.100 *       192.168.100.201      0.0.0.0/0           tcp dpt:80 redir ports 3128
epia:~#
Grofweg had die van mij er zo ook uit moeten komen te zien. Ik begin een flauw vermoeden te krijgen dat het in het bridge ligt. Ik heb eth0, tap0, tap* in een bridge ondergebracht zodat virtual machines via een tapdevice op hetzelfde ethernet segment komen.

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/

Pagina: 1