Архив метки: Ubuntu

Как установить прокси-сервер Shadowsocks-libev SOCKS5

Shadowsocks — это бесплатный прокси-сервер SOCKS5 с открытым исходным кодом, широко используемый для защиты конфиденциальности в Интернете. Shadowsocks-libev, написанный на C, портирует Shadowsocks для создания регулярно поддерживаемой, более легкой и быстрой версии оригинальной Shadowsocks. Данные, проходящие через Shadowsocks-server и Shadowsocks-client, зашифрованы и могут быть неотличимы от любого другого веб-трафика, чтобы избежать стороннего мониторинга.

В этом руководстве мы покажем шаги по установке Shadowsocks-libev на облачном сервере, настройке прокси-сервера и использованию клиента для подключения к прокси. Здесь приведены инструкции для CentOS 8, Debian 10 и Ubuntu 20.04, но процесс должен быть примерно таким же для любой операционной системы, поддерживаемой Snap.

Если у вас нет времени и желания разбираться в настройке, можно приобрести готовый прокси https://youproxy.ru/. Это быстро и несложно. Далее следует инструкция для желающих разобраться.

Установка Shadowsocks-libev

Shadowsocks-libev рекомендует использовать их выпуски Snap, чтобы упростить установку последних двоичных файлов.

На серверах CentOS 8 вам понадобится репозиторий EPEL, прежде чем вы сможете установить Snap. Добавьте его, используя следующие команды:

sudo dnf install -y epel-release

sudo dnf update -y

Затем установите и включите Snap, выполнив следующие две команды:

sudo dnf install -y snapd

sudo systemctl enable --now snapd.socket

Для систем Debian 10 и Ubuntu 20.04 сначала обновите программное обеспечение сервера, а затем установите Snap с помощью приведенных ниже команд.

sudo apt update && apt upgrade -y

sudo apt install -y snapd

Перед установкой Shadowsocks-libev вы можете установить hasged для улучшения случайности, но это необязательно.

# CentOS 8

sudo dnf install -y haveged

# Debian 10 и Ubuntu 20.04

sudo apt install -y haveged

После установки Snap и дополнительного hasged перезагрузите сервер, прежде чем продолжить.

sudo reboot

Когда ваш облачный сервер снова заработает, войдите в систему через SSH. Затем установите прокси Shadowsocks-libev через Snap, используя следующую команду:

sudo snap install shadowsocks-libev

После установки Shadowsocks-libev переходите к следующему разделу о настройке прокси-сервера.

Настройка прокси-сервера

Snap установит для вас Shadowsocks-libev, но при настройке потребуется небольшая помощь. Создайте каталог для хранения файлов конфигурации.

sudo mkdir -p /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev

Затем создайте файл JSON для конфигурации Shadowsocks-libev. Его можно назвать как угодно. Здесь мы используем config в качестве имени.

sudo touch /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/config.json

Затем отредактируйте файл и добавьте в него следующую конфигурацию.

sudo nano /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/config.json

{

 "server":["[::0]", "0.0.0.0"],

 "mode":"tcp_and_udp",

 "server_port":443,

 "password":"your-secure-password",

 "timeout":60,

 "method":"chacha20-ietf-poly1305",

 "nameserver":"1.1.1.1"

}

Давайте рассмотрим каждый из параметров конфигурации и их назначение.

Сервер

В примере конфигурации используются значения определения сервера, которые принимают любой IP-адрес, как IPv6, так и IPv4:

"server":["::0", "0.0.0.0"],

Отсутствие привязки к конкретному адресу может быть полезно, если вы хотите создать шаблон конфигурации или собственный образ вашего сервера Shadowsock. Таким образом, конфигурация будет работать независимо от публичного IP-адреса.

Вы также можете использовать свои общедоступные адреса IPv6 и IPv4, например:

"server":["2a04:3543:1000:2312:4631:c1ff:feb5:01f0", "95.123.198.234"],

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

"server":"shadow.example.com",

Режим

