Cloudflare 뒤에 앉을 때는 ~만 Cloudflare의 IP 범위에서 오는 트래픽을 포트 80 및 443에서 허용합니다. Cloudflare는 이러한 범위를 주기적으로 업데이트하므로 UFW 규칙을 자동으로 새로 고쳐야 합니다. 다음 스크립트에서 cloudflare-ufw, 폴 리드의 저서는 바로 그 역할을 해낸다.
1. 스크립트를 다운로드하고 실행 권한을 부여하세요
bashsudo wget -O /usr/local/bin/cloudflare-ufw.sh \
https://raw.githubusercontent.com/Paul-Reed/cloudflare-ufw/refs/heads/master/cloudflare-ufw.sh
sudo chmod +x /usr/local/bin/cloudflare-ufw.sh
2. 현행 UFW 규정 검토 (개정 전)
bashsudo ufw status verbose
다음과 같은 내용이 표시될 것입니다:
text조치 대상
-- ------ ----
22/tcp 허용 모든 곳
80/tcp 허용 모든 곳
443 허용 모든 곳
...
3. 지나치게 허용적인 80/443 포트 규칙을 제거하십시오
현재 이 규칙들은 다음을 허용하고 있습니다 어떤 웹 포트에 연결되는 IP 주소입니다. 이를 Cloudflare 전용 규칙으로 대체할 예정입니다.
bashsudo ufw delete allow 80/tcp
sudo ufw delete allow 443/tcp
UFW에서 확인을 요청하면 다음을 입력하세요 y 그리고 Enter 키를 누르세요.
상태를 다시 확인해 보세요:
bashsudo ufw status verbose
더 이상 보이지 않아야 합니다 80/tcp 또는 443 와 함께 허용 ~에서 어디서나.
4. Cloudflare‑UFW 스크립트를 실행합니다
bashsudo /usr/local/bin/cloudflare-ufw.sh
이 스크립트의 기능:
- 다음에서 최신 Cloudflare IPv4 및 IPv6 주소 범위를 가져옵니다.
https://www.cloudflare.com/ips-v4그리고.../ips-v6. - 포트 80 및 443에 대해 허용하는 기존 UFW 규칙을 모두 삭제합니다.
어디서나. - 새로 추가
허용규칙 ~만 포트 80(HTTP) 및 443(HTTPS)의 각 Cloudflare IP 범위별로. - 선택적으로 UFW를 재시작하여 새로운 규칙이 즉시 적용되도록 합니다.
작업이 완료되면 다음을 확인하십시오:
bashsudo ufw status verbose
이제 다음과 같은 여러 줄이 표시되어야 합니다:
text수신자 발신자
-- ------ ----
80/tcp 허용 173.245.48.0/20
80/tcp 허용 103.21.244.0/22
...
443 허용 173.245.48.0/20
443 허용 103.21.244.0/22
...
포트 80/443에 대해서는 그 외의 모든 IP 주소에 대해 암묵적으로 접근이 차단됩니다.
5. cron을 사용하여 매일 업데이트를 자동화하기
Cloudflare는 언제든지 IP 범위를 변경할 수 있습니다. 방화벽 설정을 최신 상태로 유지하려면 스크립트가 매일(예: 오전 3시) 실행되도록 예약하십시오.
루트 crontab을 편집합니다:
bashsudo crontab -e
메시지가 표시되면 원하는 편집기를 선택하세요 (예:, 나노).
끝부분에 다음 줄을 추가하세요:
text0 3 * * * /usr/local/bin/cloudflare-ufw.sh >> /var/log/cloudflare-ufw.log 2>&1
다음은 다음과 같이 작동합니다:
- 서버 시간 기준으로 매일 오전 3시에 스크립트를 실행합니다.
- 출력 및 오류를 다음 위치에 추가합니다.
/var/log/cloudflare-ufw.log감사 목적으로.
편집기를 저장하고 종료하세요.
6. 크론 작업 확인
확인하기 위해 루트 사용자의 crontab을 나열합니다:
bashsudo crontab -l
새 줄이 표시되어야 합니다.
원한다면 즉시 실행을 강제하고 로그를 확인하세요:
bashsudo /usr/local/bin/cloudflare-ufw.sh
sudo tail -n 20 /var/log/cloudflare-ufw.log
7. 지속적인 유지보수
언제든지 수동으로 규칙을 새로 고치려면:
bashsudo /usr/local/bin/cloudflare-ufw.sh
로그를 확인하려면:
bashsudo less /var/log/cloudflare-ufw.log
만약 “어디서나 허용”으로 되돌려야 할 경우(실제 운영 환경에서는 권장하지 않음):
bashsudo ufw delete allow from any to any port 80 proto tcp sudo ufw delete allow from any to any port 443 proto tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp
이 설정을 적용하면 UFW 방화벽은 항상 현재 Cloudflare IP 범위에서 오는 HTTP/HTTPS 트래픽만 허용하게 되어, 공격 표면을 대폭 줄이는 동시에 Cloudflare를 통해 사이트에 계속 접속할 수 있도록 보장합니다.
답글 남기기