Архив автора: admin

Настройка файла .htaccess

Файл .htaccess позволяет настраивать веб-сайт на сервере Apache без необходимости изменять файлы конфигурации сервера. В данном руководстве мы рассмотрим наиболее распространенные примеры его использования. Однако, прежде чем перейти к работе с этим файлом, необходимо сделать важное замечание. Несмотря на то, что страница .htaccess может быть очень полезной и существенно улучшить сайт, у нее есть два фактора негативного влияния:

1. Скорость — страница .htaccess может немного замедлить работу вашего сервера, хотя для большинства серверов это изменение будет незаметным. Это связано с расположением страницы: она влияет на все страницы в своей директории и в ее поддиректориях. При каждой загрузке страницы сервер сканирует ее директорию и все директории выше, пока не дойдет до верхнего уровня или файла .htaccess. Эти действия выполняются всегда, когда параметр AllowOverride (о нем чуть ниже) разрешает использование файлов .htaccess, независимо от того, существуют ли эти файлы на самом деле.

2. Безопасность — файл .htaccess гораздо доступнее стандартной конфигурации Apache, а изменения вносятся мгновенно (без необходимости перезапуска сервера). Предоставление пользователям права внесения изменений в файл .htaccess предоставляет им значительный контроль над самим сервером. Любая директива в файле .htaccess действует так же, как директива в самой конфигурации Apache.

В целом Apache не рекомендует использовать файл .htaccess, если пользователь сам может работать с файлами конфигурации Apache.

Подключение файла .htaccess

Если у вас есть доступ к настройкам сервера, вы можете изменить конфигурацию, чтобы разрешить использование .htaccess вместо стандартной конфигурации веб-сайта. Откройте файл конфигурации узла apache2 по умолчанию (для этого вам потребуются привилегии суперпользователя):

$ sudo nano /etc/apache2/sites-available/default

Найдите в этом файле следующий раздел и измените значение параметра AllowOverride c None на All. В конечном итоге раздел должен выглядеть так:

Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

allow from all

Сохраните и закройте этот файл, а затем перезапустите apache.

$ sudo service apache2 restart

Создание файла .htaccess

Файл .htaccess можно создать в любом текстовом редакторе, например:

$ sudo nano /var/www/example.com/.htaccess

Убедитесь, что его имя строго .htaccess, а затем при помощи ftp-клиента загрузите его на сайт.

Использование файла .htaccess

Использование файла .htaccess не требует таких высоких привилегий, как доступ файлу apache2.conf, но при этом позволяет осуществлять эффективное управление сайтом. Далее мы рассмотрим ряд примеров применения этого файла.

Управление доступом

Файл .htaccess может применяться для гибкого разграничения доступа к вашему сайту или отдельным его страницам. Один из типичных вариантов – запрет доступа с определенных IP-адресов, например, следующий код запрещает доступ со всех адресов, кроме 192.168.1.1. Это полезно при обслуживании сайта, когда требуется закрыть доступ для всех, кроме администратора.

Order Allow,Deny

Deny from All

Allow from 192.168.1.1

Директива Order указывает порядок выполнения следующих директив (сначала Allow — разрешение, затем Deny — запрет). Deny from All запрещает доступ вообще, но так как в соответствии с порядком выполнения сначала разрешен доступ с адреса 192.168.1.1, запрет будет действовать для всех, кроме указанного адреса. Вместо IP-адресов можно указывать подсети (например, формат 192.168 означает подсеть 192.168.x.x) или доменные имена.

Аутентификация

Использование .htaccess позволяет выделить определенную часть сайта и защитить ее паролем. Пароли .htaccess хранятся в файле .htpasswd. Создайте файл, внесите в него имена и пароли всех пользователей, которым вы хотите предоставить доступ к защищенной части сайта, и сохраните его. Файл не должен находиться в веб-директории (по соображениям безопасности). Введите в этот файл любое необходимое количество записей в формате пользователь:пароль. Для каждого пользователя нужно создать отдельную строку. Пароль должен быть указан в закодированном виде. Для кодирования паролей можно воспользоваться специальным сайтом или программой htpasswd, которая входит в комплект установки Apache. Для создания файла и добавления пользователей с помощью утилиты httpasswd используйте команду

