읽었지만 프로세스별 방화벽 규칙을 만드는 방법을 찾을 수 없는 것 같습니다. 알아요. iptables --uid-owner
하지만 이는 나가는 트래픽에만 적용됩니다. 스크립트 작성을 고려했지만 netstat
프로세스 iptables
가 짧은 시간 동안만 활성화되면 스크립트가 이를 놓칠 수 있기 때문에 이는 매우 비효율적인 것 같습니다. 기본적으로 다른 프로세스는 영향을 받지 않고 그대로 두고 프로세스의 포트와 대상에 특정 제한을 적용하고 싶습니다. 어떤 아이디어가 있나요?
참고로 selinux는 이것을 할 수 있고 꽤 잘 작동합니다. 하지만 설정하는 것이 약간 고통스럽습니다.
답변1
귀하의 질문은 다음과 매우 유사합니다https://stackoverflow.com/questions/5451206/linux-per-program-firewall-similar-to-windows-and-mac-counterparts
iptables에 대한 소유자 모듈이 있었는데 --cmd-owner
제대로 작동하지 않아 제거되었습니다. 이제 첫 번째 베타 버전에서표범 꽃사용할 수 있으면 사용자 공간 데몬을 통해 문제를 해결합니다.
일반적으로 프로세스별 방화벽은 프로그램을 실제로 격리하고 제한하지 않는 한 별로 유용하지 않습니다. 이를 위해서는 TOMOYO Linux, SELinux, AppArmor, grsecurity, SMACK 등과 같은 보안 솔루션을 고려해야 합니다.
답변2
간단합니다. 다른 사용자로 프로세스를 실행하고 "--uid-owner"를 사용하세요. :)
답변3
특정 cgroup2 계층 구조와 관련된 소켓 필터링을 허용할 수 있는 man 8 iptables-extensions 및 "cgroup" 옵션을 확인하십시오. 고유한 cgroup을 사용하여 특정 프로세스를 실행할 수 있는 경우 이는 OUTPUT 및 INPUT 체인 모두에서 작동할 수 있습니다. 그러나 매뉴얼 페이지에서는 INPUT 체인과 함께 사용하는 것에 대한 경고를 제공하므로 프로세스/프로그램에 대해 테스트해야 합니다. 그리고 YMMV.