Как программно управлять перенаправленными приложениями X11?

Почти, но не совсем. Созданные вами правила сначала отвергают соединения выше 50 из x.1 и x.2, а затем отвергают любые соединения выше 5 из любого места, включая x.1 и x.2. Вам нужно иметь правило ACCEPT для этих двух источников перед общим ограничителем.

Возможно, проще всего будет инвертировать соответствие на connlimit:

-A INPUT -p tcp -s x.x.x.1 --syn -m connlimit --connlimit-upto 50 -j ACCEPT
-A INPUT -p tcp -s x.x.x.2 --syn -m connlimit --connlimit-upto 50 -j ACCEPT
-A INPUT -p tcp --syn -m connlimit --connlimit-upto 5 -j ACCEPT
-A INPUT -p tcp --syn -j REJECT

Возможно, вы захотите поместить эти правила в отдельную цепочку, чтобы не повторять общие части (-p tcp --syn), и с отдельной цепочкой вы также можете заменить ACCEPT на RETURN, если вы хотите выполнить другую фильтрацию после этих правил. Тогда принимающее правило должно появиться в другом месте.

По умолчанию connlimit работает по адресу источника, так что это должно быть то, что вы хотите. Хотя обратите внимание, что iptables не имеет понятия "вход в систему", так что если вы хотите ограничить вход на уровне приложения, вам придется делать это там.


Чтобы предотвратить блокировку, вы можете убедиться, что у вас есть отдельное правило для разрешения административного доступа с вашей машины (возможно, SSH, по крайней мере, уже установленные соединения). Другой возможностью может быть использование cron или at для сброса правил брандмауэра в известную конфигурацию через некоторое время, так что даже если вы получите блокировку, это не продлится долго. Вам просто нужно будет не забыть удалить эту защиту, когда вы закончите.

4
15.09.2018, 21:20
0 ответов

Теги

Похожие вопросы