htpasswd -cm .htpasswd admin

Эта команда создаст пользователя admin и запросит ввести пароль для него. После ввода пароля запись в файл .htpasswd будет добавлена.

После этого нужно разместить файл .htaccess в директории, к которой требуется защитить доступ, и ввести в него следующий код:

AuthUserFile /usr/local/username/safedirectory/.htpasswd

AuthGroupFile /dev/null

AuthName «Пожалуйста, введите пароль»

AuthType Basic

Require valid-user

Рассмотрим значение этих параметров:

AuthUserFile: путь к файлу .htpasswd на сервере

AuthGroupFile: эта строка используется для обозначения месторасположения файла .htgroup. Так как мы его не создавали, можем указать здесь /dev/null.

AuthName: Текст, отображаемый в предложении ввести пароль.

AuthType: Тип аутентификации, используемый для проверки пароля. При проверке паролей через HTTP нужно оставить значение Basic.

Require valid-user: Ключевая фраза, которая указывает файлу .htaccess наличие нескольких пользователей, которым требуется обеспечить возможность входа в защищенную паролем часть сайта. Другой возможный вариант – ключевая фраза «require user username», обозначающая конкретного пользователя с разрешенным доступом.

Сообщения об ошибках

Файл .htaccess позволяет вам создавать для своего сайта собственные страницы, сообщающие об ошибках. Вот некоторые из наиболее распространенных ошибок:

400 Ошибка в запросе

401 Требуется авторизация

403 Доступ запрещен

404 Файл не найден

500 Внутренняя ошибка сервера

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

Для примера мы рассмотрим страницу 404, аналогичным образом можно описать в файле .htaccess страницы для других ошибок. Естественно, сначала нужно создать саму страницу с необходимой информацией и загрузить ее на сервер. Затем укажите ее месторасположение в файле .htaccess:

ErrorDocument 404 /new404.html

В рассматриваемом примере сервер будет искать страницу 404 в корневой директории сайта. Если она находится в какой-либо поддиректории, нужно указать путь, например:

ErrorDocument 404 /error_pages/new404.html

Описание типов MIME

Если на вашем сайте есть файлы каких-либо приложений, для отображения которых ваш сервер не настроен, в файле .htaccess можно описать типы MIME при помощи следующего кода, чтобы браузер отображал их в необходимом формате:

AddType audio/mp4a-latm .m4a

В данном примере для файлов с расширением .m4a задано представление в виде аудиозаписей. Для поддержки других типов MIME укажите соответствующий тип и расширение файла.

Серверные включения

Серверные включения (Server Side Includes, SSI) позволяют добиться значительного повышения скорости открытия сайта. Они представляют собой директивы для динамической генерации данных на странице сервером перед ее отправкой клиенту. Один из наиболее распространенных вариантов использования SSI – обновление большого количества страниц с передачей определенных данных вместо обновления каждой страницы по отдельности (например, если вам нужно заменить цитату в нижней части страницы).

Для использования SSI введите в файл .htaccess следующий код:

AddType text/html .shtml

AddHandler server-parsed .shtml

Первая строка задает интерпретацию файлов с расширением .shtml как html-кода, а вторая – обработку таких файлов с любыми командами SSI на сервере.

Однако, если у вас много страниц .html, и вы не хотите менять расширение, для их обработки команд SSI в этих файлах можно воспользоваться XBitHack. Следующая строка в файле .htaccess заставляет сервер проверять все html-файлы с соответствующими разрешениями на наличие SSI:

XBitHack on

Для того, чтобы установить необходимые для XBitHack разрешения, воспользуйтесь командой:

chmod +x имя_страницы.html

Редирект

Эти директивы используются с завидной регулярностью. Они позволяют перенаправить посетителя со старого URL на новую страницу. Это возможно благодаря 301-редиректу. Достаточно в код файла вписать:

Redirect 301 /index.html http://domain.ru/newindex.html

В целом директива будет отображена в таком виде:

Redirect [status] URL_LOCAL URL_REDIRECT

URL_LOCAL – это старый адрес, с которого осуществляется перенос пользователя.

URL_REDIRECT – новый URL, куда переносится страница.

