как сделать чтобы сервер dhcp обслуживал только определенные MAC адреса
без жесткой привязки MAC - IP
>как сделать чтобы сервер dhcp обслуживал только определенные MAC адреса
>без жесткой привязки MAC - IPНаверное настроить dhcp обычным образом, а всю фильтрацию маков отдать файрволу, это ему ближе.
>как сделать чтобы сервер dhcp обслуживал только определенные MAC адреса
>без жесткой привязки MAC - IPПовесьте правила iptables на порт, который слушает сервер (вероятно 67 udp) для мак адресов.
Создайте цепочку для входящих на этот порт, а в ней проверяйте по-очереди маки (аксепт-тот, аксепт-другой, а по дефолту дроп).
>>как сделать чтобы сервер dhcp обслуживал только определенные MAC адреса
>>без жесткой привязки MAC - IP
>
>Повесьте правила iptables на порт, который слушает сервер (вероятно 67 udp) для
>мак адресов.
>Создайте цепочку для входящих на этот порт, а в ней проверяйте по-очереди
>маки (аксепт-тот, аксепт-другой, а по дефолту дроп).не работает фильтрация, dhcp все равно обрабатывает пакеты, несмотря на дроп
хотя правила срабатывают
покажите iptables -nL что выдаёт
>покажите 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/0Chain 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 destinationChain 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/0Chain 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
>>покажите 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 просто из текстового файла?
>
>Единственно - напрягает копипаст конструкции 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;
}
да чуть не забыл - вроде при прописывании новой связки MAC-IP надо рестартануть dhcp3-server
короче разберешься, давно я это юзал, а конфиги случайно остались.
>да чуть не забыл - вроде при прописывании новой связки MAC-IP надо
>рестартануть dhcp3-server
>короче разберешься, давно я это юзал, а конфиги случайно остались.да я разобрался :)
мой конфиг вроде бы работает как я хочу
а к чему ты привел свой?
в нем жесткая привязка MAC - IP
что по условиям задачи я хотел избежать
>Единственно - напрягает копипаст конструкции host
>Никак нельзя считать MAC просто из текстового файла?Можно использовать директиву:
include "/etc/dhcp3/ИМЯ_ФАЙЛА_С_ХОСТАМИ.conf";
А сам файл генерировать perl скриптом из простого текстового файла со списком MAC-ов.