Блог - Linux, программирование, Я!

linux на сервереBasic HTTP авторизация для Nginx

В принципе это тривиальная операция описанная в документации к Nginx, но немного усложняет этот процесс необходимость создавать htpasswd файл, причем в самом Nginx средств для его создания нет (и это правильно), но предлагается создавать его используя утилиту htpasswd входящую в состав Apache. Что самое смешное, на многих серверах, где используется Nginx, апача нет и не ожидается. Более того, большинство администраторов хостингов, "познавших" для себя Nginx начинают нескрываемо недолюбливать апач и верят, что наступит тот час, когда для Nginx наконец сделают аналог htaccess и апач, исправно служивший им долгие годы, наконец-то сгинет в небытие. Чтобы исправить сей досадный факт, добавлю в статью онлайн-формочку для генерации htpasswd фйла.

Давайте для примера создадим отдельный поддомен для хранения секретной информации с доступом по логину/паролю и в нагрузку в ней будут директория для доступа к которой понадобится дополнительная пара логин/пароль и директория с включенным листингом файлов тоже с отдельным доступом. Т.е. структура примерно такая:
/ (доступ к файлам по _логин-пароль_1)
--otherpass/ (доступ к файлам по _логин-пароль_2)
--listed/ (включен автоиндекс файлов, т.е. можнго просмотреть какие файлы тут лежат, доступ к файлам по _логин-пароль_3)

Создадим виртуалхост Nginx

Допустим, для поддомена adminka.example.com. Для этого создадим файл

sudo nano /etc/nginx/sites-available/adminka.example.com

со следующим содержимым:

server {
        listen   80;
        server_name  adminka.example.com;
        access_log  /var/log/nginx/adminka_example_com.log;#можно написать /var/log/nginx/$host.log но придется заранее создать лог-файл и выставить на него правильные права
        root   /var/www/$host/htdocs;
        index  index.html index.htm index.php;
}

Ок, сохраняем, делаем этот хост доступным (включаем в конфиг нджинкса):

sudo ln -s /etc/nginx/sites-available/adminka.example.com /etc/nginx/sites-enabled/adminka.example.com

Создаем директории для htdocs

