상태:
나는 최근에 iptables와 함께 작동하여 Linux 운영 체제와의 모든 인터넷 액세스를 차단하는 다음 쉘 스크립트를 발견했습니다.그룹라고 불리는 internet
:
암호:
복잡하게 들릴 수도 있지만 실제로는 매우 간단합니다. 먼저 다음과 같이 "인터넷" 그룹을 만듭니다.
sudo groupadd internet
그런 다음 스크립트에 저장합니다.
#!/bin/sh
# Firewall apps - only allow apps run from "internet" group to run
# clear previous rules
sudo iptables -F
# accept packets for internet group
sudo iptables -A OUTPUT -p tcp -m owner --gid-owner internet -j ACCEPT
# also allow local connections
sudo iptables -A OUTPUT -p tcp -d 127.0.0.1 -j ACCEPT
sudo iptables -A OUTPUT -p tcp -d 192.168.0.1/24 -j ACCEPT
# reject packets for other users
sudo iptables -A OUTPUT -p tcp -j REJECT
# open a shell with internet access
sudo -g internet -s
원천: https://plus.google.com/+TobyKurien/posts/YZhZJCZmGgm
질문:
일어난 일에 대한 다음 설명이 맞습니까?
sudo groupadd internet
인터넷이라는 그룹이 설립되었습니다.sudo iptables -F
iptables의 모든 현재 규칙 지우기sudo iptables -A OUTPUT -p tcp -m owner --gid-owner internet -j ACCEPT
이 문제가 발생했습니다...-A OUTPUT
터미널에 규칙을 추가/추가하라고 지시한 다음 문서에-p
따라"확인할 패킷의 규칙 또는 프로토콜", 그래서-p tcp
반영하는 선을 배치하는 것 같습니다.TCP 프로토콜프로토콜이지만 YouTube/twitch에서 스트리밍을 시청하려면 어떻게 해야 하나요? 포함해야 합니까udp
? 그렇다면 어떻게 포함해야 합니까?그런 다음 -m(일치용)입니다. 문서를 읽었지만 그것이 무엇인지 잘 모르겠습니다. 이제
-m owner --gid-owner internet -j
이것이 무엇을 의미하는지 모르겠습니다 .댓글에서# accept packets for internet group
나는 코드가 무엇을 하는지 이해하지만, 그 결론에 도달하기 위해 각 요소가 무엇을 하는지 이해하고 싶습니다.
답변1
귀하의 설명이 정확합니다.
모든 것을 UDP 패킷에도 적용하려면 동일한 규칙 세트를 다시 추가해야 하지만 두 개의 규칙만 추가 -p udp
하는-p tcp
사용할 권리예를 들어 Youtube의 경우 Youtube의 스트림이 UDP를 사용하더라도 그렇게까지 도달할 수 없기 때문에 스트림을 시청할 수 없습니다.
이 옵션은 -m
사용할 일치 유형을 선택합니다. 다양한 기준을 일치시킬 수 있으며 man iptables-extensions
일치하는 모듈로 iptables()를 확장할 수도 있습니다. 여기에서 -m owner
패킷 소유권으로 일치를 선택하고 --gid-owner
일치하는 그룹 소유권을 지정합니다. 따라서 이 두 가지 옵션을 함께 사용하면 "이 규칙은 그룹의 누군가가 보낸 패킷에만 적용됩니다 internet
"를 의미합니다.
옵션 -j
(초기에는 "점프")은 규칙이 일치할 때 수행할 작업을 지정합니다. ACCEPT
(규칙 처리를 중지하고 이 패킷을 보냅니다) 또는 REJECT
(규칙 처리를 중지하고 이 패킷을 무시합니다) 다른 체인으로 이동할 수 있습니다.
다음 두 규칙은 전송 응용 프로그램이 속한 그룹에 관계없이 패킷( ACCEPT
)이 특수 대상( )으로 전송되도록 허용하고, 마지막 규칙은 이전 규칙( )과 일치하지 않는 모든 패킷을 삭제합니다. 따라서 마지막 규칙은 실제 차단을 수행합니다.-d
REJECT
iptables
인터넷에는 많은 튜토리얼이 있습니다. 더 자세한 내용을 알고 싶다면 Google에서 검색하여 원하는 것을 선택하세요. 과거에 유용하다고 생각한 임의의 링크는 다음과 같습니다.