Различные режимы определяют протокол передачи данных, используемый прокси. Для «режима» есть три допустимых значения :

  1. «tcp_and_udp»
  2. «tcp_only»
  3. «udp_only»

Использование как TCP, так и UDP позволяет прокси-серверу согласовывать лучшее соединение, доступное в данный момент, и должно быть нормально. Если ваша сеть имеет особые требования или ограничения, вам может потребоваться выбрать tcp_only.

Порт сервера

В нашем примере конфигурации Shadowsocks используется порт 443, но он может быть установлен на любой свободный порт. Если вы не используете порты HTTP (80) или HTTPS (443), размещая веб-сайт на том же сервере, вам следует использовать любой из этих портов. Обратите внимание, что использование общего порта, такого как 80 или 443, может привести к попыткам несанкционированного подключения, поэтому убедитесь, что ваш пароль безопасен.

Пароль

Пароль сервера используется для аутентификации подключений к прокси. Убедитесь, что вы выбрали надежный пароль соответствующей сложности и длины.

Тайм-аут

Это время ожидания сокета в секундах. Примерное значение 60 должно подойти. Однако, если вы установили Shadowsocks из бэкпортов, вам может потребоваться увеличить его, но рекомендуется держать его менее 5 минут, то есть 300 секунд.

Метод

Метод относится к шифру, используемому прокси-сервером для обеспечения шифрования коммуникации. Шифр, использованный в примере конфигурации, является современным и эффективным вариантом:

"method":"chacha20-ietf-poly1305"

Если хотите, можете выбрать другие шифры. Еще одна популярная альтернатива:

"method":"aes-256-gcm"

Сервер имен

Наш пример также включает сервер доменных имен, который не является строго необходимым. Без этого параметра прокси будет использовать DNS, используемый вашим облачным сервером. Вы можете настроить Shadowsocks на использование предпочитаемого вами DNS, установив сервер имен в вашем файле конфигурации.

Например, чтобы использовать DNS Google, введите следующее:

"nameserver":"8.8.8.8"

Или, если вы предпочитаете DNS Cloudflare, используйте вместо этого их IP-адрес:

"nameserver":"1.1.1.1"

По завершении редактирования конфигурации сохраните файл ctrl + o и выйдите из редактора ctrl + x.

Создание служебного модуля systemd

Shadowsocks-libev можно запускать вручную в терминале, но в долгосрочной перспективе это не очень практично. Вместо этого создайте файл служебной единицы systemd, используя следующую команду:

sudo touch /etc/systemd/system/shadowsocks-libev-server@.service

Затем откройте вновь созданный файл для редактирования:

sudo nano /etc/systemd/system/shadowsocks-libev-server@.service

Затем скопируйте и вставьте в файл следующее содержимое:

[Unit]

Description=Shadowsocks-Libev Custom Server Service for %I

Documentation=man:ss-server(1)

After=network-online.target



[Service]

Type=simple

ExecStart=/usr/bin/snap run shadowsocks-libev.ss-server -c /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/%i.json



[Install]

WantedBy=multi-user.target

После этого сохраните файл и выйдите из редактора.

Затем вы можете включить служебный модуль systemd для своего файла конфигурации, выполнив следующую команду. Обратите внимание, что @config используется для выбора файла конфигурации, в данном случае config.json, но без обозначения формата файла.

sudo systemctl enable --now shadowsocks-libev-server@config

Убедитесь, что сервер успешно запустился, используя команду status :

sudo systemctl status shadowsocks-libev-server@config

Вы должны увидеть, как Shadowsocks прослушивает IP-адреса, порты и протоколы, определенные вами в конфигурации. В приведенном ниже примере выходных данных вы можете увидеть, как TCP и UDP работают на адресах IPv4 и IPv6, как установлено на этапе настройки.

