URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 85853
[ Назад ]

Исходное сообщение
"dhcp раздача IP только известным MAC"

Отправлено Hvost , 06-Июл-09 09:29 
как сделать чтобы сервер dhcp обслуживал только определенные MAC адреса
без жесткой привязки MAC - IP

Содержание

Сообщения в этом обсуждении
"dhcp раздача IP только известным MAC"
Отправлено mikra , 06-Июл-09 11:51 
>как сделать чтобы сервер dhcp обслуживал только определенные MAC адреса
>без жесткой привязки MAC - IP

Наверное настроить dhcp обычным образом, а всю фильтрацию маков отдать файрволу, это ему ближе.


"dhcp раздача IP только известным MAC"
Отправлено urusha , 06-Июл-09 11:55 
>как сделать чтобы сервер dhcp обслуживал только определенные MAC адреса
>без жесткой привязки MAC - IP

Повесьте правила iptables на порт, который слушает сервер (вероятно 67 udp) для мак адресов.
Создайте цепочку для входящих на этот порт, а в ней проверяйте по-очереди маки (аксепт-тот, аксепт-другой, а по дефолту дроп).


"dhcp раздача IP только известным MAC"
Отправлено Hvost , 06-Июл-09 18:49 
>>как сделать чтобы сервер dhcp обслуживал только определенные MAC адреса
>>без жесткой привязки MAC - IP
>
>Повесьте правила iptables на порт, который слушает сервер (вероятно 67 udp) для
>мак адресов.
>Создайте цепочку для входящих на этот порт, а в ней проверяйте по-очереди
>маки (аксепт-тот, аксепт-другой, а по дефолту дроп).

не работает фильтрация, dhcp все равно обрабатывает пакеты, несмотря на дроп
хотя правила срабатывают


"dhcp раздача IP только известным MAC"
Отправлено sonkilla , 06-Июл-09 21:39 
покажите iptables -nL что выдаёт

"dhcp раздача IP только известным MAC"
Отправлено Hvost , 08-Июл-09 16:01 
>покажите iptables -nL что выдаёт

поотключал как только можно, до куче вообще udp/icmp закрыл
пинги не работают по udp хрен подключишься
а вот dhcp наплевать на файрвол

iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination
DROP       udp  --  0.0.0.0/0            0.0.0.0/0
DROP       udp  --  0.0.0.0/0            0.0.0.0/0           udp spts:67:68 dpts:67:68
DROP       icmp --  0.0.0.0/0            0.0.0.0/0
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp spts:67:68 dpts:67:68
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           state RELATED
input_ext  all  --  0.0.0.0/0            0.0.0.0/0
input_ext  all  --  0.0.0.0/0            0.0.0.0/0
LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-IN-ILL-TARGET '
DROP       all  --  0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy DROP)
target     prot opt source               destination
DROP       udp  --  0.0.0.0/0            0.0.0.0/0
DROP       udp  --  0.0.0.0/0            0.0.0.0/0
LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-FWD-ILL-ROUTING '

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state NEW,RELATED,ESTABLISHED
LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-OUT-ERROR '

Chain forward_ext (0 references)
target     prot opt source               destination

