Можно ли использовать iptables, чтобы разрешить трафик, инициированный «процессом», т. Е. Используя имя процесса? Я хотел бы, например, разрешить все, что инициируется командой ping.создать правило iptables для процесса/службы
ответ
Похоже, что владелец Модуль iptables - это то, что вы хотите. Во-первых, проверьте, если он доступен в вашей системе:
iptables -m owner --help
Вы можете прочитать здесь: http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#OWNERMATCH
-m owner --pid-owner PID
См http://linuxpoison.blogspot.com/2010/11/how-to-limit-network-access-by-user.html и http://linux.die.net/man/8/iptables
Обратите внимание, что вам нужно модуль ipt_owner, а - pid-owner не поддерживается xt_owner.
Например (это только приближение)
#!/bin/bash
[email protected] &
iptables -m owner --pid-owner %1 -j REJECT
В действительности, однако, вы лучше использовать --uid-владельца и --gid-владельца. Во-первых, критерий -pid-владельца соответствует только точной pid, то есть ваша программа может легко порождать дочерний процесс, который не будет блокироваться этим правилом. (По крайней мере, я не читал иначе.) Во-вторых, iptables (8) предупреждает, что -IP-владелец разбит на SMP-системах (которые могут или не могут применяться к вам, но в любом случае переносимость ограничений). В-третьих, в приведенном выше сценарии есть условие гонки, потому что процесс запускается до его блокировки. (Если есть способ получить pid процесса до его начала, то я никогда не слышал об этом.)
Если есть способ получить pid процесса до его запуска, то я никогда не слышал об этом. слышал об этом.
Вы можете написать оболочку, которая разветвляется, а затем добавляет правило и Execs процесс (предполагается, что программа вы работаете не раскошелиться еще раз), так как PID не изменяется ехес (3) вызов.
/* NOTE this contains zero error checking */
int main(int argc, char **argv) {
/* Eat argv[0] the name of the wrapper script */
argv++;
argc--;
pid_t my_pid = getpid();
char *iptables_cmd = NULL;
asprintf(&iptables_cmd, "/sbin/iptables -A INPUT -m owner --pid_owner %d -j ACCEPT", my_pid);
system(iptables_cmd);
execv(argv[0], argv);
}
- 1. Правило iptables для соответствия суффиксу адреса
- 2. Что означает это правило iptables?
- 3. Правило iptables HTTP и HTTPS игнорируется
- 4. Как вы редактируете правило в iptables?
- 5. Создать правило fail2ban для Apache2
- 6. IPtables, используемые для балансировки нагрузки
- 7. Открытый порт 443, добавив правило в iptables (Ubuntu)
- 8. Как сформулировать правило IP пересылки с помощью IPTables
- 9. Как вводить ошибку iptables в ее правило, помещая дубликат листинга?
- 10. Как удалить правило iptables на основе ip-порта
- 11. iptables и несколько ipsets
- 12. Эмуляция беспорядочного режима с iptables
- 13. Вопросы для экзамена IPTables
- 14. Ищете способ правильно создать файл iptables-restore
- 15. Как создать правило dtd для этого XML?
- 16. Создать собственное правило для Eclipse-cs
- 17. Хотите создать правило redirct для htaccess
- 18. Как создать правило в .htaccess для перенаправления
- 19. Создать шаблонное правило для шаблонов в переменной?
- 20. Sonar: Создать новое правило для Android Lint
- 21. Создать правило для подсчета количества модулей
- 22. Создать правило GWT-компиляции для Ant build.xml
- 23. iptables и libpcap
- 24. iptables для удаления входных подключений к postgres
- 25. IPTables Rules Order
- 26. iptables для пересылки порта в другую сеть
- 27. IP не отвергается - IPTables
- 28. Как использовать xargs для удаления правил iptables?
- 29. IPTables Диапазон портов
Владелец разрешает вам сопоставлять пользователя или группу, которым принадлежит этот процесс, а не имя самого процесса. (Возможно, флаг владельца cmd был удален). – 2012-06-01 22:10:03