● shadowsocks-libev-server@config.service - Shadowsocks-Libev Custom Server Service for config

     Loaded: loaded (/etc/systemd/system/shadowsocks-libev-server@.service; enabled; vendor preset: enabled)

     Active: active (running) since Sun 2020-08-30 10:37:06 UTC; 3s ago

       Docs: man:ss-server(1)

   Main PID: 1229 (ss-server)

      Tasks: 1 (limit: 1074)

     Memory: 18.0M

     CGroup: /system.slice/system-shadowsocksx2dlibevx2dserver.slice/shadowsocks-libev-server@config.service

             └─1229 /snap/shadowsocks-libev/508/bin/ss-server -c /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/config.json



Aug 30 10:37:06 shadowsocks.example.com systemd[1]: Started Shadowsocks-Libev Custom Server Service for config.

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: UDP relay enabled

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: initializing ciphers... chacha20-ietf-poly1305

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: using nameserver: 1.1.1.1

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: tcp server listening at [::0]:443

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: tcp server listening at 0.0.0.0:443

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: udp server listening at [::0]:443

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: udp server listening at 0.0.0.0:443

Aug 30 10:37:07 shadowsocks.example.com snap[1229]:  2020-08-30 10:37:07 INFO: running from root user

После того, как прокси-сервер Shadowsocks-libev запущен, мы почти готовы начать тестирование соединения. Перед этим проверьте следующую часть руководства, чтобы настроить брандмауэр для разрешения соединения.

Разрешение подключения через брандмауэр

Если вы используете брандмауэр, такой как UFW или firewalld, убедитесь, что вы открыли порт, используемый server_port,  как установлено в файле конфигурации, порт 443 в этом примере.

# Ubuntu

sudo ufw allow 443

# CentOS

sudo firewall-cmd --add-service=https --permanent

sudo firewall-cmd --reload

Если вы не используете программный брандмауэр на своем сервере, мы рекомендуем включить службу брандмауэра UpCloud на вашем облачном сервере.

Подключение через прокси-клиент

Shadowsocks-libev теперь готов для прокси-соединений. Чтобы иметь возможность подключиться к вашему прокси-серверу Shadowsocks, вам понадобится клиент.

Клиентское программное обеспечение

Shadowsocks поддерживается рядом различных клиентов и устройств. Вы можете найти список доступных клиентов для ваших устройств на странице загрузки Shadowsocks.

Установите клиент по вашему выбору и проверьте соединение, используя детали, указанные ниже.

Например, вы можете использовать то же программное обеспечение Shadowsocks-libev в клиентском режиме, установив его в своей локальной системе. Следуйте инструкциям по установке, например, при установке сервера Shadowsocks-libev, а затем продолжите шаг настройки клиента Linux ниже.

Настройка мобильных устройств

В качестве легкого прокси Shadowsocks-libev отлично работает с мобильными устройствами. Если вам нужен быстрый способ подключения с помощью смартфона, перейдите к генератору QR-кодов Shadowsocks  и заполните данные конфигурации в следующем формате:

ss://method:password@hostname:port

Замените имя хоста общедоступным IP-адресом вашего сервера, если вы используете IP-адреса вместо имени домена. Например:

ss://chacha20-ietf-poly1305:your-secure-password@95.123.198.234:443

Затем импортируйте сгенерированный URI или QR-код на свое устройство с помощью клиентского программного обеспечения. Выберите импортированный профиль и активируйте соединение. И, наконец, настройте свою систему на использование прокси.

На мобильных устройствах, таких как iOS и Android, соединение может использоваться как полноценная VPN.

Настройка другого хоста Linux

Подключение с использованием Shadowsock-libev в качестве клиента можно выполнить, настроив прокси в режиме localhost. После установки создайте файл local-config.json, как показано ниже.

Настройте файл, чтобы включить IP-адрес и порт сервера, как вы настроили на прокси-сервере. Также укажите локальный адрес и порт, как показано ниже. Наконец, установите пароль и метод шифрования в соответствии с вашим прокси-сервером Shadowsocks.

sudo nano /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/local-config.json

{

 "server":"95.123.198.234",

 "server_port":443,

 "local_address":"127.0.0.1",

 "local_port":1080,

 "password":"your-secure-password",

 "timeout":60,

 "method":"chacha20-ietf-poly1305"

}

