nftables를 사용하여 Debian 10에서 Linux 라우터를 설정하려고 합니다. 나는 몇 가지 튜토리얼을 따르고 문제에 대한 혼란을 가중시키는 몇 가지 독서를 했습니다. 내 라우터, WAN, 관리 및 LAN1에 3개의 인터페이스가 있고 기본 설정이 예상대로 작동하지만 이제 서버에서 업데이트를 수행하려고 하면 WAN 인터페이스에서 나오는 로컬 트래픽이 차단되는 것을 발견했습니다. 내 nftable.conf는 다음과 같습니다
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain output {
type filter hook output priority 0; policy accept;
}
chain input {
type filter hook input priority 0; policy accept;
iif WAN ip protocol icmp accept
iif WAN drop
iif LAN1 ip protocol icmp accept
iif LAN1 udp dport {67, 68} accept
iif LAN1 counter drop
iif Management accept
}
chain forward {
type filter hook forward priority 0; policy drop;
iif LAN1 oifname WAN accept
iif WAN oifname LAN1 ct state related,established accept
}
}
table ip nat {
chain prerouting {
type nat hook prerouting priority 0; policy accept;
}
chain postrouting {
type nat hook postrouting priority 100; policy accept;
oif WAN masquerade
}
}
icmp 규칙 때문에 WAN 인터페이스를 통해 IP 주소를 ping할 수 있지만 WAN 인터페이스에 대한 다른 모든 트래픽을 차단하고 싶기 때문에 "iif WAN 삭제" 규칙을 도입하면 DNS가 도메인 이름을 확인할 수 없습니다. WAN 인터페이스를 통해 서버에 연결할 수 있습니다.
내가 이해한 바에 따르면 출력 규칙은 호스트로부터의 아웃바운드를 허용해야 하는데 호스트 트래픽이 입력 필터에 의해 차단되는 이유를 이해할 수 없습니다.
LAN1 인터페이스에 연결된 클라이언트 노드에서 수행한 일부 테스트에 따르면 클라이언트는 트래픽이 제한되지 않더라도 호스트를 탐색할 수 있습니다.
누구든지 내 실수를 지적하거나 이것이 호스트 트래픽에 영향을 미치는 이유를 설명할 수 있다면.
감사해요
답변1
입력 체인의 규칙은 WAN에 도착하고 라우터 자체로 향하는 모든 패킷을 삭제합니다(ICMP 패킷 제외). 라우터 자체가 연결을 설정할 수 있도록 하려면 iff WAN ct state established,related accept
전달 체인의 규칙과 유사한 규칙이 필요합니다. 이 규칙이 먼저 와야 합니다 iff WAN drop
. 좋은 측정을 위해 루프백 인터페이스에 대한 명시적인 수락 규칙도 추가하겠습니다.