Архив рубрики: Публикации

Настраиваем HTTP заголовки WEB-сервера Nginx

Сегодня в статье поговорим как Настроить HTTP заголовки WEB-сервера Nginx и обезопасить ваш сервер от различных атак.




HTTP заголовки WEB-сервера Nginx




Для начала давайте откроем конфигурационный файл WEB сервера Nginx




sudo nano /etc/nginx/nginx.conf




Найдите раздел HTTP, в этом разделе определяются конфигурации для HttpCoreModule Nginx. Добавьте следующую директиву: 




server_tokens off;




Это запретит Nginx отправлять номера версий в заголовке HTTP.




Перезагрузите конфигурацию Nginx Чтобы применить это изменение:




sudo service nginx reload




X-XSS-Protection




Заголовок X-XSS-Protection может предотвратить некоторые XSS-атаки («межсайтовый скриптинг»), он совместим с IE 8+, Chrome, Opera, Safari и Android.




Добавьте следующее в nginx.conf в разделе HTTP:




add_header X-XSS-Protection "1; mode=block";




X-Frame-Options




Заголовок X-Frame-Options позволяет снизить уязвимость вашего сайта для кликджекинг-атак. Этот заголовок служит инструкцией для браузера не загружать вашу страницу в frame/iframe. Не все браузеры поддерживают этот вариант, так что проверьте заголовок на совместимость перед тем, как его добавлять.




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




add_header X-Frame-Options “DENY”;




X-Content-Type-Options




Можно предотвратить атаки с использованием подмены MIME типов, добавив этот заголовок ответа HTTP. Заголовок содержит инструкции по определению типа файла и не допускает сниффинг контента. При конфигурации потребуется добавить только один параметр: “nosniff”.




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




add_header X-Content-Type-Options nosniff;




Content Security Policy




Чтобы предотвратить XSS-атаки, кликджекинг, внедрение кода, можно добавить заголовок ответа Content Security Policy (CSP). CSP содержит инструкции о загрузке контента из разрешенных источников.




Добавьте следующее в секцию Server в файле nginx.conf:




add_header Content-Security-Policy "default-src 'self';";




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




РНР




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




sudo nano /etc/php/7.4/fpm/php.ini




Найдите ключевое слово expose_php и установите его значение в Off:




 expose_php = off




Если вы используете PHP как FPM, то вам нужно будет перезагрузить PHP-FPM: 




sudo service php-fpm reload




После перезагрузки заголовок ответа X-Powered-By: PHP/7.4 должен отсутствовать




Если не помогло, то прописываем в nginx.conf следующее




proxy_hide_header X-Powered-By;
# или
#more_clear_headers 'X-Powered-By';



[endtxt]




RSS



Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.


2020-05-29T08:00:22
Nginx

Как узнать и поменять значение MTU в Linux

Сегодня в статье поговорим Как узнать и поменять значение MTU в Linux/Ubuntu/Debian.




MTUmaximum transmission unit – максимальный размер пакет или фрейма в байтах, который может быть отправлен единовременно без фрагментации.




Узнать значение и поменять MTU в Linux




Узнать значение MTU для всех интерфейсов можно выполнив в консоли команду ip link




ip link | grep mtu




1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
10: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000




Чаще всего встречается 1500 — это значение по умолчанию для Ethernet интерфейсов.




Поменять MTU на сервере с Ubuntu/Debian можно так:




sudo ip link set dev eth0 mtu 1400




или так для старых систем:




sudo ifconfig eth0 mtu 1400




После данной команды начинает использоваться значение 1400, а вот после перезагрузки это значение MTU сбросится в дефолтное




Для постоянной смены MTU в Ubuntu




Открываем настройку сетевых интерфейсов:




sudo nano /etc/network/interfaces




К нужному адаптеру добавляем строчку со значением MTU. Вот пример настройки:




auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.5.5.2
netmask 255.255.255.0
gateway 10.5.5.1
mtu 1400




Перезапускаем сеть:




systemctl restart networking




Значение теперь будет применяться даже после перезагрузки.




Меняем значение MTU при помощи Netplan




Вот еще один пример как можно сменить значение MTU, но уже через утилиту Netplan на Ubuntu 18.04/20.04




network:
    ethernets:
        ens3:
            mtu: 1400
            addresses:
            - 198.18.12.15/24
            - 2a01:d0:c353:183::15/64
            dhcp4: false
            gateway4: 198.18.12.1
            gateway6: 2a01:d0:c353:183::1
            nameservers:
                addresses:
                - 198.18.12.3
                - 2a01:d0:c353:183::3
                search: []
    version: 2



