Возможно ли в linux иметь белый список IP-адресов, которым разрешено подключаться к определенной виртуальной машине на внутреннем NAT? например (общедоступный IP-адрес (proxmox) -> Моя виртуальная машина для IP-адресов из белого списка (192.168.0.1)), и если трафик отсутствует в белом списке, просто перенаправьте его на 192.168.0.2?
Проблема в том, что определенная служба страдает от атак, поэтому я хочу, чтобы пользователи регистрировались на веб-сайте, прежде чем они смогут подключиться к реальной сделке. (и если кто-то попытается, они подключатся к фиктивному серверу на 192.168.0.2, который будет ловить все атаки и отображать сообщение для пользователей, которым они должны зарегистрироваться перед подключением)
(если кому-то нужна визуализация, потому что, возможно, мои навыки написания историй не так хороши, вот ссылка: http://i.imgur.com/BCCkhmm.png)
Дополнительный вопрос: возможно ли, чтобы пакеты с определенной подписью (например, пакеты QUERY) всегда были разрешены для любого IP-адреса, даже не включенного в белый список (перенаправить этот трафик туда, где идет трафик из белого списка)?
Вы можете выборочно использовать DNAT на основе IP-адреса источника.
например:
ipset destroy whitelist # this may error the first time
ipset create whitelist hash:ip hashsize 32768
ipset -A whitelist <ip_address1>
ipset -A whitelist <ip_address2>
iptables -t nat -A PREROUTING -p tcp --dport 80 -m set --match-set whitelist -j DNAT --to 192.168.0.1
iptables -t nat -A PREROUTING -p tcp --dport 80 -m set ! --match-set whitelist -j DNAT --to 192.168.0.2
Вам могут потребоваться другие правила для -t filter -A FORWARD, чтобы разрешить соединения, и необходимо включить ip_forward, который уже должен быть на proxmox.