Я знаю, что в RedHat в таблицах IP я могу блокировать входящие подключения к локальному порту. Я также могу заблокировать соединения с определенного IP-адреса.
Но можно ли заблокировать соединение с определенного IP-адреса, и попытка подключения выполняется из службы, работающей на определенном порту на внешнем IP-адресе?
Итак, если бы у меня было что-то вроде,
iptables -A INPUT -s 202.54.20.22 -j DROP
iptables -A OUTPUT -d 202.54.20.22 -j DROP
Могу ли я указать более конкретный IP-адрес и выбрать конкретный порт для блокировки? Допустим, служба работает на порту 5000 по адресу 202.54.20.22, могу я быть конкретным? Обратите внимание, что эта служба может не пытаться подключиться к порту 5000 на сервере, поэтому простая блокировка этого порта на сервере - это не то, что мне нужно.
Да, вы можете указать условия для IP-адреса (источника) и порта (источника) в одном правиле, оба из которых должны быть выполнены, чтобы предотвратить обмен данными, например
iptables -I INPUT -s 202.54.20.22 -p tcp --sport 5000 -j DROP
Обратите внимание, что вы должны указать протокол, чтобы использовать sport
или dport
, поэтому если вы хотите заблокировать и TCP, и UDP, потребуются два правила.