Как я могу на моем сервере Ubuntu, в Iptables разрешить только один IP-адрес на определенный порт?
Благодарность
Один лайнер:
iptables -I INPUT \! --src 1.2.3.4 -m tcp -p tcp --dport 777 -j DROP # if it's not 1.2.3.4, drop it
Более элегантное решение:
iptables -N xxx # create a new chain
iptables -A xxx --src 1.2.3.4 -j ACCEPT # allow 1.2.3.4
iptables -A xxx --src 1.2.3.5 -j ACCEPT # allow 1.2.3.5
iptables -A xxx --src 1.2.3.6 -j ACCEPT # allow 1.2.3.6
iptables -A xxx -j DROP # drop everyone else
iptables -I INPUT -m tcp -p tcp --dport 777 -j xxx # use chain xxx for packets coming to TCP port 777
INPUT
сOUTPUT
вами блокировать бы некоторые пакеты , отправленные несколько адресов самого (и не попадают / пересылаемые) сервер. Я сомневаюсь, что это имеет смысл, если, возможно, вы не хотите блокировать программы, которые привязываются к некоторым конкретным интерфейсам.--src 1.2.3.4/30
iptables -I xxx --src 7.8.9.10 -j ACCEPT
Вот пример из одной из моих систем CentOS (адреса были запутаны):
источник
service iptables save
.Я использую shorewall для настройки таблицы IP. Используйте правило, подобное тому, чтобы принимать от одного хоста до порта 123.
ACCEPT net: 192.0.2.1 $ FW tcp 1234
источник