[endtxt]




RSS



Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.


2020-05-28T08:33:30
Network

Отображение дня недели на панели задач Windows 10

По умолчанию дата и время, отображаемые в правом нижнем углу рабочего стола Windows 10, выглядят примерно так:

Как насчет добавления дня недели, как это?

Заинтересованы? Вот как вы можете быстро это сделать.

Перейдите в «Настройки» > «Время и язык» > «Регион» и нажмите «Дополнительная дата, время и региональные настройки».

Открывается апплет Clock and Region на панели управления. Нажмите Region, чтобы открыть диалоговое окно Region. Затем нажмите кнопку Дополнительные настройки… в нижней части.

Теперь перейдите на вкладку Date, и здесь мы можем изменить формат Short date, чтобы добавить день недели на панель задач.

ddd M/d/yyyy отобразит вам формат, показанный на скриншоте выше.

Изменение вступает в силу немедленно. Вам не нужно перезагружать компьютер или даже Проводник. Если вы этого не видите, возможно, вы установили использование маленьких кнопок панели задач в настройках панели задач.



2020-05-26T08:56:40
Вопросы читателей

Как добавить конфигурацию системы (msconfig) на панель управления

Если вы часто используете панель управления и инструмент «Конфигурация системы», то как насчет добавления последнего в первый? Изменяя реестр, вы можете добавить конфигурацию системы на панель управления в Windows 10.

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

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

Добавить инструмент настройки системы на панель управления

Выполните следующие действия, чтобы добавить конфигурацию системы на панель управления в Windows 10:

  1. Откройте Блокнот на вашем компьютере.
  2. Вставьте в него значения реестра.
  3. Перейдите в Файл > Сохранить как.
  4. Выберите путь, куда вы хотите сохранить файл.
  5. Назовите его как угодно с расширением .reg.
  6. Выберите Все файлы из типа Сохранить как
  7. Нажмите Сохранить
  8. Дважды щелкните файл.
  9. Выберите Да в приглашении UAC.
  10. Выберите Да, чтобы завершить добавление.

Давайте проверим эти шаги подробно.

Сначала вам нужно создать файл .reg с правильными значениями реестра. Для этого откройте окно Блокнота на вашем компьютере и вставьте следующие тексты:

Windows Registry Editor Version 5.00



[HKEY_LOCAL_MACHINESOFTWAREClassesCLSID{D14ED2E1-C75B-443c-BD7C-FC03B2F08C15}]

@="System Configuration"

"InfoTip"="Perform advanced troubleshooting and system configuration"

"System.ControlPanel.Category"="5"



[HKEY_LOCAL_MACHINESOFTWAREClassesCLSID{D14ED2E1-C75B-443c-BD7C-FC03B2F08C15}DefaultIcon]

@="msconfig.exe"



[HKEY_LOCAL_MACHINESOFTWAREClassesCLSID{D14ED2E1-C75B-443c-BD7C-FC03B2F08C15}ShellOpenCommand]

@="msconfig.exe"



[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerControlPanelNameSpace{D14ED2E1-C75B-443c-BD7C-FC03B2F08C15}]

@="System Configuration"

Теперь перейдите в «Файл» и нажмите «Сохранить как». Кроме того, вы можете нажать клавиши Ctrl + Shift + S вместе.

Затем выберите папку в которой вы хотите сохранить файл, введите имя с REG — расширением, выберите Все файлы из Сохранить как тип списка раскрывающегося списка и нажмите Сохранить кнопку.

После этого вам нужно открыть этот .reg файл на вашем компьютере. Для этого найдите файл и дважды щелкните по нему. Вы можете найти подсказку UAC. Если это так, нажмите кнопку Да и снова эту же кнопку, чтобы включить значения реестра в редакторе реестра.

После этого вы можете найти конфигурацию системы или опцию msconfig в панели управления. В случае, если вы хотите удалить эту опцию; Вы можете перейти по этому пути в редакторе реестра

HKEY_LOCAL_MACHINESOFTWAREClassesCLSID

И удалите ключ {D14ED2E1-C75B-443c-BD7C-FC03B2F08C15}.

Для этого щелкните правой кнопкой мыши этот ключ, выберите «Удалить»  и нажмите кнопку «Да», чтобы подтвердить его.

Я надеюсь, что этот урок поможет вам.



