Настройка Cloudflare для доменного имени сайта.



Name server`а (NS), которые нужно будет прописать в панели управления доменом у Вашего регистратора доступны в личном кабинете Cloudflare. После их смены Cloudflare будет автоматически проверять обновление NS-серверов и отобразит информацию о том, что домен (имя сайта), который вы предварительно создали в их кабинете и прошли шаги по настройки уже активен и DNS записи домена могут меняться со стороны Cloudflare.
Меняем А-запись со стороны кабинета Cloudflare, которая отвечает за направление домена на IPv4 адрес веб-сервера, а колонка с названием Proxy status и оранжевым облаком показывает, какие именно DNS записи будут проходить через Cloudflare на сервер. 72 часа может занят полное обновление DNS записей на нашей круглой планете, но обычно через 2-8 часов ближайшие сервера смогут увидеть новые настройки. 


Проверить обновились ли записи NS можно любым удобным инструментом nslookupdighost, не забывая указать какой-то конкретный DNS сервер для опроса:

# host -t NS example.com 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:

example.com name server nitin.ns.cloudflare.com.
example.com name server nucum.ns.cloudflare.com.

Проверить ответ одного DNS сервера хорошо, но еще лучше посмотреть через любой известный вам сайт, как обстоят дела в мире у других серверов, видят ли они так же внесенные изменения в настройки NS-серверов доменного имени:


Дальше посмотрим, как простым скриптом заблокировать доступ дополнительно со стороны сервера всем, кроме IP адресов самого Cloudflare, который выступает в роли прокси, конечно, если обращение идет по доменному имени сайта, а вот блокировка будет полезна для тех, кто решил минуя Cloudflare идти напрямую по IP адресу с желанием навредить нашему серверу.

Если нет физического доступа к серверу или к его веб-консоли, было бы не плохо до активации
firewallufw в Ubuntu, чтобы не оборвалось удаленное подключение открыть доступ к порту SSH. 

Проверяем статус firewall

root@ip-172-31-88-51:~# ufw status numbered
Status: inactive

Открываем дефолтный 22 порт SSH для одного IP адреса

root@ip-172-31-88-51:~# ufw allow from 1.1.1.1 to any port 22 proto tcp
Rules updated
Rules updated (v6)

Включаем firewall

root@ip-172-31-88-51:~# ufw enable

Скачиваем небольшой скрипт, который добавить список CIDR диапазонов IPv4 и IPv6 адресов Cloudflare в разрешенные подключения к 80/HTTP и 443/HTTPS порту в ufw (Uncomplicated Firewall)

root@ip-172-31-88-51:~# wget https://raw.githubusercontent.com/clusterednetworks/ufw-block-http-except-cloudflare/master/cloudflare-ufw.sh

root@ip-172-31-88-51:~# chmod +x cloudflare-ufw.sh

root@ip-172-31-88-51:~# ./cloudflare-ufw.sh

root@ip-172-31-88-51:~# ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                        ALLOW IN    1.1.1.1
[ 2] 80,443/tcp                 ALLOW IN    173.245.48.0/20
[ 3] 80,443/tcp                 ALLOW IN    103.21.244.0/22
[ 4] 80,443/tcp                 ALLOW IN    103.22.200.0/22
[ 5] 80,443/tcp                 ALLOW IN    103.31.4.0/22
[ 6] 80,443/tcp                 ALLOW IN    141.101.64.0/18
[ 7] 80,443/tcp                 ALLOW IN    108.162.192.0/18
[ 8] 80,443/tcp                 ALLOW IN    190.93.240.0/20
[ 9] 80,443/tcp                 ALLOW IN    188.114.96.0/20
[10] 80,443/tcp                 ALLOW IN    197.234.240.0/22
[11] 80,443/tcp                 ALLOW IN    198.41.128.0/17
[12] 80,443/tcp                 ALLOW IN    162.158.0.0/15
[13] 80,443/tcp                 ALLOW IN    104.16.0.0/13
[14] 80,443/tcp                 ALLOW IN    104.24.0.0/14
[15] 80,443/tcp                 ALLOW IN    172.64.0.0/13
[16] 80,443/tcp                 ALLOW IN    131.0.72.0/22
[17] 22/tcp (v6)                ALLOW IN    Anywhere (v6)
[18] 80,443/tcp                 ALLOW IN    2400:cb00::/32
[19] 80,443/tcp                 ALLOW IN    2606:4700::/32
[20] 80,443/tcp                 ALLOW IN    2803:f800::/32
[21] 80,443/tcp                 ALLOW IN    2405:b500::/32
[22] 80,443/tcp                 ALLOW IN    2405:8100::/32
[23] 80,443/tcp                 ALLOW IN    2a06:98c0::/29
[24] 80,443/tcp                 ALLOW IN    2c0f:f248::/32

Проверяем дефолтную политику iptables в таблице filter (22.04 Ubuntu дефолт - DROP) 

root@ip-172-31-88-51:~# iptables -L -n
Chain INPUT (policy DROP)
target     prot opt source               destination
ufw-before-logging-input  all  --  0.0.0.0/0            0.0.0.0/0
ufw-before-input  all  --  0.0.0.0/0            0.0.0.0/0
ufw-after-input  all  --  0.0.0.0/0            0.0.0.0/0
ufw-after-logging-input  all  --  0.0.0.0/0            0.0.0.0/0
ufw-reject-input  all  --  0.0.0.0/0            0.0.0.0/0
ufw-track-input  all  --  0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy DROP)
target     prot opt source               destination
ufw-before-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0
ufw-before-forward  all  --  0.0.0.0/0            0.0.0.0/0
ufw-after-forward  all  --  0.0.0.0/0            0.0.0.0/0
ufw-after-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0
ufw-reject-forward  all  --  0.0.0.0/0            0.0.0.0/0
ufw-track-forward  all  --  0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ufw-before-logging-output  all  --  0.0.0.0/0            0.0.0.0/0
ufw-before-output  all  --  0.0.0.0/0            0.0.0.0/0
ufw-after-output  all  --  0.0.0.0/0            0.0.0.0/0
ufw-after-logging-output  all  --  0.0.0.0/0            0.0.0.0/0
ufw-reject-output  all  --  0.0.0.0/0            0.0.0.0/0
ufw-track-output  all  --  0.0.0.0/0            0.0.0.0/0
 
В AWS или любом другом облачном провайдере с наличием Statefull Firewall'а (Security Group) расположенного перед сервером, все эти настройки можно сделать там.



https://github.com/clusterednetworks/ufw-block-http-except-cloudflare

Комментарии