iptables voor intern DHCP

Pagina: 1
Acties:

  • B2
  • Registratie: April 2000
  • Laatst online: 23:26

B2

wa' seggie?

Topicstarter
Ik heb op me linux server dhcp server gemaakt.
Alleen nu zit iptables de zaak nog te blokken, m.a.w. de clients krijgen geen ip.
Als ik iptables stop wel.

Maar volgens mij heb ik in het script gezet dat al het internal verkeer moet kunnen.
code:
1
2
iptables -A INPUT  -i $LOCAL_INTERFACE_1 -s $INTRANET -j ACCEPT
    iptables -A OUTPUT -o $LOCAL_INTERFACE_1 -d $INTRANET -j ACCEPT

Moet er een extra rule zijn om dit toe te laten?
Me eth0 (chello) heeft wel een vast ip.
dhcp wordt op eth1 uitgegeven.

Verwijderd

code:
1
2
3
4
5
iptables -A INPUT -i $LOCAL_INTERFACE -p tcp -s $UNIVERSE --sport bootpc -d $BROADCAST/0 --dport bootps -j ACCEPT
iptables -A INPUT -i $LOCAL_INTERFACE -p udp -s $UNIVERSE --sport bootpc -d $BROADCAST/0 --dport bootps -j ACCEPT

iptables -A OUTPUT -o $LOCAL_INTERFACE -p tcp -s $LOCAL_IP --sport bootps -d $UNIVERSE --dport bootpc -j ACCEPT
iptables -A OUTPUT -o $LOCAL_INTERFACE -p udp -s $LOCAL_IP --sport bootps -d $UNIVERSE --dport bootpc -j ACCEPT

Ik denk dat dit er meer op lijkt ;)
Zodra een computer om een lease vraagt heeft hij een intern ip-adres. De request wordt gedaan naar het broadcast-adres. Jouw regels laten dat niet toe. Je regels zijn sowieso nogal strict, als het om een netwerk gaat waarin je iedereen ken.
De OUTPUT mag best naar universe gaan i.p.v. alleen naar intranet zolang je de goede interface er maar bij zet. Als het om een netwerk gaat waarin je de mensen niet goed kent, of die je niet vertrouwd, dan moet je dat uiteraard niet doen.

In bovenstaand verhaaltje geldt het volgende:
$UNIVERSE = 0.0.0.0/0
$BROADCAST = 255.255.255.255
$LOCAL_IP = het ip van $LOCAL_INTERFACE

  • B2
  • Registratie: April 2000
  • Laatst online: 23:26

B2

wa' seggie?