2020-05-26T08:49:48
Вопросы читателей

Валютный риск. Как справляться со взлетами и падениями во время COVID-19

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

Я понимаю, что этот подход «голова в песке» просто желаемое за действительное. Владельцы бизнеса знают, что колебания обменного курса могут стоить им — они просто втайне надеются, что это будет в их пользу.

Мониторинг обменников KursoFF (https://kursoff.com/), здесь можно найти самые выгодные предложения по обмену электронных денег и криптовалют, все обменники тщательно проверены и имеют безупречную репутацию.

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

 

Почему обменные курсы так важны для экспортеров?

Обменный курс — это стоимость валюты одной страны по отношению к валюте другой страны. Например, по состоянию на 25 мая россиянам стоило 71,64 рубля, чтобы купить один доллар США, и 78,07 рубля — один евро (€). Проблема для тех, кто продает на международном уровне, заключается в том, что валютные ценности между странами постоянно меняются.

Почему это важно? Скажем, вы продаете какое-то оборудование за 100 000 € своему клиенту во Франции и даете ему 90-дневный срок. Вы ожидаете, что по текущему обменному курсу (78,07 рубля за один евро) вы получите эквивалент 7 807 000 рублей или больше при оплате счета.

Но что, если стоимость евро упадет за это время с 78,07 до 71,00 рублей? Теперь вы получите только 7 800 000 долларов. Легко увидеть, как риск колебания курсов валют может уменьшить или даже снизить вашу прибыль.

Но подождите минуту, вы можете подумать, что если стоимость евро поднимется до 90 рублей? Тогда вы получите дополнительные 1 193 000! Это заставляет заманчиво ничего не делать с риском или предполагать, что иногда вы выиграете, иногда проиграете, и все выровняется.

 

Скрытая стоимость игнорирования валютного риска

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

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

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

 

Построение валютной политики

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



2020-05-25T19:00:01
Валюта

Как установить Ruby в Ubuntu 20.04

Ruby является одним из самых популярных языков программирования на 2020 год. Он имеет элегантный синтаксис и ориентирован на простоту и производительность. Ruby — это язык мощного фреймворка Ruby on Rails.

В этой статье мы покажем вам три разных способа установки Ruby в Ubuntu 20.04:

  • Из стандартных репозиториев Ubuntu. Это самый простой способ установить Ruby в Ubuntu, и его должно быть достаточно для большинства случаев использования. Версия включена в репозиториях Ubuntu является 2.7.0.
  • Использование Rbenv. Скрипт, позволяющий установить несколько версий Ruby на одном компьютере.
  • Использование RVM (ruby enVironment manager). Более тяжелый и более функциональный скрипт, который позволяет устанавливать, управлять и работать с несколькими версиями Ruby.

Выберите способ установки, подходящий для вашей среды. Если вы разрабатываете приложения Ruby и работаете с несколькими средами Ruby, предпочтительным способом является установка Ruby с использованием Rbenv или RVM.

Если вы не уверены, какую версию Ruby установить, обратитесь к документации приложения, которое вы собираетесь развернуть.

 

Установка Ruby из репозитория Ubuntu

Самый простой способ установить Ruby в Ubuntu — использовать менеджер пакетов apt. На момент написания, версия в репозиториях Ubuntu была 2.7.0, которая не всегда может быть последней стабильной версией.

Установка довольно проста. Выполните следующие команды как пользователь root или пользователь с привилегиями sudo, чтобы обновить индекс пакета и установить Ruby:

sudo apt update

sudo apt install ruby-full

 

После завершения проверьте установку, напечатав версию Ruby:

ruby --version

 

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

ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]

 

Ваша версия Ruby может отличаться от показанной выше.

Все! Вы успешно установили Ruby на свой компьютер с Ubuntu и можете начать его использовать.

 

Установка Ruby с использованием Rbenv

Rbenv — это легкий инструмент командной строки, который позволяет легко переключать версии Ruby.

По умолчанию rbenv не поддерживает установку Ruby. Мы будем использовать ruby-build для установки Ruby. Он доступен как отдельная программа и как плагин для rbenv.

Скрипт ruby-build устанавливает Ruby из источника. Чтобы иметь возможность собрать Ruby, установите необходимые библиотеки и компиляторы:

sudo apt update

sudo apt install git curl autoconf bison build-essential     libssl-dev libyaml-dev libreadline6-dev zlib1g-dev     libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev

 