Затем создайте файл модуля systemd для клиента Shadowsocks и отредактируйте его, чтобы он имел следующий контент.

sudo nano /etc/systemd/system/shadowsocks-libev-local@.service

[Unit]

Description=Shadowsocks-Libev Local Service for %I

Documentation=man:ss-local(1)

After=network-online.target



[Service]

Type=simple

ExecStart=/usr/bin/snap run shadowsocks-libev.ss-local -c /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/%i.json



[Install]

WantedBy=multi-user.target

После этого сохраните файл и выйдите из редактора.

Затем запустите клиентский прокси с помощью следующей команды. Обратите внимание, что @config используется для выбора файла конфигурации, например config.json, но без формата файла.

sudo systemctl start shadowsocks-libev-local@local-config

Локальный прокси-сервер создает соединение с вашим облачным сервером и позволяет данным проходить через них. Чтобы действительно иметь данные приложения для использования прокси, вам необходимо настроить свой веб-браузер или операционную систему на использование локального прокси. Фактический процесс зависит от вашего варианта использования, но в нашей конфигурации прокси-сервер работает на IP 127.0.0.1 и порту 1080.

Тестирование соединения

После подключения убедитесь, что ваш трафик проходит через прокси. Например, откройте следующий URL-адрес, чтобы проверить IP-адрес, с которого вы подключаетесь, с точки зрения других пользователей в Интернете.

https://ifconfig.me

Кроме того, вы можете протестировать его напрямую, используя curl в терминале:

curl --proxy socks5://127.0.0.1:1080 https://ifconfig.me

Или запустив Google Chrome со следующей опцией командной строки:

google-chrome --proxy-server="socks5://127.0.0.1:1080"

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

Обратите внимание, что использование VPN-подключения к вашему облачному серверу не гарантирует анонимности, и любой сетевой трафик должен соответствовать Условиям обслуживания и Политике допустимого использования UpCloud .

Дальнейшая оптимизация

Теперь у вас должен быть полнофункциональный прокси-сервер, защищающий ваше соединение с облачным сервером. Возможно, вам не потребуются какие-либо дополнительные оптимизации, но если у вас не идеальный опыт, могут помочь следующие настройки.

Увеличение дескрипторов открытых файлов

Проверьте текущие значения, запустив:

ulimit -aH

Если параметр открытых файлов показывает меньше 51200 , выполните следующие действия:

Откройте файл limits.conf в текстовом редакторе.

sudo nano /etc/security/limits.conf

Затем добавьте следующие строки непосредственно перед #End of file:

* soft nofile 51200

* hard nofile 51200

В качестве альтернативы используйте следующее, если прокси-сервер работает как root:

root soft nofile 51200

root hard nofile 51200

После этого сохраните файл и выйдите из редактора.

Настройка параметров ядра

В зависимости от производительности вашего прокси-сервера вы можете внести следующие изменения в конфигурацию вашей системы:

sudo nano /etc/sysctl.conf

Добавьте в конец файла следующие строки:

fs.file-max = 51200

net.core.netdev_max_backlog = 250000

net.core.somaxconn = 4096

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 0

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 1200

net.ipv4.ip_local_port_range = 10000 65000

net.core.netdev_max_backlog = 4096

net.ipv4.tcp_max_syn_backlog = 8192

net.ipv4.tcp_max_tw_buckets = 5000

net.ipv4.tcp_fastopen = 3

net.ipv4.tcp_mtu_probing = 1

net.core.rmem_max = 67108864

net.core.wmem_max = 67108864

net.ipv4.tcp_mem = 25600 51200 102400

net.ipv4.tcp_rmem = 4096 87380 67108864

net.ipv4.tcp_wmem = 4096 65536 67108864

Затем сохраните файл и выполните приведенную ниже команду, чтобы перезагрузить настройки.

sudo sysctl -p

Использование TCP BBR

TCP BBR — это алгоритм контроля перегрузки TCP, разработанный Google и, как сообщается, для повышения производительности в определенных сетях. Вы можете включить его, добавив следующие строки в файл конфигурации вашей системы.

