Делаем привязку ip адресов к mac адресам
Есть выделенный сервер с XCP (Xen Cloud Platform), есть диапазон ip выданный провайдером. Как сделать так, чтобы клиенты не могли поменять свой ip внутри xen машин? Привязка к mac адресу! Но как сделать, чтобы и mac адрес не сменили? Воспользуемся iptables на сервере XCP. Нам понадобится XCP версии минимум 1.1, в 1.0 ядро не поддерживает фильтрацию по mac адресам.
Делаем так:
Очищаем правила iptables:
iptables -F
Разрешаем клиенту с ip 46.4.180.227 и с mac адресом 11:11:11:11:11:11 и 2му клиенту с ip 46.4.180.228 и с mac адресом 22:22:22:22:22:22:
iptables -A FORWARD -m mac --mac-source 11:11:11:11:11:11 -s 46.4.180.227 -j ACCEPT iptables -A FORWARD -m mac --mac-source 22:22:22:22:22:22 -s 46.4.180.228 -j ACCEPT
Если ip другой, но mac прежний, то запрещаем:
iptables -A FORWARD -m mac --mac-source 11:11:11:11:11:11 -j DROP iptables -A FORWARD -m mac --mac-source 22:22:22:22:22:22 -j DROP
Блокируем все неиспользуемые ip (эти правила будут наверху цепочки):
iptables -I FORWARD -s 46.4.180.229 -j DROP iptables -I FORWARD -s 46.4.180.230 -j DROP iptables -I FORWARD -s 46.4.180.231 -j DROP
Цепочка FORWARD должна выглядеть так:
iptables -L -n
Chain FORWARD (policy ACCEPT) target prot opt source destination DROP all -- 46.4.180.231 0.0.0.0/0 DROP all -- 46.4.180.230 0.0.0.0/0 DROP all -- 46.4.180.229 0.0.0.0/0 ACCEPT all -- 46.4.180.227 0.0.0.0/0 MAC 11:11:11:11:11:11 ACCEPT all -- 46.4.180.228 0.0.0.0/0 MAC 22:22:22:22:22:22 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 11:11:11:11:11:11 DROP all -- 0.0.0.0/0 0.0.0.0/0 MAC 22:22:22:22:22:22
Теперь доступ на внешку и из внешки к виртуальной машине возможен только при правильном ip и mac адресе внутри виртуальной машины.