저는 포트 8080에서 wikijs를 실행하고 있으며 Apache를 사용하여 역방향 프록시를 실행하고 있습니다. cloudflare argo 터널을 사용하면 특정 사람만 wikijs에 로그인할 수 있습니다.
따라서 사용자가 http://publicip:80(Apache에서 사용하는 포트)을 탐색하려고 하면 포트 8080으로 리디렉션되고 cloudflare 홈 페이지가 팝업됩니다.
그러나 사용자가 http://publicip:8080(wikijs에서 사용하는 포트)에 직접 액세스하려고 하면 계속 연결됩니다. ufw를 시도했지만 포트 80은 허용되지 않으며 작동합니다. 하지만 포트 8080에는 해당되지 않습니다.
답변1
여기에서 수정 사항을 찾았습니다.https://github.com/chaifeng/ufw-docker;현재 ufw는 도커 포트를 공개적으로 차단하지 않습니다. /etc/ufw/after.rules를 변경해야 합니다.
UFW 구성 파일 /etc/ufw/after.rules를 수정하고 파일 끝에 다음 규칙을 추가합니다:
# BEGIN UFW AND DOCKER
*filter
:ufw-user-forward - [0:0]
:ufw-docker-logging-deny - [0:0]
:DOCKER-USER - [0:0]
-A DOCKER-USER -j ufw-user-forward
-A DOCKER-USER -j RETURN -s 10.0.0.0/8
-A DOCKER-USER -j RETURN -s 172.16.0.0/12
-A DOCKER-USER -j RETURN -s 192.168.0.0/16
-A DOCKER-USER -p udp -m udp --sport 53 --dport 1024:65535 -j RETURN
-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 192.168.0.0/16
-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 10.0.0.0/8
-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 172.16.0.0/12
-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 192.168.0.0/16
-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 10.0.0.0/8
-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 172.16.0.0/12
-A DOCKER-USER -j RETURN
-A ufw-docker-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW DOCKER BLOCK] "
-A ufw-docker-logging-deny -j DROP
COMMIT
# END UFW AND DOCKER