Как да си направим вратичка за Linux, BSD и MacOS

Sposobov стъпят на пазара на нарушена тегло на машината. От най-баналните и лесно откриваеми (добавете се към потребителската база) до сложни модули на ядрото, които прилагат обратна черупка на отдалечената машина. Но сред тях има много прост за прилагане и доста потаен начин, който е известен с изненада няколко души. Тази модификация на модул РАМ за удостоверяване, koto.puyu използваме всички съвременни UNIX-система.

Как да си направим вратичка за Linux, BSD и MacOS

Какво е PAM

Pluggable Authentication Modules (за включване Authentication Modules, PAM) - набор от API, можете да приложат механизми за удостоверяване в различни приложения.

Преди появата на ПАМ, за изпълнение на удостоверяване, например, с помощта на ключови карти, разработчиците трябва да направят кода, за да подкрепи тези същите ключови карти във всеки компонент на системата отговаря за удостоверяване на потребителя. Това е да се доразвие и е трябвало да възстанови на помощната програма за вход, за SSHD, както и всеки друг софтуер, който planirovalos добавите подобна функционалност.

С появата на PAM ситуация е много по-просто. Сега, за да добавите към системата уникалната си протокол за удостоверяване samopisny достатъчно, за да го реализира в рамките на един модул PAM. И всички инструменти и приложения, които могат да се справят с на ПАМ, уловени него и могат да бъдат използвани за идентификация на потребителя.

На практика, това изглежда така: вход полезност се отнася до PAM, която извършва всички необходими проверки, които използват тези модули в конфигурационния файл и връща резултата обратно към акаунта си полезност. Удобен е, нали? Все пак, това podhod съдържа функции, които можем да използваме, за да се определи системата.

Трябва да се направи малка резервация. Има три основни реализация на PAM:

  • Linux-PAM - PAM основната реализация на всеки Linux-система;
  • OpenPAM - използвани в BSD-системи и MacOS;
  • JPam - изпълнение PAM за Java-базирани приложения.

Съсредоточете се върху някои изпълнение konkretnoy, ние няма. Базовата функционалност е същата навсякъде.

Как да си направим вратичка за Linux, BSD и MacOS

Аспекти фиксиращи в * никс използване PAM

PAM конфигурация за всяко приложение можете да намерите в /etc/pam.d директория (Linux) или във файла /etc/pam.conf. Примерен конфигурационен файл за помощната програма за влизане в MacOS:

Нека да видим как се случва магията тук.

конфигурационен файл се описва правилата за проверка, които трябва да бъдат изпълнени за успешно удостоверяване на потребителя или да извършват други действия (промяна на пароли, за подготовка на потребителска среда). Всеки ред на конфигурационния файл съдържа една Правилото. Проверки се извършват по ред.

От ляво на дясно: вида на модула, control_flag. име на модула. За нас на първо място на модул тип интерес за упълномощаване, тези модули са отговорни за удостоверяване. Control_flag - този модул собственост. То може да бъде:

  • необходимата (необходимо) - Ако модулът е успешен, останалата част от веригата и искането е даденост. Ако модулът връща отрицателен отговор, искането се отхвърля незабавно и всички други проверки са направени;
  • изисква (задължително) - просто като предпоставка: ако отговорът е положителен, останалата част от одитите на веригата. Единствената разлика е, че в случай на отрицателен отговор проверки на веригата продължава да работи, обаче, той отхвърля искането;
  • достатъчни (достатъчно) - удовлетворява искането за такси, в случай, че нито една от друга по-рано проведени одити на веригата се провали. Ако ECLI натоварване модул е ​​отрицателна, в резултат се игнорира и работи чрез верига от проверки на;
  • по избор (neobyazatelny) - модул се изпълнява, но резултатът се игнорира.

Писане вашия собствен модул-вратичка

PAM ни позволява да свържете своя собствена идентификация модули. Ето защо, ние можем да създадем модул с "магия" паролата и да се гарантира, че системата се приема като стандартен потребителски пароли, както и нашите собствени. В е вписано случай на неправилна парола, ще видим, че се очаква удостоверяване грешка. Не е лош вариант.

Така че, кодът (не забравяйте да се замени с магичен паролата на вашия "магия" парола)

В някои Linux-система настройките за удостоверяване могат да бъдат доставени в множество файлове: чести удостоверяване е, общо-парола, обща сесия, а след това се свързват с конфигурационните файлове на специфични инструменти за @include. трябва да се разглежда този въпрос.

Ние изграждаме вратичка в съществуваща модул

Чрез редактиране на довереник на ПАМ, бихте могли да видите pam_unix.so модул. Този модул е ​​отговорен за удостоверяване на потребителите с pomoschyu стандарт за пароли за бази данни UNIX-базирани системи / и т.н. / ако съществува. Той се използва от много услуги, включително и СУ, вход, SSHD, както и други програми (например, SecureFTPd).

Тъй като PAM - тя все още е с отворен код и ние имаме достъп до изходния код на двата демона и неговите стандартни компоненти, можем да вградите вратичка право в модула.

За да се направят необходимите промени, изтеглите изходния код на PAM:

Как да си направим вратичка за Linux, BSD и MacOS
Съберете паролите на потребителите

Разбираемо е, че всички по-горе продукти са най-добрият начин да поддържате възможно най-дълго - подмяна pam_unix.so. Промяна на конфигурацията е възможно, но трябва бързо да изгори всеки администратор с глава на раменете си. Същото може да се каже и за зловреден модул.

Но pam_unix.so може да остане по-дълго. Но не толкова, колкото бихте искали. Ако администраторът използва sictemy система за мониторинг на целостта на файла и поне от време на време проверява хеш на критичните файлове и конфигурационни файлове, тя бързо zapodozpit погрешно. Да, и при надграждане вашия пакет PAM модул, ще го цени презаписани.

[Общо гласове: 13 средна стойност: 3.7 / 5]

Можете също така да се интересуват от:

Virus за Linux. Да се ​​научим да пишете код черупка.

навигация в публикациите