간단하지만 효과적인 방화벽을 찾고 있습니다.

간단하지만 효과적인 방화벽을 찾고 있습니다.

방금 에서 실행되는 것을 설치했습니다 linuxmint-19.2-xfce-64bit.

모든 들어오고 나가는 트래픽을 차단하도록 Gufw를 설정했지만 내 시스템은 여전히 ​​IP 주소를 수신합니다! 소프트웨어 관리자는 쿼리 결과를 얻지만(로컬이 아닌 경우) Firefox는 최소한 차단됩니다.

그렇다면 어떻게 하면 모든 것을 멈출 수 있을까요? 또한 프로세스가 연결을 시도할 때 창, 팝업 또는 유사한 알림을 통해 화면에 경고를 표시하고 싶습니까?

1]

답변1

Linux에서 표준 네트워크 스택은 소스 IP가 0.0.0.0인 IP 패킷 전송을 금지합니다(커널 2.2부터 시작 가능). 이는 DHCP 프로토콜에서 필요하기 때문에 DHCP 도구는 이 제한을 우회해야 합니다.

따라서 DHCP 클라이언트는 RAW 소켓을 사용하여 소스 IP 0.0.0.0으로 금지된 패킷을 만들고 실제로 초기 DHCP 교환에 사용합니다. 이러한 패킷은 iptables를 포함하여 네트워크 스택을 우회합니다.

찾을 수 있는 빠르고 관련 있는 링크는 다음과 같습니다.

원시 소켓 사용 가이드
Red Hat Bugzilla – 버그 1269914 – 원시 소켓을 통해 들어오는 패킷을 방화벽할 수 없습니다.
ISC - DHCP가 원시 소켓을 사용하는 방법

어쨌든, 다른 용도로 필요하지 않은 경우에도 이더넷 브리지를 사용하여 방화벽을 설정하는 것이 가능합니다. 따라서 브리지 인터페이스를 생성하고 그 안에 고유한 이더넷 인터페이스를 노예로 설정하고(무선 Wi-Fi 인터페이스는 일반적으로 복잡한 설정 없이는 브리지에서 작동하지 않음) 브리지를 사용하도록 DHCP 클라이언트를 설정할 수 있습니다. 원래 이더넷 인터페이스. 그러면 DHCP 클라이언트가 보낸 패킷이 전환되므로 브리지 방화벽을 사용해야 합니다.ebtables(대신 nftables를 사용할 수도 있습니다):

ebtables -A OUTPUT -j DROP

수신된 패킷에도 동일하게 적용됩니다.

ebtables -A INPUT -j DROP

아니면 그렇게 하고 싶지 않다면 인터페이스 수준에서 더 낮은 수준으로 가야 하는데, 이는 다음을 사용할 때 가능합니다.tc. 인터페이스가 호출된다고 가정합니다 eth0(이미지를 읽기 어렵습니다).

수업을 추가하다단순한qdisc는 필터를 연결할 수 있습니다:

tc qdisc add dev eth0 root handle 1: prio

모두 일치 추가/모든 필터 및 작업 제거:

tc filter add dev eth0 parent 1: matchall action drop

이제 인터페이스 밖으로 아무것도 나갈 수 없지만 원하는 경우 들어오는 패킷을 계속 볼 수 있습니다.

(다음을 tc qdisc del dev eth0 root사용하여 모든 것을 복원할 수 있습니다.

마찬가지로 들어오는 모든 데이터를 차단할 수 있습니다.

tc qdisc add dev eth0 ingress
tc filter add dev eth0 ingress matchall action drop

(취소 사용 tc qdisc del dev eth0 ingress)

쉽다고 말할 수는 없지만 이 tc방법은 4개의 명령으로 완전한 잠금을 달성하고 브리지를 사용할 때 필요할 수 있는 NetworkManager와 같은 다른 네트워크 도구를 재구성할 필요가 없습니다(Wi-Fi에서도 작동함).

관련 정보