В поле [status] могут быть следующие значения:

301 – страница перенесена навсегда.

302 – страница перенесена на время.

303 – смотрите другую страницу.

410 – страница удалена.

Модуль Mod_Rewrite

Одна из наиболее полезных функций файла .htaccess – его использование с модулем mod_rewrite, который применяется для перезаписи URL, отображаемых в браузере пользователя. Это может использоваться для их представления в более удобочитаемом формате и других задач, например, редирект с http на https можно настроить следующим образом.

RewriteEngine On

RewriteCond %{HTTP:PORT} !^443$

RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

Первая строка активирует модуль Mod_Rewrite, а две последующие при попытке соединения по отличному от 443 порту переписывают URL, чтобы он начинался не с HTTP, а c HTTPS, перенаправляя посетителя на защищенное соединение.

Управление кэшированием данных

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

ExpiresActive on

ExpiresByType image/jpeg "access plus 1 day"

ExpiresByType image/gif "modification plus 3 months"

ExpiresByType text/html "now"

отключает кэширование для HTML, для изображений JPEG устанавливает срок в 1 день с момента обращения, а для GIF — 3 месяца с момента модификации файла.

Заключение

Страница .htaccess обеспечивает значительную гибкость при создании сайтов, но наше руководство достаточно краткое. Более подробную информацию о возможностях файла .htaccess можно получить в документации для сервера Apache.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-03-11T18:06:38
Apache

Как вручную включить Retpoline в Windows 10

Я уверен, что вы знаете об аппаратных уязвимостях Spectre и Meltdown, которые были обнаружены в прошлом году в январе.

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

Затем прибыл Spectre 2!

Хотя это было пофикшено, решение привело к более существенному снижению производительности.

Retpoline стал новым решением!

В этом руководстве мы увидим, как вы можете настроить Retpoline в Windows 10.

Настроить Retpoline в Windows 10

Интересно отметить, что Retpoline – это метод бинарной модификации, разработанный Google.

Он предназначен для защиты от «Branch target injection», также называемого «Spectre».

Это решение обеспечивает повышение производительности ЦП.

Microsoft разворачивает его поэтапно.

А из-за сложности его реализации, преимущество в производительности у Windows 10 v1809 и более поздних выпусков.

Чтобы вручную включить Rerpoline в Windows, убедитесь, что у вас есть обновление KB4482887.

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

На клиентских SKU:

reg add "HKLMSYSTEMCurrentControlSetControlSession ManagerMemory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0x400

reg add "HKLMSYSTEMCurrentControlSetControlSession ManagerMemory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 0x400

Перезагрузитесь

На серверных SKU :

reg add "HKLMSYSTEMCurrentControlSetControlSession ManagerMemory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0x400

reg add "HKLMSYSTEMCurrentControlSetControlSession ManagerMemory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 0x401

Перезагрузитесь

Как проверить статус Retpoline в Windows

Чтобы подтвердить, активен ли Retpoline, вы можете использовать командлет Get-SpeculationControlSettings PowerShell.

Этот скрипт PowerShell покажет состояние настраиваемых обновлений Windows для различных уязвимостей.

Включает в себя Spectre 2 и Meltdown.

Как только вы загрузите скрипт и выполните его, вот как это выглядит.

Speculation control settings for CVE-2017-5715 [branch target injection] 



Hardware support for branch target injection mitigation is present: True  

Windows OS support for branch target injection mitigation is present: True 

Windows OS support for branch target injection mitigation is enabled: True 

… 

BTIKernelRetpolineEnabled           : True 

BTIKernelImportOptimizationEnabled  : True 

...

В будущих обновлениях эта функция будет включена по умолчанию.

На данный момент она будет разрешена через облачную конфигурацию.

Microsoft работает над решением, которое больше не требует Retpoline.

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

 



2019-03-11T17:32:01
Закрытие уязвимостей

Как настроить PhpMyAdmin на NGINX и PHP 7.4

Не всегда удобно пользоваться консолью MySQL для редактирования и создания баз данных. Поэтому многие устанавливают phpMyAdmin, но не знают как настроить PhpMyAdmin на NGINX в связке с PHP




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






