예를 들어 아웃바운드 TCP 포트 80, eth0에서 XY 애플리케이션만 허용하는 iptables/pf 솔루션은 없다고 생각합니다. 따라서 사용자 ID가 "500"인 경우 포트 80/outbound/tcp/eth0에서 언급된 다른 트래픽을 어떻게 차단합니까? (예: privoxy만 eth0에서 포트 80을 사용합니다.)
추가: virtualbox도 포트 80을 사용합니까? 게스트 OS의 브라우저가 사이트에 접속할 때..어떻게 선언하나요? - 일반 사용자 설정에는 허점이 너무 많다.
답변1
iptables
특정 포트를 통과하도록 허용하는 uid
명령 입니다 .
iptables -A OUTPUT -p tcp -m tcp --dport 80 -m owner --uid-owner username -j ACCEPT
매뉴얼 페이지에서
[!] --uid-owner userid[-userid] 패킷 소켓의 파일 구조(있는 경우)가 지정된 사용자의 소유인지 여부와 일치합니다. 숫자 UID 또는 UID 범위를 지정할 수도 있습니다.
virtualbox의 경우.. 자체 커널을 실행한다고 생각합니다... 따라서 --uid-owner
호스트 OS에서 virtualbox를 사용하고 싶을 수도 있지만 --uid-owner
VM에 대한 소유자 규칙도 있을 수 있습니다.
그것이 존재한다는 점도 알아두는 것이 --gid-owner
유용할 수 있습니다. 유효한 그룹과 함께 실행되도록 그룹 browser
과 브라우저 응용 프로그램을 만든 다음 검색하려는 사용자만 해당 그룹에 넣을 수 있습니다... ...이것이 승리했습니다. 완벽한 해결책은 아니지만...대부분의 사용자는 해당 그룹으로 다른 응용 프로그램을 실행하려고 시도하지 않으므로 해당 응용 프로그램에 대한 아웃바운드를 제한하는 것이 일반적이라고 생각합니다. 아직 이 방법을 시도하지 않았기 때문에 설명대로 작동할 것이라고 100% 확신할 수 없습니다.sgid
browser