특정 UID에 대한 발신 연결 차단 (루트, 아파치, 아무도)


8

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

답변:


8

이름 대신 숫자 UID를 사용해보십시오. 예를 들면 다음과 같습니다.

-A OUTPUT -m owner --uid-owner 400 -j DROP

대신에

-A OUTPUT -m owner --uid-owner apache -j DROP

다음을 입력하여 UID를 찾을 수 있습니다

id user
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.