sudo nano /etc/sysctl.conf

net.core.default_qdisc=fq

net.ipv4.tcp_congestion_control=bbr

Затем сохраните файл и перезагрузите настройки.

sudo sysctl -p

Проверьте изменения, выполнив следующую команду.

sudo sysctl net.ipv4.tcp_congestion_control

Если вывод выглядит следующим образом, настройка была применена успешно.

net.ipv4.tcp_congestion_control = bbr

Эти оптимизации должны помочь устранить любые возможные проблемы с производительностью.



2020-11-13T19:28:10
Вопросы читателей

🐧 Функция Bash для извлечения файловых архивов различных типов

Существует много приложений для извлечения различных типов архивных файлов.

Вам будет сложно запомнить все опции и параметры каждого инструмента архивирования.

Сегодня я наткнулся на простую функцию Bash для извлечения файловых архивов различных типов в Linux.

Эта функция Bash может извлекать наиболее часто используемые форматы архивов, такие как .tar.bz2, .tar.bz, .bz2, .rar, .zip и .7z.

Вам не нужно использовать фактическое приложение для архивирования, распаковки архива!

Просто добавьте эту функцию в свой файл ~/bashrc и вызовите ее для извлечения файлов архива.

Он автоматически найдет и использует соответствующий инструмент архивирования для извлечения файлов.

Не нужно запоминать флаги и опции.

Функция Bash для извлечения файловых архивов различных типов

Откройте ваш файл ~/.bashrc:

$ nano ~/.bashrc

Добавьте в конце следующий фрагмент:

# Bash Function To Extract File Archives Of Various Types

extract () {

     if [ -f $1 ] ; then

         case $1 in

             *.tar.bz2)   tar xjf $1     ;;

             *.tar.gz)    tar xzf $1     ;;

             *.bz2)       bunzip2 $1     ;;

             *.rar)       rar x $1       ;;

             *.gz)        gunzip $1      ;;

             *.tar)       tar xf $1      ;;

             *.tbz2)      tar xjf $1     ;;

             *.tgz)       tar xzf $1     ;;

             *.zip)       unzip $1       ;;

             *.Z)         uncompress $1  ;;

             *.7z)        7z x $1    ;;

             *)           echo "'$1' cannot be extracted via extract()" ;;

         esac

     else

         echo "'$1' is not a valid file"

     fi

}

Нажмите Ctrl + o и нажмите ENTER, чтобы сохранить файл, а затем нажмите Ctrl + x, чтобы выйти из файла.

Выполните следующую команду, чтобы изменения вступили в силу:

$ source ~/.bashrc

С этого момента вы можете просто вызывать эту функцию для извлечения архивов различных типов.

Например, я собираюсь извлечь файл архива .7z с помощью команды:

$ extract archive.7z 

Пример вывода:

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21

p7zip Version 16.02 (locale=en_IN,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz (206A7),ASM)



Scanning the drive for archives:

1 file, 16013693 bytes (16 MiB)



Extracting archive: archive.7z

--

Path = archive.7z

Type = 7z

Physical Size = 16013693

Headers Size = 1204

Method = LZMA:23

Solid = +

Blocks = 1



Everything is Ok                                                               



Folders: 21

Files: 37

Size:       16625007

Compressed: 16013693

Точно так же, чтобы извлечь файлы типа .zip, команда будет следующей:

$ extract archive.zip 

Обратите внимание, что перед использованием этой функции вы должны установить соответствующий менеджер архивов.

Если в вашей системе не установлены поддерживаемые инструменты архивирования, вы получите сообщение об ошибке, подобное приведенной ниже:

$ extract archive.zip 

bash: /usr/bin/unzip: No such file or directory

Этот скрит упоминается во многих местах в Интернете.

Автор – Игорь Павлов.

Вы используете какие-нибудь другие классные функции Bash?

Пожалуйста, поделитесь ими через раздел комментариев.

Это может быть полезно мне и всем читателям.

Спонсор статьи – обзор Logitech MX Keys