Установка phpMyAdmin + Nginx в Ubuntu 18.04




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




sudo apt install phpmyadmin




В процессе установки будет предложено выбрать веб сервер на котором будет работать phpmyadmin. Так как устанавливать мы будем NGINX, то естественно мы просто нажмем enter и продолжим дальше. Далее будет предложено создать базу данных, и создать пароль для нее — выполните требуемое. 




Так как phpmyadmin распаковался и находится по пути /usr/share/phpmyadmin , а ваш сайт допусти лежит в директории /home/www/my.site.ru, то нам всего навсего нужно будет создать символьную ссылку таким образом:




ln -s /usr/share/phpmyadmin /home/www/my.site.ru




после
чего в директории сайта появится ссылка на менеджер управления базами
данных. И чтобы зайти в phpmyadmin нам нужно перейти по адресу:




http://my.site.ru/phpmyadmin/




Если вы не установили php 7.4 или другую версию php то phpmyadmin работать не будет




Установка php 7.4, php7.4-fpm и других расширений php




Вводим в терминале команду, которая установит все необходимые расширения для работы php движков:




sudo apt install php7.4 php7.4-fpm php7.4-mbstring php-pear php7.4-mcrypt php7.4-mysql php7.4-gd php7.4-zip php7.4-curl




После установки отредактируем php.ini




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




включаем поиск по файлу комбинацией клавиш ctrl+w. Вводим строку:




;cgi.fix_pathinfo = 1




раскомментируем и изменим 1 на 0. Чтобы выглядело вот так:




cgi.fix_pathinfo = 0




Данное действие рекомендовано для увеличения безопасности.




И так у нас все готово: расширение php для работы с mySQL установлены, установлен php-fpm для работы c nginx.




перейдем к следующему этапу настройки.




Настройка nginx для работы с phpmyadmin




Создаем конфигурационный файл




sudo nano /etc/nginx/conf.d/my.site.conf




Вставим в него




server { 
listen 80;    
server_name my.site.ru;    
root /home/www/my.site.ru;    
charset utf-8;    
index index.php index.html;    
client_max_body_size 100m;    
fastcgi_read_timeout 160s; 

location / {    
try_files $uri $uri/ /index.php?$args;    
} 

location ~ .php$ {    
try_files $uri =404;    
fastcgi_index index.php;    
fastcgi_pass unix:/run/php/php7.4-fpm.sock;    
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;    
include fastcgi_params;    
} 
}




В данном случае вам будет доступен сайт если у вас он есть и phpmyadmin по адресу my.site.ru/phpmyadmin/ .




Если вы хотите чтобы менеджер баз данных был на другом домене, например mysql.my.site.ru, создайте в редакторе зон DNS вашего хостинга специальный поддомен и отредактируйте файл nginx так:




sudo nano /etc/nginx/conf.d/mysql.my.site.conf




server { 
listen 80;    
server_name mysql.my.site.ru;    
root /home/www/my.site.ru/phpmyadmin;    
charset utf-8;    
index index.php index.html;    
client_max_body_size 100m;    
fastcgi_read_timeout 160s; 

location / {    
try_files $uri $uri/ /index.php?$args;    
} 

location ~ .php$ {    
try_files $uri =404;    
fastcgi_index index.php;    
fastcgi_pass unix:/run/php/php7.4-fpm.sock;    
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;    include fastcgi_params;    
} 
}




Перезагружаем nginx и php fpm




sudo service php7.4-fpm restart




sudo service nginx restart




Теперь можно проверить все ли работает. На этом всё.



[endtxt]




RSS



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


2019-03-11T11:07:40
Nginx

Mikrotik RB951G-2HnD: разбираем настройку роутеров

Mikrotik — широко известный в узких кругах производитель маршрутизаторов. Устройства работают на RouterOS, разработанной на базе Linux. В русскоязычном интернете почти нет подробных инструкций по настройке «Микротика» — эту ситуацию надо исправлять! Ниже мы рассмотрим настройку маршрутизатора этого бренда на примере Mikrotik RB951G-2HnD.

Читать

Настройка программной точки доступа (AP) в Ubuntu Server

Сегодня разберём как можно настроить точку доступа Wi-Fi на Ubuntu Server . Для этого нам потребуется установить два пакета:




sudo apt-get install hostapd dnsmasq




Пропишем расположение конфига для службы hostapd




sudo nano /etc/default/hostapd




#Снимаем коммент со строки и прописываем путь к конфигу
DAEMON_CONF="/etc/hostapd/hostapd.conf"




Теперь настроим службу hostapd




sudo nano /etc/hostapd/hostapd.conf




#Вводим имя своей точки доступа SSID 
ssid=MyNet
#Задаем имя беспроводного интерфейса
interface=wlan0
#Выбираем канал
channel=7
driver=nl80211
country_code=RU
hw_mode=g
macaddr_acl=0
#Секция с настройками шифрования
wpa=3
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
#Устанавливаем пароль к точке доступа
wpa_passphrase=My*Password92




Запустим службу hostapd, и проверим на наличие ошибок




sudo hostapd -d /etc/hostapd/hostapd.conf




Теперь пропишем настройки беспроводного интерфейса wlan0




sudo nano /etc/network/interfaces




auto wlan0 
iface wlan0 inet static
address 10.0.10.1
netmask 255.255.255.0
#Добавим автозапуск служб после настройки интерфейсов
post-up service hostapd restart
post-up service dnsmasq restart




Пропишем настройки нашего DHCP-сервера




sudo nano /etc/dnsmasq.conf




#Устройства, подключаемые к этому интерфейсу, будут получать адреса по DHCP 
interface=wlan0
#Группа адресов, выдаваемых сервером. 12h - срок аренды адреса
dhcp-range=10.0.10.10,10.0.10.255,12h
#Укажем сервер имен
server=/www.google.com/8.8.8.8




Не забудем прописать DNS сервера:




sudo nano /etc/resolv.conf




nameserver 10.0.0.1
nameserver 8.8.8.8
nameserver 8.8.8.4




И защитим этот файл от перезаписи, ииначе после перезагрузки он вернется с начальными параметрами




chattr +i /etc/resolv.conf




Теперь запустим сервисы и пропингуем камеру




sudo service networking restart
sudo service hostapd restart
sudo service dnsmasq restart




Пропишем маршрут route в секцию eth0 на других компьютерах, чтобы они видели 10.0.10.0/24 сеть компьютера (10.0.0.10), на котором поднята точка доступа




sudo nano /etc/network/interfaces




route add -net 10.0.10.0 netmask 255.255.255.0 gw 10.0.0.10



[endtxt]



2019-03-10T18:39:55
Wi-Fi

Как найти и сохранить ваши скриншоты в Steam?

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

Где мои скриншоты в Steam?

Мы используем Windows для нашего примера здесь. Linux и macOS работают практически одинаково, но имеют разные имена папок.

Steam хранит свои скриншоты в следующей папке на вашем ПК с Windows:

C:Program Files (x86)Steamuserdata{Your Steam ID}760remote{The Game's ID}screenshots

В Linux это по адресу:

~/.local/share/Steam/userdata/{Your Steam ID}/760/remote/{The Game's ID}/screenshots

А на Mac это по адресу:

Users/{username}/Library/Application Support/Steam/userdata/{Your Steam ID}/760/remote/{The Game's ID}/screenshots

Проблема в том, что он разделен по играм, и вы, вероятно, не уверены, что это за игра «252490».

Намного проще получить доступ к скриншотам игры, щелкнув правой кнопкой мыши игру в своей библиотеке и выбрав «Просмотреть скриншоты» в выпадающем меню.

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

Функция «Загрузить» в этом диалоговом окне просто публикует скриншот в вашем профиле Steam (или, опционально, в Facebook). Он не загружает его на хостинг-сайт, такой как Imgur; вам придется сделать это вручную.

После того, как вы получите настоящие файлы, вы можете создать их резервные копии, как вам угодно, будь то просто поместить их в другую папку или загрузить в облачный сервис, такой как Dropbox. Если вы хотите сделать резервную копию всех скриншотов игры, вам придется сделать это вручную или создать резервную копию всей папки 760remote содержащей все папки для каждой игры. Кажется, не существует способа просмотреть их все в одной папке одновременно.



2019-03-10T13:56:04
Вопросы читателей