====== Cloudflare ======
===== Список IP адресов CloudFlare =====
https://www.cloudflare.com/ips/
==== IPv4 ====
https://www.cloudflare.com/ips-v4
173.245.48.0/20
103.21.244.0/22
103.22.200.0/22
103.31.4.0/22
141.101.64.0/18
108.162.192.0/18
190.93.240.0/20
188.114.96.0/20
197.234.240.0/22
198.41.128.0/17
162.158.0.0/15
104.16.0.0/12
172.64.0.0/13
131.0.72.0/22
==== IPv6 ====
https://www.cloudflare.com/ips-v6
2400:cb00::/32
2606:4700::/32
2803:f800::/32
2405:b500::/32
2405:8100::/32
2a06:98c0::/29
2c0f:f248::/32
===== Не работает почта через Cloudflare =====
Это не баг, это фича. Cloudflare и не должен кэшировать почтовый трафик.
Поэтому нужно [[https://support.cloudflare.com/hc/en-us/articles/200168876-My-email-or-mail-stopped-working-What-should-I-do-|выключить облако в CF и сделать его серым]]. И всё сразу начнёт работать.
===== mod_cloudflare =====
Код на github: https://github.com/cloudflare/mod_cloudflare\\
Готовые пакеты и инструкция по установке: https://www.cloudflare.com/technical-resources/#mod_cloudflare
**Ссылки на RPM/DEB**
RHEL/CentOS/CloudLinux
* [[https://www.cloudflare.com/static/misc/mod_cloudflare/centos/mod_cloudflare-el7-x86_64.latest.rpm|RHEL/CentOS/CloudLinux 7 (64-bit)]]
* [[https://www.cloudflare.com/static/misc/mod_cloudflare/centos/mod_cloudflare-el6-x86_64.latest.rpm|RHEL/CentOS/CloudLinux 6 (64-bit)]]
Debian
* [[https://www.cloudflare.com/static/misc/mod_cloudflare/debian/mod_cloudflare-jessie-amd64.latest.deb|Debian 8 (64-bit)]]
* [[https://www.cloudflare.com/static/misc/mod_cloudflare/debian/mod_cloudflare-wheezy-amd64.latest.deb|Debian 7 (64-bit)]]
===== Добавить IP в whitelist для WAF =====
Firewall → Firewall Rules → Field: IP Address → Operator: is in → Value: список адресов → Then... Bypass.
[[https://help.intruder.io/en/articles/4255978-how-to-whitelist-intruder-in-cloudflare|Подробнее]]
===== Доступ только по 80 и 443 =====
Проблема: CF проксирует by design не только 80 и 443 порт, но ещё и порты cPanel/Plesk (8080, 8880, 2052, 2082, 2086, 2095, 2053, 2083, 2087, 2096, 8443). Об этом подробнее [[https://support.cloudflare.com/hc/en-us/articles/200169156-Identifying-network-ports-compatible-with-Cloudflare-s-proxy|здесь]] и [[https://blog.cloudflare.com/cloudflare-now-supporting-more-ports/|здесь]]. В результате на сайт можно попасть к примеру по адресу https://foobar.com:8443
Первое решение: включить WAF правило "100015 Anomaly:Port - Non Standard Port (not 80 or 443)" в разделе Firewall → Managed Rules → Cloudflare Specials
{{:linux:cloudflare_waf_100015_01.png?nolink|}}
{{:linux:cloudflare_waf_100015_02.png?nolink|}}
Второе решение: в разделе Firewall → Firewall Rules добавить
* Rule Name: Port Block
* Rule Action: Block
(http.host eq "rtfm.wiki") and not cf.edge.server_port in {80 443}
В документации CF указан [[https://developers.cloudflare.com/firewall/recipes/require-specific-http-ports|НЕВЕРНЫЙ пример]] (ошибка parse error)
host eq "www.example.com" and not cf.edge.server_port in {80 443}
Разве нельзя просто закрыть все эти порты? [[https://community.cloudflare.com/t/close-port-8443-on-sslxxxxxx-cloudflaressl-com/155714|Нет, нельзя]].
{{:linux:cloudflare_close_port.png?nolink|}}
Итого. Доступ можно закрыть и пользователь будет получать сообщение "Error 1020 Access Denied", но при этом nmap всё равно будет показывать "Discovered open port 8443/tcp on 104.x.y.z"
===== CloudFlare __cfduid (secure cookie) =====
https://community.cloudflare.com/t/pci-scan-failed-cookie-does-not-contain-the-secure-attribute/1636
https://support.cloudflare.com/hc/en-us/articles/200170156
===== Ссылки =====
* [[https://support.cloudflare.com/hc/en-us/articles/201897700-Getting-Started-with-CloudFlare-Recommended-First-Steps-for-all-CloudFlare-users|Getting Started with CloudFlare]]
* [[https://support.cloudflare.com/hc/en-us/articles/200170166|General website security guidelines]]
{{tag>cloudflare waf ddos безопасность}}