2020-11-02T19:33:48
Скрипты

Что нового в Ubuntu 20.10

Следуя своим традициям, компания Canonical делит все релизы Ubuntu на долгосрочные и краткосрочные. Аббревиатура LTS (long-term support — долгий период поддержки) означает, что у данной редакции будет длительное время поддержки. Релиз LTS осуществляется раз в два года, поддержка — в среднем в течение пяти лет.

Обычные выпуски Ubuntu, поддерживаются в течение 9-ти месяцев. Ubuntu 20.10 с кодовым именем Groovy Gorilla как раз и будет двадцать третьей по счёту обычной редакцией Linux. Несмотря на короткий срок времени поддержки, его вполне хватит, чтобы оценить все нововведения и преимущества. Само имя ОС можно перевести как «Крутая (классная, замечательная, отличная) Горилла».

Читать

Как правильно настроить TTL домена

TTL означает «время жизни» и указывает, как долго ваши настройки DNS должны храниться в кэше, прежде чем они будут автоматически обновлены.

Когда происходит изменение DNS, остальной части Интернета требуется время, чтобы это заметить. Некоторые примеры таких изменений: обновление IP-адреса сервера, обновление записи MX для размещения вашей электронной почты в новом месте или добавление нового веб-сайта. Параметр TTL сообщает Интернету, как долго ждать, прежде чем вернуться для проверки вашей записи DNS на предмет потенциально новой информации.

Если для параметра TTL DNS установлено значение 12 часов, ваши записи DNS будут кэшироваться в течение 12 часов, прежде чем срок их действия истечет, и новая информация вступит в силу.

TTL на доменах IONOS устанавливается на срок до 1 часа для всех записей A, AAA, MX, TXT и CNAME.

Как долго длится TTL?

TTL указывается в секундах. Типичное значение по умолчанию обычно составляет 12 часов (43200 секунд) или 24 часа (86400 секунд). Например — сайт переезжает на новый сервер; или вы добавляете новый URL на свой сервер. Новые изменения DNS вступят в силу через 12–24 часа.

Обратите внимание, что даже если вы измените TTL для своего доменного имени, это не означает, что автоматически каждая сеть в Интернете будет соблюдать это значение. Многие поставщики интернет-услуг (ISP) игнорируют настройки TTL и проверяют внешние записи DNS по своему собственному расписанию.

Лучшие практики DNS TTL

По большей части нет необходимости изменять TTL. Однако, если вы знаете, что скоро внесете большое изменение в DNS, и хотите, чтобы изменения вступили в силу быстро, вы можете изменить свой TTL заранее.

По крайней мере, за 24 часа до начала обновите TTL до более короткого значения. Например, вы можете изменить его на 3600 (1 час).

Когда ваша работа будет сделана, обязательно вернитесь и верните свои настройки TTL к исходным значениям. Кэширование DNS — важный способ снизить нагрузку на серверы, и лучше всего поддерживать низкий уровень этого трафика.

Минимальное значение TTL DNS

Если вы планируете в ближайшее время внести изменения в DNS, вам следует начать с установки низкого значения TTL. Это помогает обеспечить более быстрое распространение ваших изменений и их распознавание в Интернете.

Установите для минимального значения TTL DNS значение больше 0. Никогда не устанавливайте для TTL DNS значение 0. Число 0 не определено в стандарте, и это может привести к игнорированию или отклонению вашей информации DNS.

Рекомендация : 3600 (1 час) — хорошее минимальное значение. Он достаточно низкий, чтобы изменения вступили в силу быстро, но не настолько низкий, чтобы DNS-серверы были перегружены.

Максимальное значение TTL DNS

Максимальное значение TTL — 604800 (7 дней). Хотя технически не существует максимального значения TTL для DNS, значения более 7 дней будут автоматически округляться до 7 дней.

Рекомендация: для большинства пользователей максимальное значение TTL для DNS 86400 (24 часа) является хорошим выбором.

Динамический DNS TTL

Динамический DNS (DDNS) — отличный способ указать доменные имена на нестатический IP-адрес.

