Аутентифицируйте пользователей через LDAP, использующий nginx

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

> dd if=/dev/zero of=/path/to/ext2.img bs=10M count=10
> losetup /dev/loop0 /path/to/ext2.img
> blockdev --getsz /dev/loop0
204800
> echo "0 204800 linear /dev/loop0 0" | dmsetup create sane_dev
> mke2fs /dev/mapper/sane_dev # ext2 reicht
> mount -t ext2 /dev/mapper/sane_dev /some/where
> dd if=/dev/zero of=/some/where/unreadable_file bs=512 count=4
> hdparm --fibmap /some/where/unreadable_file
/mnt/tmp/unreadable_file:
 filesystem blocksize 1024, begins at LBA 0; assuming 512 byte sectors.
 byte_offset  begin_LBA    end_LBA    sectors
           0       2050       2053          4
> umount /dev/mapper/sane_dev
> dmsetup remove sane_dev
> start_sector=$((204800-2053-1))
> echo $'0 2053 linear /dev/loop0 0\n2053 1 error\n2054 '"${start_sector} linear /dev/loop0 2054" | 
>   dmsetup create error_dev
> mount -t ext2 /dev/mapper/error_dev /some/where
> cat /some/where/unreadable_file # 3rd sector of file is unreadable
cat: /some/where/unreadable_file: Input/output error

Я должен признать, что немного смущен, потому что мне не удалось считать единственные секторы из того файла без ошибки (с dd .. seek=...). Возможно, это - считанная вперед проблема.

5
16.05.2016, 04:51
3 ответа

Для этого вам нужно скачать / клон, компилировать и установить NGINX-AUTH-LDAP

Вы можете загрузить ZIP-файл:

wget https://github.com/kvspb/nginx-auth-ldap/archive/master.zip
unzip master.zip

, затем CD на ваш NGINX Исходная папка и делает:

./configure --add-module=~-/nginx-auth-ldap-master
sudo make install

После этого вы можете настроить Nginx :

http {
  ldap_server test1 {
    url ldap://192.168.0.1:3268/DC=test,DC=local?sAMAccountName?sub?(objectClass=person);
    binddn "TEST\\LDAPUSER";
    binddn_passwd LDAPPASSWORD;
    group_attribute uniquemember;
    group_attribute_is_dn on;
    require valid_user;
  }

  ldap_server test2 {
    url ldap://192.168.0.2:3268/DC=test,DC=local?sAMAccountName?sub?(objectClass=person);
    binddn "TEST\\LDAPUSER";
    binddn_passwd LDAPPASSWORD;
    group_attribute uniquemember;
    group_attribute_is_dn on;
    require valid_user;
  }
}

server {
    listen       8000;
    server_name  localhost;

    auth_ldap "Forbidden";
    auth_ldap_servers test1;
    auth_ldap_servers test2;

    location / {
        root   html;
        index  index.html index.htm;
    }

}

, как указано в документации модулей.

6
27.01.2020, 20:35
Решение

@ xenoterracide является нормальным, если параметр AutoAddDevice включен в ServerLayout вашего xorg.conf . В противном случае (особенно в конфигурациях с несколькими участками X) необходимо вставить строку XkbOptions в раздел InputDevice , описывающий клавиатуру. Например:

Section "InputDevice"
  Identifier  "keyboard-vmware"
  Driver      "evdev"
  Option      "Device" "/dev/input/by-path/platform-i8042-serio-0-event-kbd"
  Option      "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
-121--12522-

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

-121--59385-

Также можно использовать модуль auth _ pam . Например, он был включен в последние два стабильных выпуска Debian. Он поддерживает аутентификацию LDAP (и многое другое) через PAM.

3
27.01.2020, 20:35

Я написал nginx -auth -saslauthd , который связывает nginx с демоном saslauthd и обеспечивает обычную аутентификацию. Демон saslauthd поддерживает как LDAP, так и PAM.

0
17.04.2021, 10:27

Теги

Похожие вопросы