Linux에서 특정 프로그램에 대한 인터넷 액세스를 차단하는 방법


답변:


31

나를위한 해결책은 간단했습니다.

  1. 작성 확인 새 그룹을 ; 이 그룹에 필요한 사용자를 추가하십시오.
    • 몹시 떠들어 대다: groupadd no-internet
    • 확인 : grep no-internet /etc/group
    • 사용자 추가 : useradd -g no-internet username

      참고 : 기존 사용자를 수정하는 경우 다음을 실행해야합니다 usermod -a -G no-internet userName .sudo groups userName

  2. 경로에 스크립트 를 작성하고 실행 가능하게 만드십시오.
    • 몹시 떠들어 대다: nano /home/username/.local/bin/no-internet
    • 실행 가능 : chmod 755 /home/username/.local/bin/no-internet
    • 함유량: #!/bin/bash
                    sg no-internet "$@"

  3. 인터넷이없는 그룹의 네트워크 활동을 삭제하기위한 iptables 규칙 추가 :
    • iptables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP

      참고 : 변경 사항을 영구적으로 유지하는 것을 잊지 마십시오 . 재부팅 후 자동으로 적용됩니다 . 이를 수행하는 것은 Linux 배포판에 따라 다릅니다.


   예를 들어 Firefox에서 다음을 실행하여 확인하십시오.

  • no-internet "firefox"

예외를 만들고 프로그램이 로컬 네트워크 에 액세스하도록 허용하려는 경우 :

  • iptables -A OUTPUT -m owner --gid-owner no-internet -d 192.168.1.0/24 -j ACCEPT
  • iptables -A OUTPUT -m owner --gid-owner no-internet -d 127.0.0.0/8 -j ACCEPT
  • iptables -A OUTPUT -m owner --gid-owner no-internet -j DROP

참고 : 스폰시 규칙이 유지됩니다. 예를 들어, 인터넷 규칙 이 없는 프로그램을 실행 하고 해당 프로그램이 브라우저 창을 열면 규칙이 계속 적용됩니다.


2
몇 가지 참고 Ilia : Ad 1 :-기존 사용자 수정 : usermod -a -G groupName userName-확인 : sudo groups userName Ad 3 :-이미 iptables에 많은 규칙이 있습니다. 새 규칙의 위치는 매우 중요합니다 . 체인 OUTPUT의 첫 번째 규칙이어야합니다. 따라서 insert : iptables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP을 사용합니다. LAN에 액세스하려면 ACCEPT 규칙이 DENY 규칙 위에 있는지 확인하십시오. 매력처럼 작동합니다. 예를 들어 Wifiguard에서 사용하십시오. Prog는 무선 장치에 알 수없는 장치가 있는지 확인하지만 시작할 때마다 "전화를 겁니다"

스크립트는 명령 만 전달합니다. 매개 변수를 사용하여 프로그램을 시작하려고하면 "$ 1"대신 "$ @"을 사용해야합니다. 어떤 이유로, bash가 올바르게 처리하기 위해 변수에 임시로 저장해야했습니다. cmd = "$ @"; sg no-internet "$ {cmd}"
12

"인터넷 없음"대신 "nointernet"을 사용하십시오. 어떤 이유로 든 우분투 14.04는 sg 또는 chgrp를 사용하려고 할 때 대시를 처리 할 수 ​​없습니다 (암호를 묻는 메시지가 표시되면 실패합니다).

1
unshare -n YourAppToBlock> "인터넷 없음"대신 "nointernet"을 사용하십시오. 아마도 '아니오 \\-인터넷'?
SarK0Y

설명 된 것처럼 시도했지만 "비 인터넷"에 나를 추가하고 ip-tables를 설정 한 후 더 이상 인터넷에 연결할 수 없습니다 (bash 스크립트 no-internet이 있거나없는).
Viatorus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.