Например, предположим, что вам принадлежит доменное имя example.com. Вы хотите указать home.example.com на сервер в вашей домашней сети; однако у вас нет статического IP-адреса от вашего интернет-провайдера. Это означает, что внешний IP-адрес вашего домашнего сервера будет периодически меняться.

Сервисы динамического DNS могут указывать доменное имя (например, home.example.com) на переменный IP. Каждый раз при изменении IP-адреса ваш DNS автоматически обновляется, поэтому изменение вступает в силу быстро.

Если вы настроили динамический DNS для доменного имени, вас могут попросить указать TTL для записей. Однозначного ответа на вопрос о значении TTL, которое следует использовать для динамической записи DNS, не существует. Частично это будет зависеть от того, как долго находится аренда IP-адреса. Чем чаще меняется IP-адрес, тем ниже TTL, который вам следует использовать.

Рекомендация. Хорошее практическое правило — сделать TTL DDNS вдвое меньше, чем аренда DHCP. Если аренда IP-адреса установлена ​​на 60 (1 минута), установите TTL на 30 (30 секунд). Если IP-адрес 3600 (1 час), установите TTL на 1800 (30 минут).

Как выполнить поиск в DNS TTL

Узнайте, как проверить настройки TTL для вашего веб-сайта.

Linux, Unix или Mac OS X

Самый простой способ узнать настройки TTL — использовать digутилиту, доступную в Linux, Unix и Mac OS X.

В оболочке (командной строке) введите:

dig example.com

Это вернет информацию DNS (включая значения TTL) для имени домена:

Значение «7728» — это TTL для записи в секундах (7 728 секунд = 2 часа 8 минут).

Windows

В Windows вы можете использовать эту nslookupутилиту для проверки значений TTL DNS для веб-сайта.

Сначала откройте окно командной строки.

• Windows 7: Пуск -> Все программы -> Стандартные -> Командная строка • Windows 10: щелкните правой кнопкой мыши кнопку «Пуск» -> Выполнить -> введите «cmd» в поле и нажмите «ОК».

Чтобы запустить nslookup и получить значения TTL, введите:

nslookup –type=soa example.com

Это вернет информацию авторитетного сервера имен для этого домена, включая TTL по умолчанию в секундах и часах.

В этом случае TTL веб-сайта установлен на 3600 секунд (1 час).

В сети

Есть несколько веб-сайтов, которые позволяют использовать утилиту dig для бесплатного поиска DNS TTL.