Topicstarter
Nope nog steeds niet :(
Een stukje uit me 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
IPADDR=`ifconfig eth0 | fgrep -i inet | cut -d : -f 2 | cut -d \  -f 1`
EXTERNAL_INTERFACE="eth0"                # Internet connected interface
LOOPBACK_INTERFACE="lo"              # Your local naming convention
LOCAL_INTERFACE_1="eth1"                # Your Internal LAN interface
LOCAL_IP=`ifconfig eth1 | fgrep -i inet | cut -d : -f 2 | cut -d \  -f 1`
INTRANET="10.0.0.0/8"                  # Your Private IP Addr Range
PRIMARY_NAMESERVER="212.142.28.66"          # Your Primary Name Server
SECONDARY_NAMESERVER="212.142.28.130"         # Your Secondary Name Server
#SYSLOG_SERVER="***.**.**.*"              # Your Syslog Internal Server
UNIVERSE="0.0.0.0/0"

LOOPBACK="127.0.0.0/8"                # Reserved loopback address range
CLASS_A="10.0.0.0/8"                    # Class A private networks
CLASS_B="172.16.0.0/12"              # Class B private networks
CLASS_C="192.168.0.0/16"                # Class C private networks
CLASS_D_MULTICAST="224.0.0.0/4"          # Class D multicast addr
CLASS_E_RESERVED_NET="240.0.0.0/5"        # Class E reserved addr
BROADCAST_SRC="0.0.0.0"              # Broadcast source addr
BROADCAST_DEST="255.255.255.255"            # Broadcast destination addr
PRIVPORTS="0:1023"                  # Privileged port range
UNPRIVPORTS="1024:65535"                     # Unprivileged port range


    # DHCP server
    # -----------

    iptables -A INPUT -i $LOCAL_INTERFACE_1 -p tcp \
    -s $UNIVERSE --source-port bootpc \
    -d $BROADCAST_DEST --destination-port bootps -j ACCEPT

    iptables -A INPUT -i $LOCAL_INTERFACE_1 -p udp \
    -s $UNIVERSE --source-port bootpc \
    -d $BROADCAST_DEST --destination-port bootps -j ACCEPT

    iptables -A OUTPUT -o $LOCAL_INTERFACE_1 -p tcp \
    -s $LOCAL_IP --source-port bootps \
    -d $UNIVERSE --destination-port bootpc -j ACCEPT

    iptables -A OUTPUT -o $LOCAL_INTERFACE_1 -p udp \
    -s $LOCAL_IP --source-port bootps \
    -d $UNIVERSE --destination-port bootpc -j ACCEPT

Verwijderd

Bekijk je logfiles eens, wat daarin verschijnt!
Wel vreemd moet ik zeggen. Dit moet gewoon werken.

  • B2
  • Registratie: April 2000
  • Laatst online: 23:26

B2

wa' seggie?

Topicstarter
Nadat ik het ip heb vrijgegeven, wat netjes in de logs staat, krijg ik de volgende melding
code:
1
2
Sep  7 18:18:36 c19169 kernel: martian source 169.254.255.255 from 169.254.41.26, on dev eth1
Sep  7 18:18:36 c19169 kernel: ll header: ff:ff:ff:ff:ff:ff:00:10:60:58:0f:8e:08:00

wat op zich logisch is, omdat windows een eigen ip gaat pakken.
Verder niks.
Wanneer firewall uit staat, krijg ik netjes dhcp melding te zien.
code:
1
2
3
4
Sep  7 18:18:58 c19169 dhcpd: DHCPDISCOVER from 00:10:60:58:0f:8e via eth1
Sep  7 18:18:58 c19169 dhcpd: DHCPOFFER on 10.0.0.3 to 00:10:60:58:0f:8e via eth1
Sep  7 18:18:58 c19169 dhcpd: DHCPREQUEST for 10.0.0.3 from 00:10:60:58:0f:8e via eth1
Sep  7 18:18:58 c19169 dhcpd: DHCPACK on 10.0.0.3 to 00:10:60:58:0f:8e via eth1

  • B2
  • Registratie: April 2000
  • Laatst online: 23:26

B2

wa' seggie?

Topicstarter
^kick^

Verwijderd

Verander de $BCAST_DEST eens door $UNIVERSE
Dan moet hij het doen!
Het is niet echt een veiligheidsrisico o.i.d.
Immer kan het toch alleen vanaf de bootps naar de bootpc en vice versa over de interface in het interne netwerk.

  • B2
  • Registratie: April 2000
  • Laatst online: 23:26

B2

wa' seggie?

Topicstarter
Ik heb het gevonden :)
Dit regeltje zorgde voor de problemen
code:
1
iptables -A INPUT   -s 0.0.0.0/8 -j DROP

Verwijderd

Op zaterdag 08 september 2001 12:19 schreef postduif het volgende:
Ik heb het gevonden :)
Dit regeltje zorgde voor de problemen
code:
1
iptables -A INPUT   -s 0.0.0.0/8 -j DROP
Die had je hierboven ook niet staan ;)
Anders had ik je het meteen kunnen vertellen. Ik ging ervan uit dat je policies op DROP/DENY gezet had.
De chains zoals ze er staan moeten uiteraard wel in de goede volgorde staan ;)
Pagina: 1