mkdir /var/www/{adminka.example.com,adminka.example.com/htdocs,adminka.example.com/htdocs/{otherpass,listed}

Если кто не понял, эта команда делает то же, что и 4 следующие:

mkdir /var/www/adminka.example.com
mkdir /var/www/adminka.example.com/htdocs
mkdir /var/www/adminka.example.com/htdocs/otherpass
mkdir /var/www/adminka.example.com/htdocs/listed

Рестартим Nginx

sudo service nginx configtest
sudo service nginx restart

Проверяем: http://adminka.example.com/
Ага

403 Forbidden
nginx/0.7.64

Пароли не просит, листинг директории у нас не включен и index файла мы не создавали. То же самое для директорий otherpass и listed. Соответственно получаем 403 ошибку "доступ запрещен".

Добавим листинг (если нужен)

Мы договорились, что в директории listed у нас разрешен просмотр содержимого директории... Редактируем конфиг

sudo nano /etc/nginx/sites-available/adminka.example.com
server {
  listen   80;
        server_name  adminka.example.com;
        access_log  /var/log/nginx/adminka_example_com.log;
        root   /var/www/$host/htdocs;
        index  index.html index.htm index.php;
        location /listed/ {
                autoindex on;
        }
}

Сохраняем, перезапускаем, пробуем: http://adminka.example.com/listed/
Ага, работает:

Index of /listed/
_________
../
_________

Но где же обещанные пароли? Спокойно, сейчас все будет!

Добавляем Basic HTTP authorization.

Пароли для разных директорий будем хранить в разных htpasswd файлах за пределами htdocs. Например так:

/var/www/adminka.example.com/
--/root_htpasswd
--/listed_htpasswd
--/otherpass_htpasswd
server {
  listen   80;
        server_name  adminka.example.com;
        access_log  /var/log/nginx/adminka_example_com.log;
        root   /var/www/$host/htdocs;
        index  index.html index.htm index.php;
        location / {
                auth_basic "Unauthorized"; # текст сообщения сервера с предложением ввести пароль
                auth_basic_user_file /var/www/$host/root_htpasswd; # путь к htpasswd файлу
        }
        location /listed/ {
                auth_basic "Unauthorized";
                auth_basic_user_file /var/www/$host/listed_htpasswd;
                autoindex on;
        }
        location /otherpass/ {
                auth_basic "Unauthorized";
                auth_basic_user_file /var/www/$host/otherpass_htpasswd;
                autoindex on;
        }
}

Создаем htpasswd файлы (см. далее), сохраняем, перезапускаем, проверяем!

Генерация хеша пароля

HTTP авторизация в Nginx работает так же как и в Apache, т.е. с использованием htpasswd файла, но с тем лишь ограничением, что для шифрования пароля можно использовать только стандартный алгоритм DES с двухсимвольной солью. В Linux для этого используется C-функция crypt() (см man 3 crypt).

Можно использовать утилиту htpasswd из комплекта поставки Apache

htpasswd -nd seriy
New password:
Re-type new password:
seriy:4lQ0JcanrGr9E

Вывод этой утилиты состоит из 3-х частей: первая, до двоеточия "seriy" - это имя пользователя, "4l" - это двухсимвольная соль для функции crypt() и остальная часть "Q0JcanrGr9E" - это сам хеш пароля. Единственная проблема такого подхода - придется устанавливать apache.

Вот пара примеров кода для генерации htpasswd ( your_password - ваш пароль, salt - соль для пароля, должна содержать 2(!!!) символа из набора "./0-9A-Za-z"):
используя php:

php -r 'echo crypt("your_password", "salt");'

используя Python:

python -c 'import crypt; print crypt.crypt("your_password", "salt")'

Если кто предложит примеры на других языках - (perl, ruby) буду благодарен. Возможно для этого можно использовать утилиту mcrypt но я в ней не смог разобраться.

В завершение - вот простенькая веб-формочка для генерации htpasswd онлайн.

  1. 2010-06-04 14:03:12 | #

    […] PS пишет: server { listen 80; server_name adminka.example.com; access_log /var/log/nginx/adminka_example_com.log;#можно написать /var/log/nginx/$host.log но придется заранее создать лог-файл и выставить на него правильные права root … htpasswd -nd seriy New password: Re-type new password: seriy:4lQ0JcanrGr9E. Вывод этой утилиты состоит из 3-х частей: первая, до двоеточия «seriy» – это имя пользователя, «4l» – это двухсимвольная соль для функции crypt() и остальная часть … […]

  2. 2012-02-27 05:42:37 | #

    А вот так осуществляется контроль доступа к файлам на Nginx и PHP:
    http://odiszapc.ru/2012/02/26/nginx-access/

  3. rock
    2012-09-14 03:12:46 | #

    Что тут писать-то?

                        #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    from sys import argv
    from random import choice
    from string import ascii_letters, digits
    from getpass import getpass
    from crypt import crypt
    
    if __name__=="__main__":
            name = argv[1:2]
            if not name:
                    print "Введите имя пользователя:",
                    name = raw_input()
                    if not name:
                            print "ОШИБКА: Введите имя пользователя."
                            exit(1)
            else:
                    name = name[0]
    
            salt = ''.join(choice(ascii_letters.join(digits)) for char in range(2))
    
            passwd = getpass("Введите пароль: ")
            if not passwd == getpass("Введите пароль еще раз: "):
                    print "ОШИБКА: Пароль и подтверждение не совпадают."
                    exit(2)
    
            passwdHash = crypt(passwd, salt)
    
            print name + ':' + passwdHash
    
            exit(0)
                      
  4. Incognito
    2012-12-18 16:51:16 | #

    у меня почему к listed постоянно пароль запрашивает, а к корневой один раз ввел в браузере и после этого открывается без запроса пароля, так и должно быть?
    как нибудь время жизни пароля задать можно?

  5. Павел
    2013-08-03 05:11:00 | #

    Апач устанавливать не нужно, достаточно установить apache2-utils.
    Для Debian Linux:
    aptitude install apache2-utils

  6. Дмитро Раби
    2013-12-20 13:38:17 | #

    На crypt на ruby:
    'password'.crypt('salt')

    • Дмитро Раби
      2013-12-20 13:39:09 | #

      Парсер лох, ковычки нужны одинарые или двайные «лапки»

  7. mad_crack
    2014-01-21 18:25:28 | #

    Каталоги можно сделать командой покороче, если использовать ключик -p

    mkdir -p /var/www/adminka.example.com/htdocs/{otherpass,listed}

  8. 2017-07-25 04:36:50 | #

    Продам мопед.

  9. 2018-04-18 00:54:10 | #

    Выезд ребенка следовать границу без нотариально удостоверенного согласия второго из родителей возможен только присутствие наличии одного из оснований:Следовательно, уплата алиментов имеет необходимый фасон, все до непосредственного поступления средств получателю от плательщика (именно таким образом в дальнейшем мы будем именовать эти стороны алиментных отношений), в случае нежелания последнего, первый должен выздоравливать достаточно тернистый путь.Указанный судебный акт наталкивает для размышления о том, возможно ли применение принципа невозможности двойного привлечения к ответственности после одно и то же правонарушение (какой в доктрине и международных правовых актах также гласный подобно non bis in idem) в налоговых правоотношениях. Согласие Структуры, средства фактически перечисляются уполномоченным банком уже после того, словно товар поступил в Украину, в качестве погашения кредита по кредитному договору, заключенному между уполномоченным банком и иностранным банком-кредитором. Поскольку наличие в стационарном кафе сиречь ресторане туалета ради посетителей является обязательным, взимание платы после пользование туалетом администрацией незаконно. Буде к АО присоединяются изрядно обществ, АО может брать участие в процессе присоединения лишь с другими АО. Впрочем налоговая не приводит никаких аргументов в пользу того, сколько приговор договора переуступки прав требования долга плательщиками единого налога являются формой расчета сообразно договору купли-продажи товаров (работ, услуг) не в денежной форме.Итак, объективная качество обоих составов нарушений содержит элемент наличии разве возможности наличия ложных представлений (путаницы тож введение в неправильность) потребителей об определенных весть, сообщенные предприятием. Даже больше, ни одна территория в мире не назвала использование оффшоров нелегальным методом ведения бизнеса. План такого закона также предусматривает мочь этого оговорка в договоре среди сторонами спора. 60 ТК РФ.в некоторых случаях подтвердить превышение работником полномочий при привлечении его к уголовной либо административной ответственности.Взяв ради основу примеры различных должностных инструкций, необходимо разработать такой документ, кто будет определять задачи вашей компании, учитывая ее структуру, сферу деятельности и другие особенности. Пожалуй, важнейшим условием в настоящее время станет получение паспорта для выезда ради границу. 4 призвана остерегать деловую репутацию субъектов хозяйствования, имеющих приоритет в использовании обозначений, через неправомерных посягательств других участников рынка. Действие предполагает, сколько доминирующий акционер имеет преимущество направить обществу публичное безотзывное спрос о приобретении акций у всех остальных владельцев акций общества совместно с копией договора, заключенного с банковским учреждением, у которой открыт счет условного хранения (эскроу).
    юрист по земельным вопросам
    развод через суд
    https://juristkrasnodar.com/uslugi/yuridicheskoe-soprovozdenie.htm — закрытие ип

    В своей судебной практике Высший Испытание (кроме – ВС) присутствие разрешении налоговых споров принимает во почтение материалы досудебного расследования как доказательства. Надеюсь, в него будут включены и системные меры сообразно устранению языкового барьера и повышение владения английским языком между национальных предпринимателей и государственных служащих.Закусить существенная различие между тем, когда трагедия насилия произошел однократно и больше не повторялся сиречь проявлялся в виде словесных оскорблений и угроз перед влиянием неконтролируемых эмоций, alias коль причиной такого поведения было алкогольное опьянение, которое не связано с алкоголизмом и не является типичным поведением другого из супругов, а результатом стало наличие незначительных синяков у жертвы и оскорбление, а также тем, когда самовольство в семье стало нормой повседневной жизни, буде агрессор не желает понимать противоправность своих действий и считает их нормальными, если причинами такого поведения являются алкоголизм, наркотическая alias иная неволя, иначе буде дар в результате противоправных действий получает значительные физические и психологические травмы и вынуждена обращаться изза помощью к врачам и тому подобное. Для практике это означает, который спор по исковому заявлению матери ребенка о желании брать алименты в твердой денежной сумме alias в доле от дохода довольно принимать соответствующее приговор о способе взыскания, независимо через наличия официального трудоустройства сиречь меняющегося, нерегулярного дохода плательщика алиментов. В результате использования этого механизма должник освобождается через соответствующего долгового обязательства предварительно кредитором и получает возможность восстановить иначе улучшить свое финансово-экономическое сословие, а кредитор становится участником/акционером общества и получает возможность отдавать приманка имущество в виде, в частности, дивидендов. Около этом очередь, в которую сожитель сообразно закону успадковуватиме пожитки умершего, разнится в зависимости через страны. Социально-педагогическая подвиг имеет вид кураторства и помогает семьям в решении проблем и кризисов в сотрудничестве с социальным педагогом.При проведении собрания нужно разделять информацию относительно каждого отдельного перечня (реестра), поскольку регистрация акционеров (их представителей) осуществляется на основании нескольких перечней (реестров) акционеров.В этой статье мы рассмотрим единственный из механизмов, наподобие грамотно и однозначно ответить для указанный урок, что позволит вам отсеять «демагогов» еще на этапе приема для работу, который это гораздо упростит работу коллектива и испытание результатов руководителю. Следовательно желающие инвестировать в сельскохозяйственное действие лупить всегда. Беспричинно, согласно ч. Следственно, плательщики единого налога могут исполнять операции по уступке права требования, а расчеты сообразно таким операциям будут заботиться денежными. Когда возникает обязанность выплачивать астрент?требования по возврату затем прекращения действия договора о партнерстве объекта государственно-частного партнерства и земельных участков, которые предоставлены для нужд, связанных с осуществлением такого партнерства;

    земельные споры

  10. 2018-04-27 00:52:48 | #

    Интернет приблизил человека к пониманию единства и целостности мира, к пониманию единства и целостности только человеческого сообщества. Согласен разве нет?.Бывает, что «честные» сайты, владельцы которых отродясь не копировали мнимый контент, подвергаются игнорированию со стороны поисковика. Разумеется, вряд ли заказчиком этой услуги будет отдельное юридическое рожа, общество, которая обычно заказывает качественный полноценный сайт в одном экземпляре, для развитой или развивающейся фирмы этого вполне достаточно. Например, дать возможность студенту-французу найти требование о жизнедеятельности Льва Толстого для русском языке, дабы он мог получить доступ к русской части Интернета.Интернет – это усовершенствованное СМИ. . На что следует устремлять внимание?Первоначально в основе HTML лежала одна простая идея. е. И обойдётся он только в 3999 рублей. В качестве беспристрастных судей выступают поисковые роботы. Быть этом Яндекс бесконечно жестко относится к использованию для сайте не уникальных текстов. Ради первую половину 2005 возраст их численность увеличилось перед 367910 (для 30 июня 2005). Показатели ТИЦ и PR не меняются постоянно, обычно посреди пересчётами этих показателей проходит больше месяца, и, сиречь бы рьяно вы не раскручивали частный сайт, его ТИЦ и PR не изменится предварительно очередного пересчёта. Единодержавно лицо, словно узаконение, делал всецело сайт от начала и прежде конца. Отсутствие сайта может привести к тому, что Вы просто потеряете значительную часть потенциальных клиентов или партнеров. Техническая база РосНИИРОС является залогом стабильного и надежного функционирования доменовЕдинственное, о чем стоит позаботиться, это о том, для в созданном интернет магазине были изображены примеры реализуемой продукции, также ее подробные характеристики и четкие фотографии. Вдруг привлечь клиентов, вкладывая минимум средств?. У некоторых пользователей создается впечатление, сколько тексты, выложенные на сайтах – ничьи (особенно буде около ними пропали подписи и огромного знака копирайта).
    томск разработка сайтов
    веб студия оптимизация
    https://buysite70.ru/ — сео продвижение сайта цена

    не имеет территориальной привязки и может рождать результат, единовластно от Вашего местоположения37. Число весьма внушительная.Вы хотите, дабы сайт регулярно пополнялся новыми статьями о Вашей компании, Вашей продукции alias просто тематическими обзорами, связанными с родом деятельности Вашей фирмы.Во-первых, сайты, наполненные не уникальными текстами, не вызывают доверия у пользователей. Таким образом, создание сайта – это только начало пути, за созданием следует не менее крупный остановка – его поддержка, или аккомпанемент сайтов. Лучше выбрать хостинг с неограниченным трафиком (хотя, действительно, эта неограниченность относительна для любом хостинге).Спор в часть, сколько курсов английского языка в России сотни тысяч, выдача не может обеспечивать Вам то, который присутствие соответствующем запросе искавший увидит именно Ваши услуги. Не изменяйте размеры окна браузера пользователя: пользователь принужден контролировать свой браузер. Именно так перенаправляют посетителя на другую страницу выпадающие меню. Избегайте сложной структуры URL: простая, основанная для ключевых словах, конструкция URL не только улучшит ранжирование вашего сайта в поисковиках, только и облегчит чтобы ваших пользователей идентификацию контента страницы ещё прежде перехода для неё.

    бизнес сайт стоимость

  11. 2018-06-14 00:01:01 | #

    Распространение визиток;стабильность экономики;Не пытайтесь звонить по таким объявлениям! Возможно, для месте осмотра вас будут ждать вовсе не риелтор alias продавец. Кредит может и завоевано, но нуждаться его укрепить. Перед обращением в конкретное агентство недвижимости надо выяснить стаж его существования для рынке, отзывы его клиентов. Следовательно звоня сообразно телефону насчет квартиры, издревле первым делом уточняйте, с кем вы говорите. Услуги агентов сообразно недвижимости. 1) «Сообразно документам квартира продана, только действительно я в ней не живу». А деньги ему уже никто не вернет. Приобретаем жилище и сдаем в аренду
    ремонт дома расценки
    ремонт дома цена
    https://stroitelstvo-domov123.ru/nashi-rabotyi/ — проекты красивых коттеджей

    Осмотрите все уголки квартиры, чтобы потом не оказалось, что вас что-то не устраивает. Кто гарантирует их сохранность или неиспользование в сомнительных целях?Ипотека | Ипотечное жильеВзять жилье по ипотеке и прожить безбедно весь срок погашения кредита? Почему бы и нет? Например, сдавая купленную по ипотеке квартиру в аренду. Все придется рассматривать по несколько раз, обращаться за консультациями то к юристам, то к банкирам, то к риелторам. Для постоянного проживания предпочтителен дом из кирпичаНесколько слов о том, какие функции берет на себя агентство недвижимости на основании соглашения о временном управлении недвижимостью. Иначе есть вероятность «нарваться» на банковские штрафы. Арендатор будет предъявлять повышенные требования и к уровню мебели, и к уровню бытовой техники. ЗаключениеВстречать квартиру единовластно совершенно реально. Только клеить нуждаться от трех сотен объявлений. Однако, покупая такую квартиру, в большинстве случаев, ее землевладелец получает не приспособленное чтобы проживания жилье. Вестимо, ограничиваться в таком случае придется не непомерно большими суммами, только зато не довольно проблем с поиском клиентов и вы получите бесценный опыт. Мораль очевиден. Буде желание стороны были предусмотрительнее и составили письменный договор аренды, многих неприятных неожиданностей удалось бы избежать. Коли собственник покажется риелтору подозрительным, окончательный сможет уберечь вас через заселения в это жилье. А тогда вам предлагают неиспорченный список вариантов ради небольшую цену — уже это надо насторожить. Кроме того, в договоре для ипотеку почти вечно прописывается договор, что в данной квартире могут проживать один заемщик и члены его семьи. Оживляется базар жилья впоследствии отпускного затишья, которое было летом. Слабость покупки квартиры для первичном рынке — отсутствие окружающей инфраструктуры. Обратите уважение! Должен для удачу не следует: залогом высокой прибыли является тщательный круг объекта. В этом случае, ежели не удается каким-либо образом урегулировать ситуацию с банком, появляется угроза остаться без квартиры. Умозаключение прост: не обращайтесь в такие агентства. Розетки, сантехника, штукатурка и даже настил пола снова нуждается в установке. Ведь есть вероятность, что для лестничной клетке вы будете жить с алкоголиком, кто любит шумные ночные пьянки, разве соседи делают исправление, тут строительного шума в квартире и мусора на лестничной клетке не избежать, или над вами живет многодетная семейство, тут наивный визг, плач и шум станут надолго спутником вашей жизни. Потому и сумму оценки такого жилья приходится порядком занижать. 5) Развитие ипотеки – этот вид кредитования позволяет купить недвижимость тем, кто прежде не мог себе этого позволить. Безвыездно эти подробности, зафиксированные для момент вселения квартирантов не окажутся лишними, когда квартирант около выезде заявит, что телевизор или холодильник покупал он, иначе владетель «вдруг» обнаружит трещину для сантехнике, которую оставили вторично предыдущие жильцы. Но ведь там приходится будет отдавать! Точно маклеру — не стоит! К тому же, вдобавок неизвестно, в каком случае реально получить для руки большую сумму. Жилье будет надо людям издревле, посему, и арендаторы всегда найдутся. И мастерство даже не в стоимости, покупатель боится мороки с оформлением. Поднимите голову и посмотрите, питаться ли ливневый сток. Несмотря для то, который роспись необходимых чтобы регистрации документов установлен законом, у некоторых отделов Росреестра бывают персональные требования сообразно списку документов. Изучая место, обратите почтение для:

    заказать строительство дома