Neko-san Posted July 2, 2010 Posted July 2, 2010 Есть сервер, на нём открыто 40-50 TCP пртов. Есть несколько подсетей, пользователи которых должны иметь доступ ко всем портам. Все остальные должны иметь доступ только к нескольким портам, при обращении к остальным должен происходить редирект, например, на 45000 порт. Как правильно написать правила iptables для такой ситуации? Судя по документации, нужно создать таблицу, в которой поместить все подсети которым разрешен полный доступ с -j ACCEPT, после чего создать ряд правил - первым правилом разрешить доступ ко всем портам для ранее созданной таблицы, последующими десятью сделать редирект для десяти портов, для всех IP-адресов не входящих в таблицу. Правильно ли это? Перепробовал несколько десятков вариантов, но так и не смог добиться желаемого результата, маловато опыта с iptables. Может быть кто-нибудь уже реализовывал это и готов поделиться примером? Вставить ник Quote
Ilya Evseev Posted July 3, 2010 Posted July 3, 2010 Простое разрешение или запрет, без редиректа на порт 45000: iptables -N safeports iptables -A safeports -s 1.2.3.4 -j ACCEPT iptables -A safeports -s 5.6.7.8 -j ACCEPT ... iptables -A safeports -j REJECT ... iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ... iptables -A INPUT -p tcp -m state --state NEW -m multiport --dports 22,23,80,443 -j safeports Вариант с редиректом: iptables -t nat -N redir iptables -t nat -A redir -s 1.2.3.4 -j RETURN iptables -t nat -A redir -s 5.6.7.8 -j RETURN ... iptables -t nat -A redir -p tcp -j REDIRECT --to-port 45000 ... iptables -t nat -A PREROUTING -p tcp -m state --state NEW -m multiport --dports 22,23,80,443 -j redir ... iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ... iptables -A INPUT -p tcp -m state --state NEW -m multiport --dports 22,23,80,443,45000 -j ACCEPT Вместо поштучного перечисления разрешённых адресов можно использовать ipset, но по умолчанию, как правило, в системе его нет. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.