Как заблокировать все исходящие соединения от определенного пользователя, кроме localhost?

Как заблокировать все исходящие соединения от определенного пользователя, кроме localhost?

Я хочу заблокировать все исходящие соединения от определенного пользователя userпосле того, как он подключился по ssh к моему серверу (работающему под управлением RHEL 7.4), то есть он userне должен иметь возможности подключаться по ssh к другим серверам в сети или отправлять им команды ping.

Изначально я настроил следующее firewall-cmdправило, и оно работало.

firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 -m owner --uid-owner user -j DROP

Однако userтеперь необходимо получить доступ к Jupyter Notebook, также запущенному на том же сервере ( http://localhost:8888), но не удалось. Произошла ошибка в веб-сокете. После удаления правила брандмауэра выше, userможно получить доступ к Notebook.

Я не уверен, почему userне удалось получить доступ localhost, потому что я думал, что правило блокирует только исходящие соединения.

Как разрешить userдоступ localhostк любому порту или определенному диапазону портов, при этом заблокировав сетевой доступ ко всем остальным портам?

решение1

Как сказал djdomi, вы хотели бы добавить исключение перед тем правилом DROP, которое у вас уже есть. Это может сработать

firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 -m owner --uid-owner user --dport=8888 -j ACCEPT

Поместите его перед правилом, которое у вас уже есть.

БР

Связанный контент