애플리케이션이 iptables를 사용하여 네트워크에 연결하는 것을 방지하는 방법은 무엇입니까? [복사]

애플리케이션이 iptables를 사용하여 네트워크에 연결하는 것을 방지하는 방법은 무엇입니까? [복사]

터미널에서 iptables에 대한 매뉴얼 페이지를 읽었지만 구문이 복잡하고 user, userID, UUID 등과 같은 옵션을 사용하는 방법을 완전히 이해하지 못합니다.

내 사용자 이름이 foobar이고 애플리케이션이 모든 종류의 네트워크에 연결되는 것을 방지하고 싶다고 가정해 보겠습니다. 어떻게 해야 하나요?

답변1

사용자의 모든 트래픽을 차단할 수 있습니다사용자 차단owneriptables 모듈을 사용하십시오 .

iptables -I INPUT -m owner --uid-owner BLOCKUSER -j REJECT
iptables -I OUTPUT -m owner --uid-owner BLOCKUSER -j REJECT

DROP대신 대상을 사용할 수도 있지만 REJECT이는 시간 초과로 인한 지연만 연장할 뿐입니다(참조:여기더 많은 논의를 원하시면)

접근을 허용하는 것이 편리하거나 필요할 수도 있습니다.루프백장비:

iptables -I INPUT  -m owner --uid-owner BLOCKUSER ! -i lo -j REJECT
iptables -I OUTPUT -m owner --uid-owner BLOCKUSER ! -o lo -j REJECT

귀하의 질문에 관하여 :

  • 사용자로그인하고 명령을 출력하는 데 사용하는 whoami사용자 이름 입니다.
  • 사용자 ID는 숫자로 된 사용자 ID입니다(대부분의 경우 UID 대신 사용자 이름을 간단히 사용할 수 있으며 명령을 사용하여 표시할 수 있습니다 id).
  • 보편적으로 고유한 식별자보편적으로 고유한 식별자그리고 iptables에서는 직접 사용되지 않습니다. ( --uuid-owner오타입니다)

관련 정보