저는 모든 들어오고 나가는 연결을 차단하고 특정 나가는 통신만 허용하도록 Fedora 36에 방화벽을 설정하려고 합니다.
- 이 컴퓨터는 어떤 종류의 서버도 아니므로 들어오는 모든 연결을 차단하려고 합니다.
- 선택한 일부 포트만 트래픽을 보낼 수 있도록 허용하고 싶습니다.
제가 생각할 수 있는 것은 다음과 같습니다.
- 모든 인터페이스의 기본 로캘 설정은 다음과 같습니다.사람들
- 기본 공개 영역 대상 설정은 다음과 같습니다.줄이다
- 공개 영역에는 서비스, 포트, 프로토콜 등이 구성되어 있지 않습니다.
- 컴퓨터에서 IPv6이 전혀 활성화되어 있지 않습니다.
- 컴퓨터에 고정 IPv4가 있으므로 dhcp 포트가 필요하지 않습니다.
- 추가 네트워킹 소프트웨어가 설치되지 않은 새 Fedora 시스템에서 이것을 테스트하고 있습니다.
- 방화벽은 변경이 있을 때마다 다시 로드됩니다.
- 나머지는 직접적인 규칙을 사용하여 구성됩니다.
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 규칙만 특정 포트를 허용한다는 것입니다. 그래서 새로운 상태가 필요하지 않습니다.
어떻게 하면 그렇게 동작하게 만들 수 있나요?
감사해요.