Самый простой способ установить инструмент rbenv — использовать сценарий оболочки установки. Запустите команду curl или загрузите и выполните скрипт:

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash

 

Сценарий клонирует репозитории rbenv и ruby-build из GitHub в каталог ~/.rbenv.

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

Running doctor script to verify installation...

Checking for `rbenv' in PATH: not found

  You seem to have rbenv installed in `/home/vagrant/.rbenv/bin', but that

  directory is not present in PATH. Please add it to PATH by configuring

  your `~/.bashrc', `~/.zshrc', or `~/.config/fish/config.fish'.


 

Чтобы начать использовать rbenv, вам нужно добавить $HOME/.rbenv/bin в переменную PATH.

  • Если вы используете Bash:
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrcecho 'eval "$(rbenv init -)"' >> ~/.bashrcsource ~/.bashrc

  • Если вы используете Zsh:
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrcecho 'eval "$(rbenv init -)"' >> ~/.zshrcsource ~/.zshrc

 

Запустите команду rbenv -v, чтобы убедиться, что установка прошла успешно:

rbenv -v

rbenv 1.1.2-30-gc879cb0


 

Чтобы получить список всех версий Ruby, которые можно установить rbenv, введите:

rbenv install -l

 

Например, чтобы установить Ruby версии 2.7.1 и установить ее как глобальную версию, введите:

rbenv install 2.7.1rbenv global 2.7.1

 

Rbenv работает, вставляя директорию с именем shims на передней панели PATH. Этот каталог содержит скрипты (shims), чья задача — перехватывать команды Ruby и выполнять соответствующие двоичные файлы.

Rbenv позволяет установить оболочку, локальную и глобальную версии Ruby:

  • Версия оболочки используется в текущей оболочке и имеет наивысший приоритет. Это можно определить, установив переменную среды RBENV_VERSION с помощью команды rbenv shell <ruby-version>.
  • Локальная версия устанавливается для каждого каталога. Эта версия написана в файле ruby-version. Когда вы запускаете скрипт Ruby, rbenv ищет файл в текущем и всех родительских каталогах. Он использует версию Ruby, сохраненную в первом найденном файле. Чтобы установить локальную версию, перейдите в каталог и выполните команду rbenv local <ruby-version>.
  • Глобальная версия используется во всех оболочках, если не установлена оболочка или локальная версия. Используйте rbenv global <ruby-version> для установки глобальной версии.

Не используйте sudo для установки гемов, когда Ruby управляется с помощью rbenv. Каждая версия Ruby установлена в каталоге ~/.rbenv/versions и доступна для записи пользователем.

 

Установка Ruby с использованием RVM

RVM — это инструмент командной строки, который можно использовать для установки, управления и работы с несколькими средами Ruby.

Установите зависимости, необходимые для сборки Ruby из исходного кода:

sudo apt update

sudo apt install curl g++ gcc autoconf automake bison libc6-dev         libffi-dev libgdbm-dev libncurses5-dev libsqlite3-dev libtool         libyaml-dev make pkg-config sqlite3 zlib1g-dev libgmp-dev         libreadline-dev libssl-dev

 

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

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDBcurl -sSL https://get.rvm.io | bash -s stable

 

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

source ~/.rvm/scripts/rvm

 

Чтобы получить список всех версий Ruby, которые можно установить с помощью этого инструмента, введите:

rvm list known

 

Установите последнюю стабильную версию Ruby с RVM и установите ее в качестве версии по умолчанию:

rvm install rubyrvm --default use ruby

 

Убедитесь, что Ruby был правильно установлен, напечатав номер версии:

ruby -v

ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]

 

Если вы хотите установить определенную версию Ruby, введите команды ниже. Замените x.x.x на версию Ruby, которую вы хотите установить:

rvm install ruby-x.x.xrvm --default use ruby-x.x.x

 

Чтобы переключиться на другую версию, не устанавливая ее в качестве Ruby по умолчанию, введите:

rvm use ruby-x.x.x

 

Для получения дополнительной информации о том, как управлять установками Ruby с помощью RVM, посетите их страницу документации.

 

Вывод

Мы показали вам три различных способа установки Ruby в Ubuntu 20.04. Выбор метода зависит от ваших требований и предпочтений. Несмотря на то, что установка упакованной версии из репозитория Ubuntu проще, скрипты Rbenv и RVM дают вам больше гибкости в использовании разных версий Ruby для каждого пользователя.

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



2020-05-25T14:27:29
Ruby