[unix] Linux에서 iptables를 사용하여 LAN의 특정 사용자에 대한 인터넷 액세스를 제한하는 방법
LAN에 A와 B라는 두 명의 사용자가 있다고 가정 해 봅시다. iptables 규칙을 사용하고 재부팅 후에도 여전히 유효하도록 규칙을 저장하여 사용자 A를 인터넷 액세스에서 제한하는 방법은 무엇입니까? 또한 어느 시점에서 해당 사용자에게 액세스 권한을 부여하고 싶다고 가정하십시오. 다시 활성화하려면 어떻게합니까? Ubuntu Linux 10.04를 사용하고 있습니다. 로컬 ssh 로그인을 사용하여 컴퓨터에 자주 로그인 할 때 누군가 명령 줄에서 수행하는 방법을 보여 주면 좋을 것입니다.
답변
사용자 A와 B가 관리자 인 동일한 Linux 시스템을 사용한다고 가정합니다. (질문에서 완전히 명확하지는 않습니다. A와 B에 자신의 컴퓨터가 관리자 인 경우 완전히 다른 문제입니다.)
다음 명령은 uid 1234를 가진 사용자가 인터페이스에서 패킷을 보내지 못하게합니다 eth0
.
iptables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1234 -j DROP
도구에 대한 기본적인 지식을 얻으려면 Ubuntu iptables 안내서 를 읽는 것이 좋습니다 (mangle 테이블과 같은 고급 기능에 대해서는 맨 페이지를 참조하십시오).
setuid 루트이기 때문에 사용자는 여전히 ping을 실행할 수 있지만 다른 것은 할 수 없습니다. 다른 사용자가 해당 프록시를 시작한 경우에도 사용자는 여전히 로컬 프록시에 연결할 수 있습니다.
이 규칙을 제거하려면 -D
위의 명령에 추가하십시오 .
규칙을 영구적으로 만들려면에 규칙을 추가하십시오 /etc/network/if-up.d/my-user-restrictions
(실행 스크립트가로 시작됨 #!/bin/sh
). 또는 사용 iptables-save
하십시오 (자세한 내용은 Ubuntu iptables 안내서 를 참조하십시오).
답변
나는 이것을 위해 iptables를 사용하지 않을 것입니다.
A와 B가 고정 IP ClientA 및 ClientB와 연결되어 있다고 가정합니다. 귀하의 인터넷 프록시가 ServerI (우분투 서버입니까?)라고 가정합니다.
따라서 ClientA에서 ServerI로 거부 / 삭제 라우팅 항목을 추가합니다.
우분투를 사용하지 않으므로 해당 설정을 영구적으로 유지하는 데 사용할 구성 파일 (재부팅 생존)을 알 수 없습니다.
누군가가 그 세부 사항을 추가 할 수 있습니까?