Простой и эффективный способ запретить скан портов на своём сервере с помощью iptables. Просто баним всех, кто стучится не на открытый целевой порт. Допустим, у вас запущен OpenVPN на TCP и UDP портах 34881. Забаним на 10 минут всех, кто обращается не к ним.
Я использую multiport с заделом на список из нескольких портов, которые в случае необходимости можно перечислить через запятую. Посмотреть список забаненых:
Удалить оттуда:
Очистить список:
Такой вот простой способ скрыть от посторонних глаз сервис, который не получается ограничить какими-то списками. Понятное дело, это не 100% защита, так как найти открытый порт всё равно возможно, но для этого нужно приложить довольно много усилий. Если бан сделать вечным, то нужно очень много IP адресов, чтобы найти открытый порт.
Подобным способом можно скрыть проброс RDP или какого-то ещё порта от посторонних глаз. Когда будете настраивать, не забудьте разместить эти правила в общем списке правил фаервола так, чтобы они реально работали, и пакеты не попадали раньше в какие-то разрешающие правила.
#iptables #security
# Блокируем тех, кто обращается на неоткрытые порты tcp
iptables -A INPUT -m recent --rcheck --seconds 600 --name BANPORT -j DROP
iptables -A INPUT -p tcp -m multiport ! --dports 34881 -m recent --set --name BANPORT -j DROP
iptables -A INPUT -p tcp --syn -m multiport --dports 34881 -j ACCEPT
# Блокируем тех, кто обращается на неоткрытые порты udp
iptables -A INPUT -m recent --rcheck --seconds 600 --name BANPORT -j DROP
iptables -A INPUT -p udp -m multiport ! --dports 34881 -m recent --set --name BANPORT -j DROP
iptables -A INPUT -p udp -m multiport --dports 34881 -j ACCEPT
Я использую multiport с заделом на список из нескольких портов, которые в случае необходимости можно перечислить через запятую. Посмотреть список забаненых:
# cat /proc/net/xt_recent/BANPORT
Удалить оттуда:
# echo -1.1.1.1 > /proc/net/xt_recent/BANPORT
Очистить список:
# echo / > /proc/net/xt_recent/BANPORT
Такой вот простой способ скрыть от посторонних глаз сервис, который не получается ограничить какими-то списками. Понятное дело, это не 100% защита, так как найти открытый порт всё равно возможно, но для этого нужно приложить довольно много усилий. Если бан сделать вечным, то нужно очень много IP адресов, чтобы найти открытый порт.
Подобным способом можно скрыть проброс RDP или какого-то ещё порта от посторонних глаз. Когда будете настраивать, не забудьте разместить эти правила в общем списке правил фаервола так, чтобы они реально работали, и пакеты не попадали раньше в какие-то разрешающие правила.
#iptables #security
Проработал ещё один документ по безопасной настройки от CIS. На этот раз на тему Apache 2.4. Изучил 217 😱 страниц документа и постарался сделать универсальную краткую выжимку для постоянного использования. Те параметры, что есть в рекомендациях, но по умолчанию уже настроены, я не упоминаю.
📌 Как обычно, первая рекомендация по настройке — проверить список модулей и отключить ненужные. В зависимости от дистрибутива, команда на запуск бинарника может быть разная. В Debian и Ubuntu — apache2ctl, в Centos и клонах — httpd или apachectl.
Описание модулей можно посмотреть в документации. Для отключения комментируем строку с
◽модуль логирования log_config_module загружен;
◽модули, связанные с webdav (имеют dav в названии), отключены, если не нужны.
◽модуль статистики status_module отключен, если не используется, либо настроен, чтобы исключить доступ к статистике посторонним.
◽модуль autoindex_module отключен, он позволяет выполнять листинг директорий с файлами, если не задана индексная страница (index.html и т.д.)
◽отключены модули проксирования (proxy в названии), если не используются;
◽отключён модуль mod_info, который выводит информацию о сервере;
📌 Не используйте модуль mod_auth_basic, если доступ к сайту по http. В этом случае учётные данные передаются по сети в открытом виде и могут быть перехвачены кем угодно по пути следования пакетов.
📌 Обратите внимание на параметры для директорий
📌 Для корневой системной директории отключите все
📌 Традиционная рекомендация по настройке любого веб сервера — удалите весь контент, что идёт по умолчанию с установочным пакетом. Это относится к стартовой странице, страницам с кодами ошибок и т.д. Всё это помогает определить версию системы и веб сервера. Для apache это обычно директории
📌 Отключите всё, что касается cgi скриптов, если вы их не используете. Выполнение этих скриптов — наследие прошлого и сейчас чаще всего не используется, но может быть включено по умолчанию. Отключите модуль mod_cgi и настройки с упоминанием алиаса /cgi-bin/ или опции ExecCGI.
📌 Веб клиенты не должны иметь доступ к файлам .htaccess, .htpasswd и .htgroup. Обязательно настройте для них запрет.
📌 Запретите доступ к веб серверу по IP адресу или по несуществующему домену (rewrite_module должен быть включён). Для этого создайте виртуальный хост, который будет первым в списке. И добавьте в него редирект всех, кто обращается не на ваш домен:
Если доменов много, можно сделать редирект тех, кто обращается по IP на любой другой домен:
📌 Проверьте, что настроено логирование. Как минимум, должен быть включён error лог.
Если настроены access логи, не забудьте настроить их ротацию.
📌 По возможности, установите и настройте модуль mod_security. Это популярный web application firewall (WAF).
📌 Не используйте устаревшие версии TLS и Ciphers:
📌 Отключите вывод информации о версии сервера:
📌 Уменьшите дефолтный таймаут запросов:
#cis #apache #security
📌 Как обычно, первая рекомендация по настройке — проверить список модулей и отключить ненужные. В зависимости от дистрибутива, команда на запуск бинарника может быть разная. В Debian и Ubuntu — apache2ctl, в Centos и клонах — httpd или apachectl.
# apache2ctl -M
Описание модулей можно посмотреть в документации. Для отключения комментируем строку с
LoadModule
и именем модуля в конфигурационном файле. Здесь же стоит убедиться, что:◽модуль логирования log_config_module загружен;
◽модули, связанные с webdav (имеют dav в названии), отключены, если не нужны.
◽модуль статистики status_module отключен, если не используется, либо настроен, чтобы исключить доступ к статистике посторонним.
◽модуль autoindex_module отключен, он позволяет выполнять листинг директорий с файлами, если не задана индексная страница (index.html и т.д.)
◽отключены модули проксирования (proxy в названии), если не используются;
◽отключён модуль mod_info, который выводит информацию о сервере;
📌 Не используйте модуль mod_auth_basic, если доступ к сайту по http. В этом случае учётные данные передаются по сети в открытом виде и могут быть перехвачены кем угодно по пути следования пакетов.
📌 Обратите внимание на параметры для директорий
AllowOverride
и AllowOverrideList
. Они разрешают или запрещают использование различных настроек для файлов конфигураций .htaccess, которые могут переопределять многие настройки сервера. По умолчанию подобные разрешения имеет смысл отключить и включать только точечно.<Directory />
. . .
AllowOverride None
. . .
</Directory>
📌 Для корневой системной директории отключите все
Options
. По умолчанию включена опция FollowSymLinks. <Directory />
. . .
Options None
. . .
</Directory>
📌 Традиционная рекомендация по настройке любого веб сервера — удалите весь контент, что идёт по умолчанию с установочным пакетом. Это относится к стартовой странице, страницам с кодами ошибок и т.д. Всё это помогает определить версию системы и веб сервера. Для apache это обычно директории
/var/www/html
и /usr/share/apache2/error/
.📌 Отключите всё, что касается cgi скриптов, если вы их не используете. Выполнение этих скриптов — наследие прошлого и сейчас чаще всего не используется, но может быть включено по умолчанию. Отключите модуль mod_cgi и настройки с упоминанием алиаса /cgi-bin/ или опции ExecCGI.
📌 Веб клиенты не должны иметь доступ к файлам .htaccess, .htpasswd и .htgroup. Обязательно настройте для них запрет.
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
📌 Запретите доступ к веб серверу по IP адресу или по несуществующему домену (rewrite_module должен быть включён). Для этого создайте виртуальный хост, который будет первым в списке. И добавьте в него редирект всех, кто обращается не на ваш домен:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^example\.com [NC]
RewriteRule ^.(.*) - [L,F]
Если доменов много, можно сделать редирект тех, кто обращается по IP на любой другой домен:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^192\.168\.0\.1$
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
📌 Проверьте, что настроено логирование. Как минимум, должен быть включён error лог.
LogLevel notice core:info
ErrorLog "logs/error_log"
Если настроены access логи, не забудьте настроить их ротацию.
📌 По возможности, установите и настройте модуль mod_security. Это популярный web application firewall (WAF).
📌 Не используйте устаревшие версии TLS и Ciphers:
SSLProtocol TLSv1.2 TLSv1.3
SSLHonorCipherOrder On
SSLCipherSuite ALL:!EXP:!NULL:!LOW:!SSLv2:!RC4:!aNULL
📌 Отключите вывод информации о версии сервера:
ServerTokens Prod
ServerSignature Off
📌 Уменьшите дефолтный таймаут запросов:
Timeout 10
#cis #apache #security
В разных заметках я вскользь касался утилиты командной строки Linux — netcat или сокращённо nc. Эта старя и полезная unix утилита, которая заслуживает отдельной публикации, чтобы сохранить её в закладки. С помощью nc удобно устанавливать TCP соединения и принимать и отправлять UDP пакеты во время отладки и настройки сети и фаерволов.
✅ Самый простой случай. Проверим, отвечает ли TCP порт:
Ключ
✅ Можно быстро просканировать диапазон портов, не прибегая к посторонним инструментам. Это удобнее и быстрее, чем ставить и вспомнить ключи nmap.
Я тут сразу обработал вывод, показав только открытые порты. Без фильтрации nc вывалит информацию по всем портам сразу в консоль, что неудобно для больших диапазонов.
✅ Отправляем UDP пакет:
Просто добавляем ключ
Netcat удобно использовать, когда отлаживаешь firewall. С его помощью можно поднять сервис на нужном порту и постучаться в него. Я чаще всего использую его для проверки правил, когда делаю заметки на тему фаерволов.
✅ Поднимаем службу на 11222 порту:
С другого сервера подключаемся:
Теперь в терминал клиента можно что-то написать, а на сервере в терминале он отобразится. Если всё нормально, в настройках firewall всё в порядке. Можно для верности соответствующие правила посмотреть и счётчики пакетов на них.
✅ Таким образом даже файлы можно передавать, или целые директории. Для этого надо открыть сервер и направить его вывод в файл.
А на клиенте подключиться и передать файл:
Передавать таким образом можно любой файл, а не только текстовый. Также вывод можно направить сразу в shell. Этим пользуются злоумышленники, если имеют возможность запустить nc на сервере.
Из этой же серии возможность передать образ диска по сети с помощью dd и nc. Выглядит примерно так. Сервер:
Клиент:
Но конкретно эту задачу удобнее решить с помощью ssh:
✅ Netcat может выступать в качестве веб сервера, если ему передать html страницу на вход.
По ip адресу сервера откроется дефолтная апачевская страничка.
У netcat насыщенный функционал. Можно почитать в man. Он хорошо оформлен с реальными примерами и описанием функционала. Netcat умеет менять адрес и порт клиента, использовать прокси с аутентификацией, подключаться к unix сокету и т.д.
#terminal #linux
✅ Самый простой случай. Проверим, отвечает ли TCP порт:
# nc -vz 192.168.13.113 139
Connection to 192.168.13.113 139 port [tcp/*] succeeded!
Ключ
-v
выводит отладочную информацию, которая как раз включает информацию о статусе подключения, -z
— режим сканирования.✅ Можно быстро просканировать диапазон портов, не прибегая к посторонним инструментам. Это удобнее и быстрее, чем ставить и вспомнить ключи nmap.
# nc -vz 192.168.13.113 1-1023 2>&1 | grep succeeded
Connection to 192.168.13.113 135 port [tcp/*] succeeded!
Connection to 192.168.13.113 139 port [tcp/*] succeeded!
Connection to 192.168.13.113 445 port [tcp/*] succeeded!
Я тут сразу обработал вывод, показав только открытые порты. Без фильтрации nc вывалит информацию по всем портам сразу в консоль, что неудобно для больших диапазонов.
✅ Отправляем UDP пакет:
# nc -zvu 212.193.62.10 53
Connection to 212.193.62.10 53 port [udp/domain] succeeded!
Просто добавляем ключ
-u
к командам выше. Статус порта тут не всегда показывает правду, так что ориентироваться на него не стоит. Это инструмент именно для отправки пакета. Для сканирования udp портов лучше взять nmap, zmap или masscan.Netcat удобно использовать, когда отлаживаешь firewall. С его помощью можно поднять сервис на нужном порту и постучаться в него. Я чаще всего использую его для проверки правил, когда делаю заметки на тему фаерволов.
✅ Поднимаем службу на 11222 порту:
# nc -lvp 11222
Ncat: Listening on 0.0.0.0:11222
С другого сервера подключаемся:
# nc -v 192.168.13.113 11222
Connection to 192.168.13.113 11222 port [tcp/*] succeeded!
Теперь в терминал клиента можно что-то написать, а на сервере в терминале он отобразится. Если всё нормально, в настройках firewall всё в порядке. Можно для верности соответствующие правила посмотреть и счётчики пакетов на них.
✅ Таким образом даже файлы можно передавать, или целые директории. Для этого надо открыть сервер и направить его вывод в файл.
# nc -lvp 11222 > recive.txt
А на клиенте подключиться и передать файл:
# nc -v 192.168.13.113 11222 < info.txt
Передавать таким образом можно любой файл, а не только текстовый. Также вывод можно направить сразу в shell. Этим пользуются злоумышленники, если имеют возможность запустить nc на сервере.
Из этой же серии возможность передать образ диска по сети с помощью dd и nc. Выглядит примерно так. Сервер:
# nc -lvp 11222 > dd of=/backup/sda.img.gz
Клиент:
# dd if=/dev/sda | gzip -c | nc 192.168.13.113 11222
Но конкретно эту задачу удобнее решить с помощью ssh:
# dd if=/dev/sda | ssh root@192.168.13.113 "dd of=/dev/sda"
✅ Netcat может выступать в качестве веб сервера, если ему передать html страницу на вход.
# while true; do nc -lp 80 < /var/www/html/index.html; done
По ip адресу сервера откроется дефолтная апачевская страничка.
У netcat насыщенный функционал. Можно почитать в man. Он хорошо оформлен с реальными примерами и описанием функционала. Netcat умеет менять адрес и порт клиента, использовать прокси с аутентификацией, подключаться к unix сокету и т.д.
#terminal #linux
Думаю, многие знают про программный шлюза на базе Freebsd — pfSense. Он, мне кажется, безусловный лидер в этой нише с очень большой историей. У него есть клон, который отпочковался в 2015 году и получил название OPNsense. У этих продуктов первое время была какая-то война с дискредитацией друг друга, но в итоге закончилась.
У OPNSense более современный и функциональный веб интерфейс. Он и выглядит приятнее, и по факту более удобен в том числе компоновкой разделов. Особенно что касается обновления пакетов. Там всё очень подробно расписано по новым пакетам. Также удобен функционал поиска, который помогает быстрее найти нужные настройки. Да и банально, первый раз зайдя в интерфейс pfSense, вы вряд ли быстро найдёте раздел меню, перезагружающий или выключающий сервер. Он почему-то находится в Diagnostics.
Оба продукта на базе ОС Freebsd. Базовый функционал у них примерно одинаковый:
◽DNS Server;
◽DHCP Server, Relay;
◽NAT;
◽Zone based Firewall;
◽WAN Failover и load balancing, VLAN, WLAN;
◽VPN (OpenVPN, Ipsec и другие);
◽Web Proxy (squid), Netflow Exporter;
◽QoS;
◽HA кластер;
◽Логирование всех изменений и настроек. Возможность откатить их обратно.
OPNSense в целом более активно внедряет что-то новое, какие-то изменения. У него нет большого шлейфа поддержки старых версий и пакетов. PfSense в этом плане более консервативен, но и как следствие, более стабилен. В PfSense меньше плагинов, но в целом их качество выше, по сравнению с OPNSense, где их больше, но многие из них могут глючить или работать не так, как ожидается. Но каких-то критических проблем, которые бы вынуждали отказаться от OPNSense нет.
В мониторинге Zabbix есть шаблон для сбора метрик с обоих систем по SNMP.
Если присматриваете себе программный шлюз, то посмотрите обоих. Базовый функционал у них примерно одинаков, а различия не критичные, хоть и в некоторых случаях существенные. Например, OPNSense умеет автоматически складывать свои шифрованные бэкапы в Nextcloud. Поддержка этого реализована в веб интерфейсе и настраивается просто и быстро. Мелочь, но весьма приятная. В pfSense этого просто нет. Можно только вручную сохранить xml файл с настройками. Ну а про веб интерфейс я в начале уже сказал. У OPNsense он приятнее, логичнее и современнее.
⇨ Сайт / Исходники
#gateway
У OPNSense более современный и функциональный веб интерфейс. Он и выглядит приятнее, и по факту более удобен в том числе компоновкой разделов. Особенно что касается обновления пакетов. Там всё очень подробно расписано по новым пакетам. Также удобен функционал поиска, который помогает быстрее найти нужные настройки. Да и банально, первый раз зайдя в интерфейс pfSense, вы вряд ли быстро найдёте раздел меню, перезагружающий или выключающий сервер. Он почему-то находится в Diagnostics.
Оба продукта на базе ОС Freebsd. Базовый функционал у них примерно одинаковый:
◽DNS Server;
◽DHCP Server, Relay;
◽NAT;
◽Zone based Firewall;
◽WAN Failover и load balancing, VLAN, WLAN;
◽VPN (OpenVPN, Ipsec и другие);
◽Web Proxy (squid), Netflow Exporter;
◽QoS;
◽HA кластер;
◽Логирование всех изменений и настроек. Возможность откатить их обратно.
OPNSense в целом более активно внедряет что-то новое, какие-то изменения. У него нет большого шлейфа поддержки старых версий и пакетов. PfSense в этом плане более консервативен, но и как следствие, более стабилен. В PfSense меньше плагинов, но в целом их качество выше, по сравнению с OPNSense, где их больше, но многие из них могут глючить или работать не так, как ожидается. Но каких-то критических проблем, которые бы вынуждали отказаться от OPNSense нет.
В мониторинге Zabbix есть шаблон для сбора метрик с обоих систем по SNMP.
Если присматриваете себе программный шлюз, то посмотрите обоих. Базовый функционал у них примерно одинаков, а различия не критичные, хоть и в некоторых случаях существенные. Например, OPNSense умеет автоматически складывать свои шифрованные бэкапы в Nextcloud. Поддержка этого реализована в веб интерфейсе и настраивается просто и быстро. Мелочь, но весьма приятная. В pfSense этого просто нет. Можно только вручную сохранить xml файл с настройками. Ну а про веб интерфейс я в начале уже сказал. У OPNsense он приятнее, логичнее и современнее.
⇨ Сайт / Исходники
#gateway
Самый популярный движок для сайтов во всём мире — Wordpress. Именно на нём создано больше всего сайтов. Сам я все сайты делал исключительно на нём, хотя администрировать приходилось разные движки. Если меня спросит кто-нибудь посоветовать движок для информационного сайта или сайта-визитки, то совет будет однозначный. Я не вижу смысла использовать что-то другое.
Wordpress обычно предъявляют пару основных претензий: он небезопасный и он тормозной. Небезопасные чаще всего плагины, а не сам движок, в котором даже если и находят уязвимости, то исправления выходят в тот же день. А вот насчёт скорости дам один практический совет, как решить эту проблему для информационного сайта, который можно закэшировать.
Ставим плагин WP Super Cache. Включаем кэширование, указываем директорию для кэша, настраиваем предварительную загрузку кэша (отдельный раздел настроек). С такими настройками плагин будет автоматически создавать и периодически обновлять статические страницы, размещая их в определённой директории.
Теперь идём в настройки Nginx и настраиваем отдачу этих статических страниц напрямую через веб сервер, в обход php движка. Для этого настраиваем корневой location примерно так:
Убедитесь, что маска пути, указанная в настройках, совпадает с реальным расположением файлов кэша. С данными настройками первым делом страница будет проверяться в директории с кэшом, где она уже сформирована в статическом виде. Отдача такой страницы будет максимально быстрой.
С этими настройками вы закрываете вопрос тормознутости сайта на Wordpress процентов на 90. Остальное останется под другие оптимизации, которые можно уже не делать. Сайт и так будет грузиться очень быстро. Он фактически стал статическим.
В WP Super Cache есть возможность указать настройки обновления или сброса кэша, например, при появлении нового комментария или новой статьи. Также можно выбрать пользователей или группы, для которых кэширование работать не будет. Кэшированием можно гибко управлять, в отличие от такого же кэша, только средствами Nginx. Он по быстродействию будет такой же, только без настроек, что неудобно.
Более подробно этот метод описан в документации самого плагина:
https://wordpress.org/documentation/article/nginx/#wp-super-cache-rules
Там имеет смысл добавить ещё немного настроек для исключения кэширования некоторых запросов. Примерно так. Эти настройки должны быть выше в конфигу виртуального хоста, чем предыдущий корневой location.
Далее можно заняться оптимизацией картинок и включением сжатия brotli. Но это если хотите сделать всё максимально возможное. В общем случае и так нормально будет.
Тема ускорения Wordpress плотно оккупирована в поисковой выдаче сеошниками. А они про настройки Nginx ничего не знают и не умеют, поэтому найти подобное решение с плагином где-то через поиск вряд ли получится. А если искать по-серьёзному материалы админов, то найдёте скорее всего кэширование напрямую через сам Nginx или какой-нибудь Varnish. Но это будет не так гибко и удобно.
#webserver #wordpress
Wordpress обычно предъявляют пару основных претензий: он небезопасный и он тормозной. Небезопасные чаще всего плагины, а не сам движок, в котором даже если и находят уязвимости, то исправления выходят в тот же день. А вот насчёт скорости дам один практический совет, как решить эту проблему для информационного сайта, который можно закэшировать.
Ставим плагин WP Super Cache. Включаем кэширование, указываем директорию для кэша, настраиваем предварительную загрузку кэша (отдельный раздел настроек). С такими настройками плагин будет автоматически создавать и периодически обновлять статические страницы, размещая их в определённой директории.
Теперь идём в настройки Nginx и настраиваем отдачу этих статических страниц напрямую через веб сервер, в обход php движка. Для этого настраиваем корневой location примерно так:
location / {
try_files /wp-content/cache/supercache/$http_host/$cache_uri/index-https.html $uri $uri/ /index.php?$args;
}
Убедитесь, что маска пути, указанная в настройках, совпадает с реальным расположением файлов кэша. С данными настройками первым делом страница будет проверяться в директории с кэшом, где она уже сформирована в статическом виде. Отдача такой страницы будет максимально быстрой.
С этими настройками вы закрываете вопрос тормознутости сайта на Wordpress процентов на 90. Остальное останется под другие оптимизации, которые можно уже не делать. Сайт и так будет грузиться очень быстро. Он фактически стал статическим.
В WP Super Cache есть возможность указать настройки обновления или сброса кэша, например, при появлении нового комментария или новой статьи. Также можно выбрать пользователей или группы, для которых кэширование работать не будет. Кэшированием можно гибко управлять, в отличие от такого же кэша, только средствами Nginx. Он по быстродействию будет такой же, только без настроек, что неудобно.
Более подробно этот метод описан в документации самого плагина:
https://wordpress.org/documentation/article/nginx/#wp-super-cache-rules
Там имеет смысл добавить ещё немного настроек для исключения кэширования некоторых запросов. Примерно так. Эти настройки должны быть выше в конфигу виртуального хоста, чем предыдущий корневой location.
set $cache_uri $request_uri;
if ($request_method = POST) {
set $cache_uri 'null cache'; }
if ($query_string != "") {
set $cache_uri 'null cache'; }
if ($request_uri ~* "(/wp-admin/|/forum/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
set $cache_uri 'null cache'; }
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
set $cache_uri 'null cache'; }
Далее можно заняться оптимизацией картинок и включением сжатия brotli. Но это если хотите сделать всё максимально возможное. В общем случае и так нормально будет.
Тема ускорения Wordpress плотно оккупирована в поисковой выдаче сеошниками. А они про настройки Nginx ничего не знают и не умеют, поэтому найти подобное решение с плагином где-то через поиск вряд ли получится. А если искать по-серьёзному материалы админов, то найдёте скорее всего кэширование напрямую через сам Nginx или какой-нибудь Varnish. Но это будет не так гибко и удобно.
#webserver #wordpress
Вчерашняя заметка про OPNsense вызвала повышенную активность в комментариях. Решил немного подбить информацию по этой теме, чтобы было всё в одном месте.
Существует несколько условных категорий программных шлюзов, которые можно установить на своё железо.
🟢 Начнём со шлюзов на базе FreeBSD с веб интерфейсом.
◽PfSense — безусловный лидер всей этой отрасли шлюзов с веб интерфейсом. Несмотря на то, что ОС FreeBSD переживает не лучшие времена в плане развития и популярности, никаких проблем в самой pfSense с этим нет, если вы не используете какое-то специфическое железо. В виртуальных машинах популярных гипервизоров всё заводится без проблем.
◽OPNsense — форк pfSense с более интенсивным развитием и современным веб интерфейсом. У него есть некоторые замечания к работе, но в целом некритичные. Можно смело использовать, если понравится. Функционал примерно как у pfSense.
◽ИКС — отечественная разработка на базе FreeBSD. Это платный продукт. Включил его в эту подборку, потому что есть бесплатная версия для 9-ти устройств в сети. Мне нравится этот программный шлюз. Неплохо его знаю. Одно время использовал дома, но не захотелось держать железку постоянно включённой для него, удалил.
🟢 Шлюзы на базе Linux с веб интерфейсом. Основной их плюс в том, что там внутри более популярный и понятный линуксоидам (но не всем остальным людям) iptables.
◽IPFire — мне кажется, он наиболее известный и функциональный из линуксовых шлюзов. Я сам им немного пользовался. В настройке он проще, в функционале беднее, чем тот же pfSense. Но для простых случаев это может оказаться плюсом. В основе не популярный, как это обычно бывает в таких случаях, дистрибутив, а собственная сборка на базе ядра Linux.
◽ClearOS — ещё одна коммерческая система, но есть Community версия с ограниченным базовым функционалом, которого во многих случаях хватает за глаза. Эту систему я одно время активно использовал, потому что она была на базе CentOS. Когда у меня везде стояли CentOS, мне это было удобно. В своё время написал статью про неё, которая была популярной.
◽Endian — ещё один шлюз на базе CentOS с большой историей. Первый релиз был в 2009 году. Мне трудно про него сказать что-то конкретное, потому что сам его не разворачивал и никогда не видел. В РФ он как-то не снискал популярности и малоизвестен. По описанию с сайта плюс-минус всё то же самое, что у остальных. Есть как коммерческая, так и Community версия.
◽Zentyal — это не совсем шлюз, скорее сборка всё в одном для малого бизнеса. Позиционируют себя как замена AD и Exchange для небольших компаний. Базовый функционал шлюза тоже представлен (dns, dhcp, nat, firewall, vpn и т.д.). Есть платная и Community версия. Построен на базе Ubuntu.
Шлюзы без веб интерфейса, только CLI.
◽VyOS — безусловный лидер и вообще единственный известный мне шлюз с настройкой через CLI. Построен на базе Debian, синтаксис максимально приближён к JunOS. VyOS заточен исключительно под сетевые функции, которых у него максимальное количество из всех программных шлюзов. Это не только уровень шлюза для офиса или виртуальной инфраструктуры. Он подойдёт и для провайдеров. VyOS больше инструмент сетевых инженеров.
❗️Все шлюзы, которыми я управлял лично, настраивал сам на базе стандартных дистрибутивов. Благодаря этому очень быстро прокачал свои навыки в этой сфере и без проблем могу заходить в консоль всех описанных шлюзов, разбираться с проблемами, что-то править. Я понимаю как работу фаерволов, в том числе в FreeBSD, так и отдельных пакетов. Рекомендую начинать с этого. А потом уже выбирать какие-то готовые сборки для упрощения и экономии времени. Мои статьи по шлюзам на freebsd, centos, debian.
#подборка #gateway
Существует несколько условных категорий программных шлюзов, которые можно установить на своё железо.
🟢 Начнём со шлюзов на базе FreeBSD с веб интерфейсом.
◽PfSense — безусловный лидер всей этой отрасли шлюзов с веб интерфейсом. Несмотря на то, что ОС FreeBSD переживает не лучшие времена в плане развития и популярности, никаких проблем в самой pfSense с этим нет, если вы не используете какое-то специфическое железо. В виртуальных машинах популярных гипервизоров всё заводится без проблем.
◽OPNsense — форк pfSense с более интенсивным развитием и современным веб интерфейсом. У него есть некоторые замечания к работе, но в целом некритичные. Можно смело использовать, если понравится. Функционал примерно как у pfSense.
◽ИКС — отечественная разработка на базе FreeBSD. Это платный продукт. Включил его в эту подборку, потому что есть бесплатная версия для 9-ти устройств в сети. Мне нравится этот программный шлюз. Неплохо его знаю. Одно время использовал дома, но не захотелось держать железку постоянно включённой для него, удалил.
🟢 Шлюзы на базе Linux с веб интерфейсом. Основной их плюс в том, что там внутри более популярный и понятный линуксоидам (но не всем остальным людям) iptables.
◽IPFire — мне кажется, он наиболее известный и функциональный из линуксовых шлюзов. Я сам им немного пользовался. В настройке он проще, в функционале беднее, чем тот же pfSense. Но для простых случаев это может оказаться плюсом. В основе не популярный, как это обычно бывает в таких случаях, дистрибутив, а собственная сборка на базе ядра Linux.
◽ClearOS — ещё одна коммерческая система, но есть Community версия с ограниченным базовым функционалом, которого во многих случаях хватает за глаза. Эту систему я одно время активно использовал, потому что она была на базе CentOS. Когда у меня везде стояли CentOS, мне это было удобно. В своё время написал статью про неё, которая была популярной.
◽Endian — ещё один шлюз на базе CentOS с большой историей. Первый релиз был в 2009 году. Мне трудно про него сказать что-то конкретное, потому что сам его не разворачивал и никогда не видел. В РФ он как-то не снискал популярности и малоизвестен. По описанию с сайта плюс-минус всё то же самое, что у остальных. Есть как коммерческая, так и Community версия.
◽Zentyal — это не совсем шлюз, скорее сборка всё в одном для малого бизнеса. Позиционируют себя как замена AD и Exchange для небольших компаний. Базовый функционал шлюза тоже представлен (dns, dhcp, nat, firewall, vpn и т.д.). Есть платная и Community версия. Построен на базе Ubuntu.
Шлюзы без веб интерфейса, только CLI.
◽VyOS — безусловный лидер и вообще единственный известный мне шлюз с настройкой через CLI. Построен на базе Debian, синтаксис максимально приближён к JunOS. VyOS заточен исключительно под сетевые функции, которых у него максимальное количество из всех программных шлюзов. Это не только уровень шлюза для офиса или виртуальной инфраструктуры. Он подойдёт и для провайдеров. VyOS больше инструмент сетевых инженеров.
❗️Все шлюзы, которыми я управлял лично, настраивал сам на базе стандартных дистрибутивов. Благодаря этому очень быстро прокачал свои навыки в этой сфере и без проблем могу заходить в консоль всех описанных шлюзов, разбираться с проблемами, что-то править. Я понимаю как работу фаерволов, в том числе в FreeBSD, так и отдельных пакетов. Рекомендую начинать с этого. А потом уже выбирать какие-то готовые сборки для упрощения и экономии времени. Мои статьи по шлюзам на freebsd, centos, debian.
#подборка #gateway
👨💻 Тайм-менеджмент для системных администраторов
Я давно написал на сайте обзор книги тайм менеджмент для системного администратора. Думаю, многие подписчики ее не читали, так как упоминание о ней на канале было несколько лет назад, а сама статья написана ещё раньше. Решил напомнить про статью и порекомендовать прочитать, так как актуальность она не потеряла вообще нисколько. Эта тема вечная, пока роботы не заменили людей в решение насущных дел.
От традиционных подходов в области организации рабочих процессов системных администраторов отличает то, что они постоянно отвлекаются на текущие задачи и это мешает им работать над долгосрочными проектами. Автор книги прорабатывает этот момент.
Со времени написания статьи у меня мало что поменялось в организации рабочего процесса. Я по прежнему придерживаюсь озвученных принципов и в целом доволен, как удается решать задачи. Советую очень внимательно и вдумчиво прочитать мою статью. Я потратил на нее много времени, постарался хорошо проработать и дать самую суть. Применение на практике советов из статьи и книги вам помогут улучшить свою производительность.
Вообще, самодисциплина и умение организовать себя на продуктивную деятельность — основа успеха любой деятельности. Какой бы ты умный специалист ни был, но если регулярно что-то забываешь или затягиваешь решение задач, ничего путного не получится.
Мне кажется, что за последние несколько лет я подрастерял свою собранность и целеустремлённость. Не знаю, с чем связано. Может подустал от своей работы, может возраст сказывается. А может фокус внимания сместился в другую сферу. Как-то надоело постоянно пытаться быть более результативным в повседневных делах. Разве человек для этого пришёл в этот мир? Для чего он здесь? Вопрос всех вопросов.
Но это я уже в другую область полез. Хотел у вас спросить, как упорядочиваете свои дела? Какие программы или подходы используете? Может ещё какие-то книги посоветуете на эту тему?
#разное
Я давно написал на сайте обзор книги тайм менеджмент для системного администратора. Думаю, многие подписчики ее не читали, так как упоминание о ней на канале было несколько лет назад, а сама статья написана ещё раньше. Решил напомнить про статью и порекомендовать прочитать, так как актуальность она не потеряла вообще нисколько. Эта тема вечная, пока роботы не заменили людей в решение насущных дел.
От традиционных подходов в области организации рабочих процессов системных администраторов отличает то, что они постоянно отвлекаются на текущие задачи и это мешает им работать над долгосрочными проектами. Автор книги прорабатывает этот момент.
Со времени написания статьи у меня мало что поменялось в организации рабочего процесса. Я по прежнему придерживаюсь озвученных принципов и в целом доволен, как удается решать задачи. Советую очень внимательно и вдумчиво прочитать мою статью. Я потратил на нее много времени, постарался хорошо проработать и дать самую суть. Применение на практике советов из статьи и книги вам помогут улучшить свою производительность.
Вообще, самодисциплина и умение организовать себя на продуктивную деятельность — основа успеха любой деятельности. Какой бы ты умный специалист ни был, но если регулярно что-то забываешь или затягиваешь решение задач, ничего путного не получится.
Мне кажется, что за последние несколько лет я подрастерял свою собранность и целеустремлённость. Не знаю, с чем связано. Может подустал от своей работы, может возраст сказывается. А может фокус внимания сместился в другую сферу. Как-то надоело постоянно пытаться быть более результативным в повседневных делах. Разве человек для этого пришёл в этот мир? Для чего он здесь? Вопрос всех вопросов.
Но это я уже в другую область полез. Хотел у вас спросить, как упорядочиваете свои дела? Какие программы или подходы используете? Может ещё какие-то книги посоветуете на эту тему?
#разное
Server Admin
Книга Тайм-менеджмент для системных администраторов
Некоторое время назад я писал заметку о книге Тайм-менеджмент для системных администраторов, когда она только попала мне в руки. На текущий момент я давно ее прочел, но только сейчас нашел время...
С выходом версии Zabbix Server 6.4 была анонсирована новая схема интеграции с LDAP. В блоге Zabbix вышла статья, которая подробно раскрывает эту тему — Just-in-Time user provisioning explained. Передам кратко её суть.
Раньше, чтобы пользователь мог аутентифицироваться через LDAP, его обязательно надо было создать в локальной базе данных пользователей. Во время аутентификации шла проверка в LDAP на предмет соответствия введённых имени пользователя и пароля. Заданный локальный пароль игнорировался. Очевидно, что такая схема работы неудобна, так как подразумевает двойную работу по заведению пользователя.
В версии 6.4 заводить вручную локального пользователя не надо. После ввода логина и пароля в форму веб интерфейса, Zabbix сам идёт на LDAP сервер и проверяет введённые данные, а также группы и email пользователя, если он там найден. Если всё в порядке, то Zabbix сам создаёт пользователя с соответствующими настройками групп доступа и email.
В статье поэтапно показана процедура настройки LDAP аутентификации. В том числе показан пример запуска LDAP сервера с phpldapadmin в составе для веб интерфейса управления. Этот LDAP каталог подключается к Zabbix Server. Далее очень подробно описан механизм взаимодействия и создания зависимостей между Zabbix и LDAP.
Статья написана подробно и информативно. Если вам интересна данная тема, то рекомендую. Хорошо всё раскрыто. Функционал ожидаемый и очень востребованный.
#zabbix
Раньше, чтобы пользователь мог аутентифицироваться через LDAP, его обязательно надо было создать в локальной базе данных пользователей. Во время аутентификации шла проверка в LDAP на предмет соответствия введённых имени пользователя и пароля. Заданный локальный пароль игнорировался. Очевидно, что такая схема работы неудобна, так как подразумевает двойную работу по заведению пользователя.
В версии 6.4 заводить вручную локального пользователя не надо. После ввода логина и пароля в форму веб интерфейса, Zabbix сам идёт на LDAP сервер и проверяет введённые данные, а также группы и email пользователя, если он там найден. Если всё в порядке, то Zabbix сам создаёт пользователя с соответствующими настройками групп доступа и email.
В статье поэтапно показана процедура настройки LDAP аутентификации. В том числе показан пример запуска LDAP сервера с phpldapadmin в составе для веб интерфейса управления. Этот LDAP каталог подключается к Zabbix Server. Далее очень подробно описан механизм взаимодействия и создания зависимостей между Zabbix и LDAP.
Статья написана подробно и информативно. Если вам интересна данная тема, то рекомендую. Хорошо всё раскрыто. Функционал ожидаемый и очень востребованный.
#zabbix
Держите готовый набор объяснений и оправданий по поводу падения прода. Для вашего удобства, перевожу в копируемый вид.
🔥Падает тот, кто бежит. Кто ползёт, не падает.
◽️Не упав, не узнаешь, кто тебя поддержит.
◽️Опуститься легко — подняться трудно.
◽️Если придётся упасть — упади красиво.
◽️Падение — не провал. Провал — остаться жить там, где упал.
◽️Почему сервера падают? Для того, чтобы научиться подниматься.
🔥 Не тот велик, кто никогда не падал, а тот — кто падал и вставал.
◽️Победитель тот, кто встанет на один раз больше, чем упал.
Надеюсь ваши сервера поднимаются чаще, чем падают. У меня вот позавчера ночью сервера в Selectel упали на 2 часа. Пишу через час заявку в ТП, а мне в ответ предупреждение, которое было неделю назад. Там говорили о том, что будут какие-то работы по электроснабжению. Понятное дело, что я прочитал и сразу же забыл. Не думал, что это к двухчасовым простоям приведёт.
Сижу, думаю, интересно, как они сервера погасили. Их же обесточили. Дождался, когда загрузится, посмотрел логи. Выключился сервер штатно. Либо у них централизованно это управляется, либо специально обученный человек ходит и жмёт на кнопки.
#мем
🔥Падает тот, кто бежит. Кто ползёт, не падает.
◽️Не упав, не узнаешь, кто тебя поддержит.
◽️Опуститься легко — подняться трудно.
◽️Если придётся упасть — упади красиво.
◽️Падение — не провал. Провал — остаться жить там, где упал.
◽️Почему сервера падают? Для того, чтобы научиться подниматься.
🔥 Не тот велик, кто никогда не падал, а тот — кто падал и вставал.
◽️Победитель тот, кто встанет на один раз больше, чем упал.
Надеюсь ваши сервера поднимаются чаще, чем падают. У меня вот позавчера ночью сервера в Selectel упали на 2 часа. Пишу через час заявку в ТП, а мне в ответ предупреждение, которое было неделю назад. Там говорили о том, что будут какие-то работы по электроснабжению. Понятное дело, что я прочитал и сразу же забыл. Не думал, что это к двухчасовым простоям приведёт.
Сижу, думаю, интересно, как они сервера погасили. Их же обесточили. Дождался, когда загрузится, посмотрел логи. Выключился сервер штатно. Либо у них централизованно это управляется, либо специально обученный человек ходит и жмёт на кнопки.
#мем
🎓 Я сейчас прохожу обучение у Скоромнова Дмитрия на его очном курсе Архитектура современных компьютерных сетей. Позже будет отзыв по итогу. Лектор посоветовал неплохой курс по сетям от МФТИ, который они выложили в онлайн во время пандемии в 2021 году.
Лекции по курсу "Компьютерные сети", Климанов М.М.
⇨ https://www.youtube.com/playlist?list=PLthfp5exSWErPFK_-EAhVtxO3XoY0gsSe
Это не первый курс МФТИ, про который я пишу. У этого института довольно много бесплатного образовательного материала хорошего качества, в том числе на тему IT. Сам я курс не смотрел. Если кто-то видел, дайте обратную связь по нему.
Вот ещё качественный курс на базе этого же института на тему администрирования Linux. Не так давно писал о нём.
Администрирование Linux
⇨ https://www.youtube.com/playlist?list=PLrCZzMib1e9rx3HmaLQfLYb9ociIvYOY1
#обучение
Лекции по курсу "Компьютерные сети", Климанов М.М.
⇨ https://www.youtube.com/playlist?list=PLthfp5exSWErPFK_-EAhVtxO3XoY0gsSe
Это не первый курс МФТИ, про который я пишу. У этого института довольно много бесплатного образовательного материала хорошего качества, в том числе на тему IT. Сам я курс не смотрел. Если кто-то видел, дайте обратную связь по нему.
Вот ещё качественный курс на базе этого же института на тему администрирования Linux. Не так давно писал о нём.
Администрирование Linux
⇨ https://www.youtube.com/playlist?list=PLrCZzMib1e9rx3HmaLQfLYb9ociIvYOY1
#обучение
У вас были ситуации, когда хотелось скрыть, что вы работаете в IT, умеете настраивать компьютеры и смартфоны? 😁
Автор юмористического ролика с переозвучкой известного фильма как-то раз проболтался и потом пожинал плоды.
Я вообще здесь работаю юристом. Будь проклят тот день, когда по доброте душевной я переустановил в этой организации винду.
Настрой сеть, установи браузер, запароль Wi-FI, почисти кэш, обожми кабель, ребутни роутер, поменяй краску на принтере, напиши сайт, программу, мануал, второй том "Мёртвых душ" и всё это за первый час рабочего дня!
Будни техподдержки (Переозвучка)
⇨ https://www.youtube.com/watch?v=bCDjHVhgDDQ
Меня в бытность техподдержкой на работе просили починить компьютерный стул, поменять лампу, поменять стартёр в лампе, починить компьютерный стол, вскрыть замок от тумбочки, которая является частью стола с компьютером, от которой потеряли ключ.
Брат моего приятеля мне как-то раз заявил, что не понимает меня. Нафига я хожу каждый день на работу, если могу взломать банк и получить нужное количество денег. Я же компьютерщик со стажем, а это уже считай, что хакер.
#юмор
Автор юмористического ролика с переозвучкой известного фильма как-то раз проболтался и потом пожинал плоды.
Я вообще здесь работаю юристом. Будь проклят тот день, когда по доброте душевной я переустановил в этой организации винду.
Настрой сеть, установи браузер, запароль Wi-FI, почисти кэш, обожми кабель, ребутни роутер, поменяй краску на принтере, напиши сайт, программу, мануал, второй том "Мёртвых душ" и всё это за первый час рабочего дня!
Будни техподдержки (Переозвучка)
⇨ https://www.youtube.com/watch?v=bCDjHVhgDDQ
Меня в бытность техподдержкой на работе просили починить компьютерный стул, поменять лампу, поменять стартёр в лампе, починить компьютерный стол, вскрыть замок от тумбочки, которая является частью стола с компьютером, от которой потеряли ключ.
Брат моего приятеля мне как-то раз заявил, что не понимает меня. Нафига я хожу каждый день на работу, если могу взломать банк и получить нужное количество денег. Я же компьютерщик со стажем, а это уже считай, что хакер.
#юмор
🎓Делюсь с вами ресурсом с набившим оскомину названием DevOps Roadmap. Подобных "дорожных карт" сейчас много, и я обычно не обращаю на них внимание. Но на эту обратил.
Меня привлекла качественная реализация этой карты. Тут не просто набор технологий и инструментов, но и подробные описания со ссылками и примерами по каждому пункту.
Тут мало того, что отрисовано красиво и информативно, так ещё и темы раскрыты. Можно использовать и как справочник, и как отправную точку для изучения.
Я просмотрел весь сайт. Там много разных карт, но именно по DevOps мне показалось, что самая лучшая реализация. Помимо непосредственно сайта есть ещё и репозиторий на github с каким-то невероятным количеством звезд (233к 😮). Я вообще столько никогда не видел. Посмотрел на список contributors. Такое ощущение, что вся IT Индия отметилась.
⇨ Сайт / Исходники
#обучение #devops
Меня привлекла качественная реализация этой карты. Тут не просто набор технологий и инструментов, но и подробные описания со ссылками и примерами по каждому пункту.
Тут мало того, что отрисовано красиво и информативно, так ещё и темы раскрыты. Можно использовать и как справочник, и как отправную точку для изучения.
Я просмотрел весь сайт. Там много разных карт, но именно по DevOps мне показалось, что самая лучшая реализация. Помимо непосредственно сайта есть ещё и репозиторий на github с каким-то невероятным количеством звезд (233к 😮). Я вообще столько никогда не видел. Посмотрел на список contributors. Такое ощущение, что вся IT Индия отметилась.
⇨ Сайт / Исходники
#обучение #devops
В воскресенье решил порассуждать на вечную тему — как не задалбываться на работе и не только. Я постоянно вижу среди знакомых, читаю в комментариях или статьях в интернете, как люди совершают одни и те же ошибки. Им всё надоело, но они уговаривают себя, заставляют, пытаются собраться, подключить силу воли и двигаться дальше.
Начну с силы воли и издалека. Вообще, воля — это ограниченный ресурс и использовать его надо аккуратно. На силе воли далеко не уедешь. Я видел, как люди пытались бросить пагубные привычки вроде пития алкоголя или курения с применением силы воли. Это полностью провальная тактика. Я тоже когда-то пытался её придерживаться, так что знаю, о чём говорю. Мне казалось в юности, что у меня сильная воля. Я мог пробежать марафон без подготовки.
Лет до 30-ти я и выпивал, и курил. С переменным успехом бросал последнее несколько раз. Но бросил окончательно только тогда, когда забыл про силу воли и применил метод осознанности. Проанализировал влияние алкоголя и табака на свой организм, увидел и осознал вред. После этого перестал употреблять и то, и другое без каких-либо проблем. Результат устойчивый. Хотя до этого курить бросал раза 3 и снова начинал.
Так вот с работой то же самое. Если тебе не хочется вставать по утрам и идти на работу. Если ты с печалью и тоской готовишься к понедельнику. Если ты испытываешь практически безудержную радость уже после обеда пятницы, предвкушая выходные, то работу пора менять. Никакая воля тебя не спасёт от этого. Можно держаться относительно долго, но расплата будет в виде плохого настроения, каких-то поначалу мелких заболеваний, несдержанности и раздражения. Всё это будет нарастать и усиливаться.
А потом врубится защитный механизм организма в виде прокрастинации и пофигизма. Станет всё равно и не захочется ничего делать. Тут некоторые могут подключить волю и продержаться ещё немного. Но итог всё равно известен. Защитная функция организма включается тогда, когда вы занимаетесь с его точки зрения бесполезными для вас делами. Это надо понять и принять.
Наша трудовая сфера открывает для нас практически безграничные возможности по смене деятельности. Мы можем работать как очно, так и удалённо. Мы можем менять как работодателей, так и направления деятельности. Вакансий в ИТ по прежнему много (для вас открыт рынок всего мира) и дефицит профессиональных кадров никуда не делся. Вы можете из админа стать девопсом или сетевыми инженером. Заняться безопасностью или поддержкой веб сервисов. Углубиться в мониторинг или сопровождение разработки. Каждый может найти то, что ему нравится и получается лучше, чем что-то другое.
При этом перейти из одной сферы в другую относительно просто. Вы не шахтёр на градообразующей шахте. На переобучение можно потратить от 3 до 6 месяцев и этого будет достаточно, если вы действительно захотите. Все дороги открыты. Не надо сидеть на нелюбимой работе и с помощью силы воли преодолевать себя. Примените свою волю в течении полугода на переобучение. Вот там будет рационально использование этого ресурса.
Я рассуждаю не гипотетически. Всё, что я описываю, испытывал сам и применял на себе. Несколько раз заметно менял сферу деятельности, но по прежнему оставался в IT. В итоге остановился на том, что нравится и получается лучше всего. Да, иногда тоже устаю или кажется, что всё надоело. Но у меня это обычно быстро проходит и является скорее следствием усталости, а не самого направления деятельности. Я осознанно пришёл к тому, что нравится и получается, методом проб себя в разных сферах.
Так что не стойте на месте и не измывайте себя на нелюбимой работе. Подумайте, чем хотели бы заниматься, набросайте план и начинайте действовать. Наверняка в комментариях найдутся люди, которые в какой-то момент вот так же бросили нелюбимое дело и занялись новым. И теперь у них всё намного лучше, чем было.
🙏🏻 Надеюсь эта заметка сподвигнет кого-нибудь сделать новый шаг и изменить свою жизнь к лучшему.
#мысли
Начну с силы воли и издалека. Вообще, воля — это ограниченный ресурс и использовать его надо аккуратно. На силе воли далеко не уедешь. Я видел, как люди пытались бросить пагубные привычки вроде пития алкоголя или курения с применением силы воли. Это полностью провальная тактика. Я тоже когда-то пытался её придерживаться, так что знаю, о чём говорю. Мне казалось в юности, что у меня сильная воля. Я мог пробежать марафон без подготовки.
Лет до 30-ти я и выпивал, и курил. С переменным успехом бросал последнее несколько раз. Но бросил окончательно только тогда, когда забыл про силу воли и применил метод осознанности. Проанализировал влияние алкоголя и табака на свой организм, увидел и осознал вред. После этого перестал употреблять и то, и другое без каких-либо проблем. Результат устойчивый. Хотя до этого курить бросал раза 3 и снова начинал.
Так вот с работой то же самое. Если тебе не хочется вставать по утрам и идти на работу. Если ты с печалью и тоской готовишься к понедельнику. Если ты испытываешь практически безудержную радость уже после обеда пятницы, предвкушая выходные, то работу пора менять. Никакая воля тебя не спасёт от этого. Можно держаться относительно долго, но расплата будет в виде плохого настроения, каких-то поначалу мелких заболеваний, несдержанности и раздражения. Всё это будет нарастать и усиливаться.
А потом врубится защитный механизм организма в виде прокрастинации и пофигизма. Станет всё равно и не захочется ничего делать. Тут некоторые могут подключить волю и продержаться ещё немного. Но итог всё равно известен. Защитная функция организма включается тогда, когда вы занимаетесь с его точки зрения бесполезными для вас делами. Это надо понять и принять.
Наша трудовая сфера открывает для нас практически безграничные возможности по смене деятельности. Мы можем работать как очно, так и удалённо. Мы можем менять как работодателей, так и направления деятельности. Вакансий в ИТ по прежнему много (для вас открыт рынок всего мира) и дефицит профессиональных кадров никуда не делся. Вы можете из админа стать девопсом или сетевыми инженером. Заняться безопасностью или поддержкой веб сервисов. Углубиться в мониторинг или сопровождение разработки. Каждый может найти то, что ему нравится и получается лучше, чем что-то другое.
При этом перейти из одной сферы в другую относительно просто. Вы не шахтёр на градообразующей шахте. На переобучение можно потратить от 3 до 6 месяцев и этого будет достаточно, если вы действительно захотите. Все дороги открыты. Не надо сидеть на нелюбимой работе и с помощью силы воли преодолевать себя. Примените свою волю в течении полугода на переобучение. Вот там будет рационально использование этого ресурса.
Я рассуждаю не гипотетически. Всё, что я описываю, испытывал сам и применял на себе. Несколько раз заметно менял сферу деятельности, но по прежнему оставался в IT. В итоге остановился на том, что нравится и получается лучше всего. Да, иногда тоже устаю или кажется, что всё надоело. Но у меня это обычно быстро проходит и является скорее следствием усталости, а не самого направления деятельности. Я осознанно пришёл к тому, что нравится и получается, методом проб себя в разных сферах.
Так что не стойте на месте и не измывайте себя на нелюбимой работе. Подумайте, чем хотели бы заниматься, набросайте план и начинайте действовать. Наверняка в комментариях найдутся люди, которые в какой-то момент вот так же бросили нелюбимое дело и занялись новым. И теперь у них всё намного лучше, чем было.
🙏🏻 Надеюсь эта заметка сподвигнет кого-нибудь сделать новый шаг и изменить свою жизнь к лучшему.
#мысли
У меня на канале накопилось очень много заметок о различных полезных сервисах. Периодически меня спрашивают про них, но я сам и названия, и ссылки позабывал уже, так как постоянно всё это не нужно, а когда надо, не помнишь, где искать 🤡 Решил собрать их в список.
◽digwebinterface.com — dig через web. Удобен тем, что можно сформировать ссылку с параметрами и отправить кому-то итоговый результат. Да и в целом удобен минималистичный интерфейс с полной копией консольного функционала.
🔥crt.sh — проверка выпущенных TLS сертификатов для всех поддоменов любого домена. Так как сейчас всё на TLS, так что легко искать чужие поддомены.
🔥shellcheck.net — проверка синтаксиса shell скриптов. Имеет смысл прогнать свой скрипт и проверить рекомендации.
🔥cheat.sh — продвинутый man с примерами на любые линуксовые темы, к которому можно обращаться из командной строки и получать подсказки по очень широкому спектру вопросов.
◽hcl2json.com — проверка синтаксиса и конвертация json, yaml и hcl друг в друга.
◽explainshell.com — удобная шпаргалка по стандартным консольным утилитам типа tar, find, grep и т.д.
◽webpagetest.org — лучший сервис по анализу скорости работы сайта.
◽asciinema.org — публикация записи консоли в веб. Постоянно вижу записи с него в репозиториях гитхаба или в статьях с примерами.
◽ilovepdf.com — лучший онлайн сервис для работы с pdf.
📌Отдельно у меня были хорошие подборки для работы с:
▪ почтовым сервером
▪ json
▪ regex
Regex прям очень рекомендую. Эти ссылки у меня постоянно под рукой. Часто нужны.
#подборка #сервис
◽digwebinterface.com — dig через web. Удобен тем, что можно сформировать ссылку с параметрами и отправить кому-то итоговый результат. Да и в целом удобен минималистичный интерфейс с полной копией консольного функционала.
🔥crt.sh — проверка выпущенных TLS сертификатов для всех поддоменов любого домена. Так как сейчас всё на TLS, так что легко искать чужие поддомены.
🔥shellcheck.net — проверка синтаксиса shell скриптов. Имеет смысл прогнать свой скрипт и проверить рекомендации.
🔥cheat.sh — продвинутый man с примерами на любые линуксовые темы, к которому можно обращаться из командной строки и получать подсказки по очень широкому спектру вопросов.
◽hcl2json.com — проверка синтаксиса и конвертация json, yaml и hcl друг в друга.
◽explainshell.com — удобная шпаргалка по стандартным консольным утилитам типа tar, find, grep и т.д.
◽webpagetest.org — лучший сервис по анализу скорости работы сайта.
◽asciinema.org — публикация записи консоли в веб. Постоянно вижу записи с него в репозиториях гитхаба или в статьях с примерами.
◽ilovepdf.com — лучший онлайн сервис для работы с pdf.
📌Отдельно у меня были хорошие подборки для работы с:
▪ почтовым сервером
▪ json
▪ regex
Regex прям очень рекомендую. Эти ссылки у меня постоянно под рукой. Часто нужны.
#подборка #сервис
Очень простой в установке и использовании инструмент для анализа работы СУБД Postgres — pgCenter. Это open source разработка нашего соотечественника Алексея Лесовского, который сейчас трудится в PostgresPro. Он давно известен своим проектом zabbix-extensions (проект давно заброшен и неактуален), где собрана куча скриптов для мониторинга всего и вся в Linux.
PgCenter — набор утилит командной строки, которые позволяют анализировать состояние СУБД в режиме реального времени, наподобие программы top и других подобных инструментов.
PgCenter пригодится как обычным админам, чтобы быстро оценить состояние СУБД (использование ресурсов, просмотр ошибок и т.д.), так и DBA для детального изучения (встроенная статистика) и решения проблем (долгие транзакции, конфликты репликации и т.д.).
В репозитории автоматически собираются rpm и deb пакеты для локальной установки, а также Docker образы. Попробовать проще всего вот так:
У автора есть ещё несколько полезных утилит. Скорее всего напишу о них отдельно:
◽Noisia — генератор нагрузки PostgreSQL.
◽pgSCV — экспортёр метрик для Prometheus и Victoriametrics.
◽pgstats.dev — веб проект с описанием метрик Postgres для мониторинга.
⇨ Исходники
#postgresql
PgCenter — набор утилит командной строки, которые позволяют анализировать состояние СУБД в режиме реального времени, наподобие программы top и других подобных инструментов.
PgCenter пригодится как обычным админам, чтобы быстро оценить состояние СУБД (использование ресурсов, просмотр ошибок и т.д.), так и DBA для детального изучения (встроенная статистика) и решения проблем (долгие транзакции, конфликты репликации и т.д.).
В репозитории автоматически собираются rpm и deb пакеты для локальной установки, а также Docker образы. Попробовать проще всего вот так:
# docker run -it --rm lesovsky/pgcenter:latest pgcenter top \
-h 1.2.3.4 -U user -d dbname
У автора есть ещё несколько полезных утилит. Скорее всего напишу о них отдельно:
◽Noisia — генератор нагрузки PostgreSQL.
◽pgSCV — экспортёр метрик для Prometheus и Victoriametrics.
◽pgstats.dev — веб проект с описанием метрик Postgres для мониторинга.
⇨ Исходники
#postgresql
Для создания своего "облачного" хранилища файлов, похожего на Dropbox, Google Drive, Yandex.Disk и т.д. можно воспользоваться известным open source решением Seafile. Это популярный сервер, про который я вообще ни разу не упоминал, хотя услышал про него впервые очень давно, ещё до того как появился owncloud, который породил форк Nextcloud — наиболее известный на сегодняшний день продукт для автономного файлового хранилища.
Seafile существует как в коммерческой, так и в Community редакции с открытым исходным кодом. Код также открыт и для клиентов под все популярные системы: Windows, Linux, Macos, Android. Для Linux версии есть консольный клиент. Для самого сервера есть веб интерфейс, через который осуществляется управление.
Основной особенностью Seafile можно считать маленькие требования к ресурсам, так что его можно запускать на Raspberry Pi. Для этого существует отдельная сборка сервера.
Несмотря на свою простоту и лёгкость, Seafile предлагает неплохой бесплатный функционал:
◽создание и управление аккаунтами пользователей
◽версионирование файлов и логирование доступа к ним
◽мобильный клиент
◽возможность подключать хранилище в виде виртуального диска
◽создание ссылок для общего доступа к файлам или по паролю
◽шифрование файлов
◽просмотр медиа файлов через веб интерфейс
◽онлайн редактор для совместной работы над текстовыми файлами в формате Markdown (другие форматы, типа docx, xlsx и т.д. не поддерживаются).
Оценить функционал можно в публичном demo - https://demo.seafile.com.
Запустить у себя тоже нет никаких проблем. Есть готовый docker-compose.yml от разработчиков. Там же все инструкции.
Ядро сервера Seafile написано на C 😎 (вспомнилось Папа может в си). Этим объясняется его легкость и быстродействие. Веб интерфейс на Python (django) и JavaScript.
Я сам никогда не использовал этот сервер, поэтому не могу поделиться информацией по эксплуатации. Если кто-то активно пользовался, то дайте обратную связь. Если рассматривать только хранение файлов, на текущий день это решение лучше или хуже Nextcloud?
⇨ Сайт / Исходники / Демо
#fileserver
Seafile существует как в коммерческой, так и в Community редакции с открытым исходным кодом. Код также открыт и для клиентов под все популярные системы: Windows, Linux, Macos, Android. Для Linux версии есть консольный клиент. Для самого сервера есть веб интерфейс, через который осуществляется управление.
Основной особенностью Seafile можно считать маленькие требования к ресурсам, так что его можно запускать на Raspberry Pi. Для этого существует отдельная сборка сервера.
Несмотря на свою простоту и лёгкость, Seafile предлагает неплохой бесплатный функционал:
◽создание и управление аккаунтами пользователей
◽версионирование файлов и логирование доступа к ним
◽мобильный клиент
◽возможность подключать хранилище в виде виртуального диска
◽создание ссылок для общего доступа к файлам или по паролю
◽шифрование файлов
◽просмотр медиа файлов через веб интерфейс
◽онлайн редактор для совместной работы над текстовыми файлами в формате Markdown (другие форматы, типа docx, xlsx и т.д. не поддерживаются).
Оценить функционал можно в публичном demo - https://demo.seafile.com.
Запустить у себя тоже нет никаких проблем. Есть готовый docker-compose.yml от разработчиков. Там же все инструкции.
Ядро сервера Seafile написано на C 😎 (вспомнилось Папа может в си). Этим объясняется его легкость и быстродействие. Веб интерфейс на Python (django) и JavaScript.
Я сам никогда не использовал этот сервер, поэтому не могу поделиться информацией по эксплуатации. Если кто-то активно пользовался, то дайте обратную связь. Если рассматривать только хранение файлов, на текущий день это решение лучше или хуже Nextcloud?
⇨ Сайт / Исходники / Демо
#fileserver
Я неоднократно получал как вопросы, так и запросы на настройку аватарок в почтовых клиентах. Подобные вещи реализованы в популярных почтовых сервисах, типа yandex или gmail. К сожалению, сделать так же у себя не получится.
В почтовых протоколах smtp и imap нет понятия аватар. Соответственно почтовые системы по умолчанию никакие аватары принимать и понимать не могут. Изображения к контактам интерпретируют почтовые клиенты на основе своей базы контактов. Каждый сервис ведёт свою базу контактов и аватарок к ним. Реализация закрыта, так что мы наверняка не может судить откуда они берут картинки. Также нет и доступа к общей базе данных контактов.
Реализовать такое на своём почтовом сервере не представляется возможным, если, конечно, вы не захотите написать свой почтовый клиент и реализовать там эту возможность, как это сделали почтовые гиганты.
#mailserver
В почтовых протоколах smtp и imap нет понятия аватар. Соответственно почтовые системы по умолчанию никакие аватары принимать и понимать не могут. Изображения к контактам интерпретируют почтовые клиенты на основе своей базы контактов. Каждый сервис ведёт свою базу контактов и аватарок к ним. Реализация закрыта, так что мы наверняка не может судить откуда они берут картинки. Также нет и доступа к общей базе данных контактов.
Реализовать такое на своём почтовом сервере не представляется возможным, если, конечно, вы не захотите написать свой почтовый клиент и реализовать там эту возможность, как это сделали почтовые гиганты.
#mailserver
Решил собрать в одну публикацию все варианты настройки и управления OpenVPN сервера через web интерфейс. Я напишу то, что знаю сам. Буду рад, если кто-то ещё поделится рабочими и удобными вариантами.
◽Access Server — родное решение от авторов OpenVPN. Это платный продукт, а бесплатная версия ограничена двумя пользователями. Для единоличного использования подходит. Если нужно больше, то есть лекарство, легко ищется. Если вас это не смущает, то можно пользоваться.
◽Pritunl — один из лучших веб интерфейсов для OpenVPN и Wireguard. К сожалению, платный. Бесплатная версия практически не имеет настроек, но при этом нет никаких ограничений по пользователям. В целом, если вам нужен базовый vpn сервер, то это нормальное решение. Возможно, лучшее.
◽Рутокен VPN — open source решение от авторов Рутокен. Настройки базовые, можно менять конфигурацию сервера и добавлять пользователей. Бонусом идёт свой клиент под Windows, который поддерживает аутентификацию через ключи рутокен. Только последним он и интересен, так как аналогов не видел.
◽Veeam PN — это было отличное бесплатное решение для организации vpn сервера от компании Veeam. Поддерживалась как OpenVPN, так и Wireguard. Когда писал эту заметку, с сожалением узнал, что этот проект закрыт, новых версий больше нет. Его интегрировали в платную версию DR Services.
◽Webmin + OpenVPN-admin — известная веб панель для управления сервером и модуль для OpenVPN. Решение удобно в том плане, что это будет обычный Linux сервер на ваш вкус, в который можно лазить и что-то доделывать, изменять вручную. Я не раз пользовался подобной связкой. Не скажу, что сильно удобно, но в целом нормально для управления пользователями, когда не хочется каждый раз лазить в консоль и скриптами генерить сертификаты и настройки.
◽PfSense, OPNSense, Clearos и т.д. — в этих продуктах тоже есть раздел для управления OpenVPN. С учётом того, что эти системы нетребовательны к ресурсам, можно поднять и для одной роли vpn сервера. Решение вполне нормальное, с заделом на больший функционал.
Отдельно отмечу полезный инструмент для нестабильных каналов связи, который может немного улучшить связь - UDPspeeder. В заметке рассказано для чего он и как работает.
#openvpn #подборка
◽Access Server — родное решение от авторов OpenVPN. Это платный продукт, а бесплатная версия ограничена двумя пользователями. Для единоличного использования подходит. Если нужно больше, то есть лекарство, легко ищется. Если вас это не смущает, то можно пользоваться.
◽Pritunl — один из лучших веб интерфейсов для OpenVPN и Wireguard. К сожалению, платный. Бесплатная версия практически не имеет настроек, но при этом нет никаких ограничений по пользователям. В целом, если вам нужен базовый vpn сервер, то это нормальное решение. Возможно, лучшее.
◽Рутокен VPN — open source решение от авторов Рутокен. Настройки базовые, можно менять конфигурацию сервера и добавлять пользователей. Бонусом идёт свой клиент под Windows, который поддерживает аутентификацию через ключи рутокен. Только последним он и интересен, так как аналогов не видел.
◽Veeam PN — это было отличное бесплатное решение для организации vpn сервера от компании Veeam. Поддерживалась как OpenVPN, так и Wireguard. Когда писал эту заметку, с сожалением узнал, что этот проект закрыт, новых версий больше нет. Его интегрировали в платную версию DR Services.
◽Webmin + OpenVPN-admin — известная веб панель для управления сервером и модуль для OpenVPN. Решение удобно в том плане, что это будет обычный Linux сервер на ваш вкус, в который можно лазить и что-то доделывать, изменять вручную. Я не раз пользовался подобной связкой. Не скажу, что сильно удобно, но в целом нормально для управления пользователями, когда не хочется каждый раз лазить в консоль и скриптами генерить сертификаты и настройки.
◽PfSense, OPNSense, Clearos и т.д. — в этих продуктах тоже есть раздел для управления OpenVPN. С учётом того, что эти системы нетребовательны к ресурсам, можно поднять и для одной роли vpn сервера. Решение вполне нормальное, с заделом на больший функционал.
Отдельно отмечу полезный инструмент для нестабильных каналов связи, который может немного улучшить связь - UDPspeeder. В заметке рассказано для чего он и как работает.
#openvpn #подборка
Максимально простой и удобный способ ограничить на локальном сервере или компьютере скорость сетевого интерфейса или конкретного процесса. Для этого можно воспользоваться open source инструментом TrafficToll.
Это приложение написано на Python, так что поставить можно из pip. Для Debian это выглядит так:
Для управления настройками используется конфиг в yaml формате. Простейший вид вот такой:
Ограничиваем максимальную скорость и гарантируем минимальную. Запускаем TrafficToll:
Теперь попробуйте что-то загрузить на сервер. Скорость интерфейса будет ограничена одним мегабайтом в секунду. В конфигурации используется нижний регистр, что, по-моему, неверно в данном случае. Мегабайты пишутся с заглавной буквы и без p, то есть Mps. Тем не менее, я это проверил на практике.
Приложение умеет ограничивать не только скорость интерфейса но и отдельных процессов. Примеры есть в репозитории. Очень простая и удобная программа. Для каких-то тестов, а может и постоянных задач, подойдёт.
⇨ Исходники
#network
Это приложение написано на Python, так что поставить можно из pip. Для Debian это выглядит так:
# apt install python3-pip
# pip3 install traffictoll
Для управления настройками используется конфиг в yaml формате. Простейший вид вот такой:
download: 1mbps
upload: 1mbps
download-minimum: 100kbps
upload-minimum: 100kbps
Ограничиваем максимальную скорость и гарантируем минимальную. Запускаем TrafficToll:
# tt eth0 eth0.yaml
Теперь попробуйте что-то загрузить на сервер. Скорость интерфейса будет ограничена одним мегабайтом в секунду. В конфигурации используется нижний регистр, что, по-моему, неверно в данном случае. Мегабайты пишутся с заглавной буквы и без p, то есть Mps. Тем не менее, я это проверил на практике.
Приложение умеет ограничивать не только скорость интерфейса но и отдельных процессов. Примеры есть в репозитории. Очень простая и удобная программа. Для каких-то тестов, а может и постоянных задач, подойдёт.
⇨ Исходники
#network
Если хотите посмотреть, попробовать, изучить работу кластера PostgreSQL, можно воспользоваться готовым плейбуком ansible — postgresql_cluster. Это production ready решение, которое просто и легко устанавливается. У меня получилось базовую версию без балансировки на haproxy и consul развернуть сходу.
Всё описание есть в репозитории. Если нет опыта в этом хозяйстве, то развернуть лучше Type B: один мастер и две реплики. Это будет обычный HA кластер на базе Patroni. Если не ошибаюсь, на текущий момент это самое популярное решение для построения кластеров PostgreSQL.
Для установки желательно знать Ansible, но в целом можно и копипастом развернуть, но без понимания основ скорее всего не получится по инструкции правильно заполнить инвентарь и переменные. Это как раз пример того, почему важно знать Ansible, даже если у вас под управлением нет десятков хостов, для которых будет актуальна автоматизация процессов, и вы сами не пишите плейбуки. Очень много готовых продуктов устанавливаются через Ansible.
Patroni известный продукт, по которому много статей и руководств в интернете. Как пример, вот мастер-класс по нему от самих авторов. Предложенный репозиторий тоже распространён. Можно нагуглить статьи с его участием. Например, вот тут тестируют отставание реплики на кластере, развёрнутом из этого репозитория.
После установки статус кластера смотрите командой:
Можете отключать ноды и смотреть, как кластер будет на это реагировать.
#postgresql
Всё описание есть в репозитории. Если нет опыта в этом хозяйстве, то развернуть лучше Type B: один мастер и две реплики. Это будет обычный HA кластер на базе Patroni. Если не ошибаюсь, на текущий момент это самое популярное решение для построения кластеров PostgreSQL.
Для установки желательно знать Ansible, но в целом можно и копипастом развернуть, но без понимания основ скорее всего не получится по инструкции правильно заполнить инвентарь и переменные. Это как раз пример того, почему важно знать Ansible, даже если у вас под управлением нет десятков хостов, для которых будет актуальна автоматизация процессов, и вы сами не пишите плейбуки. Очень много готовых продуктов устанавливаются через Ansible.
Patroni известный продукт, по которому много статей и руководств в интернете. Как пример, вот мастер-класс по нему от самих авторов. Предложенный репозиторий тоже распространён. Можно нагуглить статьи с его участием. Например, вот тут тестируют отставание реплики на кластере, развёрнутом из этого репозитория.
После установки статус кластера смотрите командой:
# patronictl -c /etc/patroni/patroni.yml list
Можете отключать ноды и смотреть, как кластер будет на это реагировать.
#postgresql