Назад | Перейти на главную страницу

centos iptables, ограничить порт tcp определенными ips

Я хотел бы изменить iptables на моем сервере CentOS 5.8, чтобы только определенные IP-адреса могли подключаться к машине через определенный порт.

В настоящее время в моем файле iptables есть следующее:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5000 -j ACCEPT

Как мне изменить эту строку, если я хочу разрешить доступ, например, только для IP-адресов 1.1.1.1 и 1.1.1.2? (они не обязательно могут быть последовательными IP-адресами, когда я делаю это для реальных чисел).

Вы можете добавить соответствие для каждого конкретного исходного IP-адреса с помощью -s flag, а затем запретить всем остальным (если не существует более позднего правила перехвата, которое могло бы сделать этот последний бит за вас):

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5000 -s 1.1.1.1 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5000 -s 1.1.1.2 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5000 -j REJECT

Если IP-адреса, которые вы хотите разрешить, можно сгруппировать по подсети, вы можете немного упростить правила. Например, если вы хотите разрешить 1.1.1.2 и 1.1.1.3, вы можете использовать

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5000 -s 1.1.1.2/31 -j ACCEPT

снова вслед за ним одеялом REJECT, если нужно.