Firewalld는 모든 입력/출력 연결을 차단하고 특정 발신 포트만 허용합니다.

Firewalld는 모든 입력/출력 연결을 차단하고 특정 발신 포트만 허용합니다.

저는 모든 들어오고 나가는 연결을 차단하고 특정 나가는 통신만 허용하도록 Fedora 36에 방화벽을 설정하려고 합니다.

  1. 이 컴퓨터는 어떤 종류의 서버도 아니므로 들어오는 모든 연결을 차단하려고 합니다.
  2. 선택한 일부 포트만 트래픽을 보낼 수 있도록 허용하고 싶습니다.

제가 생각할 수 있는 것은 다음과 같습니다.

  1. 모든 인터페이스의 기본 로캘 설정은 다음과 같습니다.사람들
  2. 기본 공개 영역 대상 설정은 다음과 같습니다.줄이다
  3. 공개 영역에는 서비스, 포트, 프로토콜 등이 구성되어 있지 않습니다.
  4. 컴퓨터에서 IPv6이 전혀 활성화되어 있지 않습니다.
  5. 컴퓨터에 고정 IPv4가 있으므로 dhcp 포트가 필요하지 않습니다.
  6. 추가 네트워킹 소프트웨어가 설치되지 않은 새 Fedora 시스템에서 이것을 테스트하고 있습니다.
  7. 방화벽은 변경이 있을 때마다 다시 로드됩니다.
  8. 나머지는 직접적인 규칙을 사용하여 구성됩니다.
ipv4 filter OUTPUT 0 -p tcp -m tcp --dport 53 -j ACCEPT
ipv4 filter OUTPUT 0 -p tcp -m tcp --dport 80 -j ACCEPT
ipv4 filter OUTPUT 0 -p tcp -m tcp --dport 443 -j ACCEPT
ipv4 filter OUTPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
ipv4 filter OUTPUT 2 -m state --state INVALID -j DROP
ipv4 filter OUTPUT 3 -o lo -j ACCEPT
ipv4 filter OUTPUT 4 -j DROP

이것은 작동하지 않습니다. 사이트를 로드할 수 없습니다.

위의 --state 규칙에 NEW를 추가하면 웹사이트를 로드할 수 있습니다.
ipv4 filter OUTPUT 1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
그러나 모든 --dport 규칙을 제거하고 ss -tupan보류 중인 연결이 표시되지 않을 때까지 기다리면 생성된 규칙에 의해 포트가 명시적으로 허용되지 않는다는 사실에 관계없이 새 사이트를 계속 로드할 수 있습니다.

ipv4 filter OUTPUT 1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
ipv4 filter OUTPUT 2 -m state --state INVALID -j DROP
ipv4 filter OUTPUT 3 -o lo -j ACCEPT
ipv4 filter OUTPUT 4 -j DROP

--dport 규칙을 ACCEPT에서 DROP으로 변경하면 사이트가 로드되지 않지만 이는 내가 원하는 것이 아닙니다.

내 이해는 --dport 규칙이 없으면 모든 것이 제거되어야 하며 --dport 규칙만 특정 포트를 허용한다는 것입니다. 그래서 새로운 상태가 필요하지 않습니다.

어떻게 하면 그렇게 동작하게 만들 수 있나요?
감사해요.

관련 정보