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

Как заблокировать каждый порт, кроме определенных, для пользователя с помощью iptables?

Я хотел бы заблокировать каждый порт, кроме 80, 443, 1005, для определенного пользователя (владельца) с помощью iptables.

Какую команду мне использовать?

Вы можете использовать совпадение «хозяин». Например:

iptables -A OUTPUT -o eth0 -m owner --uid-owner nikesh -j ПРИНЯТЬ

Читать далее: http://linuxpoison.blogspot.it/2010/11/how-to-limit-network-access-by-user.html#ixzz3UOJ2glqS

В любом случае, простой поисковый запрос «iptables match owner» вернет много результатов. Пожалуйста, проведите собственное исследование, прежде чем размещать вопросы.

ОБНОВИТЬ Чтобы заблокировать каждый порт, у вас есть два разных варианта.

1. Измените цепную политику. Например, для цепочки INPUT:

iptables -P INPUT REJECT

2. Оставьте политику цепочки по умолчанию (ПРИНЯТЬ), но создайте правило последнего сопоставления, чтобы запретить весь трафик. Пример:

iptables -A INPUT -j REJECT

После этого вы можете повторно включить необходимые порты, выполнив несколько правил ACCEPT. Например:

iptables -I INPUT 1 -m owner --dport 80 --uid-owner nikesh -j ACCEPT
iptables -I INPUT 1 -m owner --dport 443 --uid-owner nikesh -j ACCEPT
iptables -I INPUT 1 -m owner --dport 1005 --uid-owner nikesh -j ACCEPT

Это только примеры. Найдите время, чтобы спланировать свой набор правил. И превыше всего, ПРОЧИТАЙТЕ СТРАНИЦУ РУКОВОДСТВА IPTABLES. Попытка настроить любую критически важную службу (в качестве сетевого брандмауэра) без чтения руководства - это верный путь к катастрофе.