내 서버의 보안을 구성하고 있습니다. 방화벽 관리를 용이하게 하기 위해 UFW를 설치했습니다. UFW에서 몇 가지 설정을 하고 일부 포트를 허용했습니다. 따라서 이를 활성화하면 DNS 서비스가 응답하지 않게 됩니다.
DNS를 테스트하기 위해 명령을 실행해 보았 DIG www.domain.com.br
으나 성공하지 못했습니다. UFW가 비활성화되면 이 명령은 문제 없이 실행됩니다. 포트 53(TCP 및 UDP)을 허용했지만 DNS가 작동하지 않습니다.
내 UFW 설정:
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
21/tcp ALLOW IN Anywhere
16/tcp ALLOW IN Anywhere
443/tcp ALLOW IN Anywhere
80 ALLOW IN Anywhere
53 ALLOW IN Anywhere
465 ALLOW IN Anywhere
25/tcp ALLOW IN Anywhere
22 ALLOW IN Anywhere
21/tcp (v6) ALLOW IN Anywhere (v6)
16/tcp (v6) ALLOW IN Anywhere (v6)
443/tcp (v6) ALLOW IN Anywhere (v6)
80 (v6) ALLOW IN Anywhere (v6)
53 (v6) ALLOW IN Anywhere (v6)
465 (v6) ALLOW IN Anywhere (v6)
25/tcp (v6) ALLOW IN Anywhere (v6)
22 (v6) ALLOW IN Anywhere (v6)
답변1
완전하고 올바른 구문은 다음과 같아야 합니다.
sudo ufw allow out to any port 53
답변2
이 문제를 해결했습니다. 나가는 포트 53(DNS 서비스 포트)을 허용합니다. 감사해요.
sudo ufw allow out 53
답변3
ufw allow dns
들어오는 DNS 요청을 먼저 허용하십시오. 이는 원하는 것이 아닙니다.
둘째, 다른 답변에 언급된 모든 명령을 따를 수 있지만(가장 쉬움 ufw allow out 53
)주문 문제. 따라서 단독으로 사용하면 DNS 요청도 거부하는 거부 문이 있는 경우마지막에 넣어!
따라서 먼저 DNS 서버가 포트 53을 사용하도록 허용하면 일부 요청이 차단/거부될 수 있습니다.
답변4
나 자신은 다른 프로젝트의 일부 방화벽 규칙을 작업하고 있는데 @diegoklapper의 솔루션이 작동하지 못했습니다.
sudo ufw allow dns
더 명시 적으로(예: 특정 인터페이스) 복사하려는 시도도 실패했습니다.
sudo ufw allow in on eth0 from any to any port 53 proto tcp
내가 뭘 잘못하고 있는지 깨달을 때까지(프로토콜 참고):
sudo ufw allow in on eth0 from any to any port 53 proto udp
참고: 이는 dnsmasq
DNS 요청을 처리 또는 전달하고 기본적으로 아웃바운드 요청을 허용하는 경우 더욱 구체적으로 적용됩니다.
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
To Action From
-- ------ ----
53/udp on eth0 ALLOW IN Anywhere