CentOS 5 및 6 Linux의 iptables를 사용하면 루트 , 아파치 또는 아무도 실행하지 않는 프로세스가 나가는 연결을 시작 하지 못하게하려면 어떻게해야 합니까?
CentOS 5 Linux에서는 다음 행을 / etc / sysconfig / iptables에 넣었습니다.
-A OUTPUT -m owner --uid-owner root -j DROP
-A OUTPUT -m owner --uid-owner apache -j DROP
-A OUTPUT -m owner --uid-owner nobody -j DROP
그러나 불행히도 오류가 발생합니다.
# sudo service iptables restart
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: iptables-restore v1.4.7: owner: Bad value for "--uid-owner" option: "apache"
Error occurred at line: 27
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
[FAILED]
iptables를 사용하여 할 수 없습니다. iptables는 ip 패킷 만 검사하며 uid / gid에 대한 정보는 없습니다. iptables는 소스 / 대상 필드, 포트 등으로 만 패킷을 차단할 수 있습니다.
—
Goez
OpenBSD의 pf가 가능하다는 것을 알고 있습니다. 또한 Linux iptables에는 -m 소유자가있는 것 같습니다. 어쩌면 당신이 틀렸을까요?
—
Alexander Farber
맨 페이지를 확인하면 -m은 match (module)를 나타내며 소유자가 아니라 프로세스 소유자를위한 모듈이있을 수 있습니다.
—
Goez
내 이해에서 "-m owner"는 iptables에 다음과 같이 말합니다. " 'owner'모듈을로드하면 작업을 수행 할 수 있습니다"
—
Alexander Farber
방금 확인하면 실제로 소유자 모듈이 있습니다. 전에는 들어 본 적이 없습니다. 그러나 그것은 숫자 ID와 함께 작동하므로 규칙을 변경해야합니다
—
Goez