프로그램이 인터넷을 사용하지 못하도록 차단

프로그램이 인터넷을 사용하지 못하도록 차단

데비안에는 특정 프로그램이 인터넷에 연결되는 것을 방지하는 방법(나가는 연결을 차단하는 방화벽)이 있습니까? 예를 들어 와인에서 실행되는 Windows 프로그램이 홈으로 전화하는 것을 방지하는 방법이 있습니까?

답변1

당신이 사용할 수있는Linux 컨테이너네트워크 인터페이스가 없는 환경을 만듭니다. 예를 들어, 다음과 같은 구성 파일을 생성한다면:

# lxc.network.type = empty

그런 다음 다음과 같이 쉘을 시작하십시오.

# lxc-execute --name bash -f /tmp/lxc.conf /bin/bash

이 쉘에는 다음을 제외하고는 사용할 수 있는 네트워크 장치가 없습니다 lo.

# ifconfig -a
lo        Link encap:Local Loopback  
          LOOPBACK  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

이것을 실행하려면 루트 권한이 있어야 하므로 lxc-execute데스크탑 환경에서 작동하게 하는 것은 wine까다로울 수 있습니다.

sandbox분명히 SELinux의 일부로 사용할 수 있는 명령 도 있습니다 . 이것은샌드박스를 사용하여 Firefox를 실행하는 예. 이를 위해서는 selinux를 활성화해야 합니다.

답변2

더 간단한 접근 방식은 WINE 프로그램을 다른 사용자로 실행하고 netfilter를 설정하여 해당 사용자로부터 패킷을 삭제하는 것입니다.

예를 들어, "wineusername"은 Wine 사용자이고 em1은 네트워크 인터페이스입니다.

iptables -A OUTPUT -o em1 -m owner --uid-owner wineusername -j DROP
iptables -A FORWARD -o em1 -m owner --uid-owner wineusername -j DROP
iptables -A INPUT -o em1 -m owner --uid-owner wineusername -j DROP

관련 정보