У меня есть две коробки с Ubuntu, A и B.
A запускает TCP-соединение с B.
Я хочу, чтобы пакет TCP SYN А приходил к B, но когда ответный пакет SYN/ACK B возвращается к A, я хочу, чтобы брандмауэр A отбросил его.
Какой самый простой способ сделать это?
У меня есть две коробки с Ubuntu, A и B.
A запускает TCP-соединение с B.
Я хочу, чтобы пакет TCP SYN А приходил к B, но когда ответный пакет SYN/ACK B возвращается к A, я хочу, чтобы брандмауэр A отбросил его.
Какой самый простой способ сделать это?
Следующее правило iptables удалит ACK с хоста A:
iptables -A INPUT -s ip.of.host.a/32 --protocol tcp --tcp-flags ACK ACK -j DROP
--tcp-flags документируется на странице man для iptables-extensions:
[!] --tcp-flags mask comp Подходит, когда флаги TCP соответствуют указанным. Первая маска аргумента - это флаги, которые мы должны исследовать, записанные в виде списка через запятую, а второй аргумент comp - это список флагов через запятую, которые должны быть установлены. Флаги: SYN ACK FIN RST URG PSH ВСЕ НЕТ. Отсюда и команда
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST SYN will only match packets with the SYN flag set, and the ACK, FIN and RST flags unset.