Chain input_ext (2 references)
target     prot opt source               destination
DROP       all  --  0.0.0.0/0            0.0.0.0/0           PKTTYPE = broadcast
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 4
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 8
LOG        tcp  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 tcp dpt:22 flags:0x17/0x02 LOG flags 6 level 4 prefix `SFW2-INext-ACC-TCP '
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22
LOG        tcp  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 tcp dpt:21 flags:0x17/0x02 LOG flags 6 level 4 prefix `SFW2-INext-ACC-TCP '
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21
LOG        tcp  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 tcp dpts:30000:30100 flags:0x17/0x02 LOG flags 6 level 4 prefix `SFW2-INext-ACC-TCP '
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpts:30000:30100
LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 PKTTYPE = multicast LOG flags 6 level 4 prefix `SFW2-INext-DROP-DEFLT '
DROP       all  --  0.0.0.0/0            0.0.0.0/0           PKTTYPE = multicast
LOG        tcp  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 tcp flags:0x17/0x02 LOG flags 6 level 4 prefix `SFW2-INext-DROP-DEFLT '
LOG        icmp --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-INext-DROP-DEFLT '
LOG        udp  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 LOG flags 6 level 4 prefix `SFW2-INext-DROP-DEFLT '
LOG        all  --  0.0.0.0/0            0.0.0.0/0           limit: avg 3/min burst 5 state INVALID LOG flags 6 level 4 prefix `SFW2-INext-DROP-DEFLT-INV '
DROP       all  --  0.0.0.0/0            0.0.0.0/0

Chain reject_func (0 references)
target     prot opt source               destination
REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0           reject-with tcp-reset
REJECT     udp  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-proto-unreachable


"dhcp раздача IP только известным MAC"
Отправлено Hvost , 08-Июл-09 18:11 
>>покажите iptables -nL что выдаёт
>
>поотключал как только можно, до куче вообще udp/icmp закрыл
>пинги не работают по udp хрен подключишься
>а вот dhcp наплевать на файрвол

кароче не в файрволе счастье.. решение ниже

вот рабочий конфиг
в пуле из 2х адресов выдается первый свободный
для 3х известных MAC
если пул занят (фактически или по времени lease) -  третьему известному "обломись", всем остальным "обломись" и подавно

option domain-name "mygoup";
option domain-name-servers 192.168.0.1;
option routers 192.168.0.2;
ddns-update-style none;
default-lease-time 14400;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.20 192.168.0.21;
deny unknown-clients;
default-lease-time 14400;
max-lease-time 172800;

host buk1 {
   hardware ethernet 00:1C:25:A2:C3:05;
}
host buk2 {
   hardware ethernet 00:1B:38:12:30:92;
}
host buk3 {
   hardware ethernet 00:24:8c:05:9c:62;
}
}

Единственно - напрягает копипаст конструкции host
Никак нельзя считать MAC просто из текстового файла?


"dhcp раздача IP только известным MAC"
Отправлено Virtual , 09-Июл-09 17:18 
>
>Единственно - напрягает копипаст конструкции host
>Никак нельзя считать MAC просто из текстового файла?

ну ты и замутил :)
держи рабочий и проверенный конфиг, хз раз настроил - заработало оптимизировать далее было лень.

max-lease-time 5184000;
default-lease-time 432000;
deny unknown-clients;
### Managed by Linuxconf, you may edit by hand.
### Comments may not be fully preserved by linuxconf.

### Managed by Linuxconf, you may edit by hand.
### Comments may not be fully preserved by linuxconf.

server-identifier dhcp.test.ru;
ddns-update-style none;

#ddns-update-style interim;
#    key DHCP_UPDATER {
#    algorithm HMAC-MD5.SIG-ALG.REG.INT;
#    secret Jn1eAmKV9lq2R0vE6kKyYw==;
#    };
#    
#    zone test.ru. {
#    primary 127.0.0.1;
#    key DHCP_UPDATER;
#    }
#    
#    zone 20.70.197.in-addr.arpa.{
#    primary 127.0.0.1;
#    key DHCP_UPDATER;
#    }
#
#    zone 0.70.197.in-addr.arpa.{
#    primary 127.0.0.1;
#    key DHCP_UPDATER;
#    }
option domain-name "test.ru";
option domain-name-servers ns1.test.ru, ns2.test.ru;
option netbios-name-servers 10.70.1.11, 10.70.1.12;
option netbios-node-type 8;
option routers 10.70.255.254;
option subnet-mask 255.255.0.0;
authoritative;
# Digital Gate
shared-network test.ru {
    max-lease-time 5184000;
    default-lease-time 432000;
    authoritative;
    ddns-updates on;
    ddns-rev-domainname "test.ru";
    ddns-domainname "test.ru";
    server-name "dhcp.test.ru";
    # per.Leningradskiy 9
    subnet 10.70.0.0 netmask 255.255.0.0 {
        max-lease-time 5184000;
        default-lease-time 432000;
        authoritative;
        ddns-updates on;
        ddns-domainname "test.ru";
        server-name "dhcp.test.ru";
        range dynamic-bootp 10.70.20.1 10.70.20.254;
        option domain-name "test.ru";
        option domain-name-servers 10.70.1.1 , 10.70.1.2;
        option netbios-name-servers 10.70.1.11 , 10.70.1.12;
        option netbios-node-type 8;
        option routers 10.70.255.254;
        option subnet-mask 255.255.0.0;
        option time-servers 10.70.1.11;
        range dynamic-bootp 10.70.21.1 10.70.21.254;
        }
    }
# Andrey
host andrey {
    deny unknown-clients;
    option host-name "andrey.test.ru";
    hardware ethernet 00:01:02:B0:DC:9A;
    fixed-address 10.70.20.101;
    }

# Adm
host fuck-you {
    deny unknown-clients;
    option host-name "virtual.test.ru";
    hardware ethernet 00:80:48:17:3a:27;
    fixed-address 10.70.20.100;
    }

host nadya {
    deny unknown-clients;
    option host-name "nadya.test.ru";
    hardware ethernet 00:0B:AB:04:57:16;
    fixed-address 10.70.20.150;
    }

# Kosty
host kosty {
    deny unknown-clients;
    option host-name "kosty.test.ru";
    hardware ethernet 00:0d:88:f7:c7:1f;
    fixed-address 10.70.20.254;
    }

# Alex
host alex {
    deny unknown-clients;
    option host-name "alex.test.ru";
#    hardware ethernet 00:e0:4c:48:ac:66;
    hardware ethernet 00:13:77:05:8f:87;
    fixed-address 10.70.20.253;
    }

# Vint
host vint {
    deny unknown-clients;
    option host-name "vint.test.ru";
    hardware ethernet 00:11:11:2b:c0:a9;
    fixed-address 10.70.20.252;
    }

# Petia
host petia {
    deny unknown-clients;
    option host-name "petia.test.ru";
    hardware ethernet 00:13:d3:9e:54:a8;
    fixed-address 10.70.20.251;
    }



"dhcp раздача IP только известным MAC"
Отправлено Virtual , 09-Июл-09 17:22 
да чуть не забыл - вроде при прописывании новой связки MAC-IP надо рестартануть dhcp3-server
короче разберешься, давно я это юзал, а конфиги случайно остались.

"dhcp раздача IP только известным MAC"
Отправлено Hvost , 09-Июл-09 17:50 
>да чуть не забыл - вроде при прописывании новой связки MAC-IP надо
>рестартануть dhcp3-server
>короче разберешься, давно я это юзал, а конфиги случайно остались.

да я разобрался :)
мой конфиг вроде бы работает как я хочу
а к чему ты привел свой?
в нем жесткая привязка MAC - IP
что по условиям задачи я хотел избежать


"dhcp раздача IP только известным MAC"
Отправлено Николай , 13-Сен-10 14:29 
>Единственно - напрягает копипаст конструкции host
>Никак нельзя считать MAC просто из текстового файла?

Можно использовать директиву:
include "/etc/dhcp3/ИМЯ_ФАЙЛА_С_ХОСТАМИ.conf";
А сам файл генерировать perl скриптом из простого текстового файла со списком MAC-ов.