Ниже мы используем Google Apps: (https://toolbox.googleapps.com/apps/dig/)

Как видите, значение TTL DNS для записей этого домена установлено на 21599 секунд (6 часов).

Как изменить TTL, если у вас есть собственный DNS

Если вы используете собственный DNS-сервер, для изменения TTL достаточно отредактировать файл зоны и убедиться, что ваша DNS-служба принимает изменения. Специфика будет зависеть от того, какую службу DNS вы используете, а в некоторых случаях от того, какую версию Linux или Unix вы используете.

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

dig @localhost example.com

BIND

BIND — это наиболее широко используемое программное обеспечение DNS. В BIND TTL хранится в верхней части файла зоны, обычно во второй строке. Объявление TTL начинается с $TTL. По умолчанию TTL составляет четыре часа (14 400 секунд):

$TTL 14400

Поиск файла зоны: Red Hat и CentOS

При типичной установке BIND в Red Hat или CentOS файл зоны веб-сайта будет выглядеть примерно так /var/named/[domain name].dbили /var/named/[domain name].zone. Например, чтобы отредактировать файл для example.com в типичной настройке по умолчанию, введите следующую команду:

sudo nano /var/named/example.com.db

Поиск файла зоны: Debian и Ubuntu

В типичной установке BIND в Debian или Ubuntu файл зоны веб-сайта будет выглядеть примерно так /etc/bind/[domain name].db. Например, чтобы отредактировать файл для example.com в типичной настройке по умолчанию, введите следующую команду:

sudo nano /etc/bind/example.com.db

Редактирование файла зоны

В файле зоны вам нужно будет отредактировать две строки: TTL и серийный номер.

  1. Обновите TTL до значения, которое вы хотите использовать.
  2. Обновите серийный номер, чтобы BIND зарегистрировал изменение.

Обновление TTL

TTL будет первой строкой файла и будет выглядеть примерно так:

$TTL            86400

Просто измените число на значение TTL, которое вы хотите установить, в секундах.

Обновление серийного номера

В типичной конфигурации серийный номер нужно просто увеличить. Например, серийный номер 1234будет обновлен до 1235.

Некоторые системные администраторы могут использовать метку времени, номер версии или иметь системы для автоматического увеличения серийного номера. Если вы не уверены, какая система используется для серийных номеров BIND, обратитесь к администратору вашего сервера.

Сохраните и выйдите из файла.

Проверка файла

Перед тем, как перезагрузить изменения, проверьте синтаксис основной конфигурации BIND с помощью команды:

sudo named-checkconf

Если все в порядке, проверьте синтаксис только что отредактированного файла зоны с помощью команды:

sudo named-checkzone [domain name] [path to file]

Например, если вы изменили TTL для example.com в файле, /var/named/example.com.dbкоманда будет выглядеть так:

sudo named-checkzone example.com /var/named/example.com.db

Перезагрузка изменений

Если файлы проходят проверку синтаксиса, перезагрузите файл зоны в BIND с помощью команды:

sudo rndc reload example.com

Необязательно: в Red Hat и CentOS, если systemctlон был настроен, вы можете перезапустить BIND вместо этого, используя команду:

sudo systemctl restart named

Несвязанный

Unbound недавно заменил BIND в качестве DNS-сервера по умолчанию во многих системах BSD, включая FreeBSD 10 и выше и OpenBSD 5.6 и выше.

По умолчанию в большинстве систем файл конфигурации находится по адресу:

  • OpenBSD :/var/unbound/etc/unbound.conf
  • FreeBSD 10.0 и ранее :/usr/local/etc/unbound/unbound.conf
  • FreeBSD 10.1 и выше :/etc/unbound/unbound.conf
  • Red Hat и CentOS 7 :/etc/unbound/unbound.conf

В файле конфигурации Unbound по умолчанию не указаны значения TTL. Вы можете добавить TTL в файл несвязанной зоны со следующими атрибутами:

  • cache-max-ttl Максимальный период времени для кеширования TTL. По умолчанию 86400 секунд (1 день).
  • cache-min-ttl Минимальная продолжительность кеширования TTL. По умолчанию 0 секунд. Примечание: официальная документация рекомендует оставить это значение равным нулю.

Чтобы изменить или установить TTL, отредактируйте unbound.conf файл:

sudo nano /etc/unbound/unbound.conf

Проверьте файл для cache-max-ttl и cache-min-ttl атрибутов. Если они уже существуют, вы будете их редактировать. Если их нет, вам нужно будет добавить их:

## Minimum lifetime of cache entries in seconds.  Default is 0.

cache-min-ttl: 0

## Maximum lifetime of cached entries. Default is 86400 seconds (1  day).

cache-max-ttl: 14400

Поместите эти конфигурации в основной блок команд сервера, затем сохраните и выйдите из файла.

После редактирования файла конфигурации вы можете протестировать конфигурацию с помощью команды:

unbound-checkconf

Наконец, перезапустите Unbound, чтобы изменения вступили в силу с помощью команды:

unbound-control reload



2020-10-12T12:42:06
Вопросы читателей

Разрешить root`у вход по ssh на Ubuntu

По умолчанию в убунту пользователю root запрещен вход через ssh. Для открытия доступа нужно выполнить следующие действия:

Читать

Установка и настройка fail2ban на Ubuntu Server 16.04-20.04

Сегодня рассмотрим установку и настройку Fail2Ban на Ubuntu Server 16.04-20.04. Также рассмотрим защиту SSH-сервера от атак типа Brute Force. И так начнем. Читать