Про распознавание лиц в школах и не только

/*старый текст, просто чтобы не потерять его*/

Почему-то меня сильно задел обсуждаемый в ленте ФБ вопрос о внедренной в китайских школах системе распознавания лиц и китайского Social Score. В комментариях пришли люди, которые внедряли похожую систему в каком-то ВУЗе в РФ, пришло много людей, которые хотели бы такую систему в своих школах для собственных детей. До этого меня задело обсуждение охраны в школе, где люди радовались вышкам с автоматчиками и колючей проволоке по периметру, хотя казалось бы, зона комфорта размером с город или страну гораздо привлекательнее зоны комфорта внутри загородки с охраной или автомобиля. Мне не нравится ЮАР, хотя там Макдональдс автоматчик охраняет, безопасно же!
На сколько я понял их аргументацию pro:

Continue reading “Про распознавание лиц в школах и не только”

Getting back your privacy on the Internet in one simple step

tl&dr: you should not put anything about you on the internet about you don’t want to see on the billboard in the city center.

The privacy on the internet is treated as one of the greatest concerns last year and it would be treated even more next year. There are lots of articles how to harden your smartphone, what to turn off in the Windows 10 or where to store secrets. I think that they’re missing some concepts:

    • The secret itself is something you’re not telling anyone.
    • The best protection you can give the information that compromises you are not having or keeping this information.
    • Some entities you have to trust due to legal reasons, so trust them only on the level you can afford.

Continue reading “Getting back your privacy on the Internet in one simple step”

Перевод Designing an Authentication System: a Dialogue in Four Scenes (часть 2)

Предположим я скопировал аутентификатор и билет пока они пересекали сеть. Мне придётся изменить сетевой адрес моей рабочей станции и моё пользовательское имя. И всё это я должен проделать за пару минут. Это довольно высокие требования. На самом деле я не думаю, что это возможно. Если только … . . .

Continue reading “Перевод Designing an Authentication System: a Dialogue in Four Scenes (часть 2)”

Перевод Designing an Authentication System: a Dialogue in Four Scenes

Надо сохронить, так как этот полезный текст остался только в Веб Архиве.

Copyright 1988, 1997 Массачусетский технологический институт. Все права защищены.

Билл Брант (Bill Bryant), февраль 1988.

Отредактировал и подготовил HTML вариант — Теодор Тсо (Theodore Ts’o), Февраль, 1997. Также добавлено приложение описывающие изменения 5-й версии протокола Kerberos. Continue reading “Перевод Designing an Authentication System: a Dialogue in Four Scenes”


If you have host in the AD with the SSSD then your root user can be any user from the domain. So


would actually give permissions to all users from the “groupname” to become any AD user they want, and if they’re SSH’ng the localhost then, they would have Kerberos ticket as well. It is not actually that evident, but Active Directory is an identity provider, so if you are superuser on the host — you can be AD user on the host.

Debugging IDM

One of the most frequent cases I have is that “sometimes” and “somewhere” user is not getting authenticated. Trying to SSH to the host works for some users not always, “id username” returns errors sometimes — it’s all the same problem in the environment with LDAP replication. It does not actually matter what kind of the LDAP server or domain controller is being used, always check:

    1. Enable debug log on the client. If the client is SSSD, add “debug_level = 9” to the /etc/sssd/sssd.conf and then restart it. Invalidate its cache if possible.
    2. Repeat the test so you would see the error.
    3. Collect the log file from the client. You would see what server it has queried to get the information.
    4. Check server’s log. Most likely there is no requested information on this LDAP instance due to replication issues.

This would help to identify and fix the problem.

Parsing sssd debug log

Lol, hope to add more in furure

grep -v "timed event" |grep -v "timer event"|grep -v "Requesting"|grep -v "SBUS"|grep -v "callback"|grep -v "dispatch"|grep -v "a sysbus message"|grep -v "No sub-attributes for" |grep -v "reusing cached connection" |grep -v "nesting:"|grep -v "sbus_remove_watch"|grep -v "be_client_destructor"|grep -v "sdap_process_result"|grep -v "Comparing LDAP with LDAP" |grep -v "Message type:"|grep -v "unenforced gpo skipped"

Debugging Kerberos

If you need to debug Kerberos, check the time synchronization at the first place. In about 50% cases it is it.

  1. the ntpd (or chrony) should be presented in the process list
  2. they should really be configured correctly
  3. in case of the virtual host crony is preferable, with the ntpd time skew is possible

Really nice crony/ntpd comparative chart: https://chrony.tuxfamily.org/comparison.html , “Summary” section is complete.

E-mail notification on every login

It’s useful sometimes to get notifications on every ssh login that is happen on the server (though, could be used to monitor logins made by other means). First method is based on the /etc/profile, but it should not be used because user can override it with setting own variables if home directory is writable for him. Most convenient is to use PAM, putting in the /etc/pam.d/sshd execution of the script that whould send the mail in the session section:

session optional pam_exec.so seteuid  /usr/local/bin/send_mail.sh

I would not recommend to set “required” here because the fail of the scrip should not be critical. The script just sends notification mail:

if [ "$PAM_TYPE" != "open_session" ]
	exit 0

    echo "User: $PAM_USER"
    echo "User: $PAM_TYPE"
    echo "Remote Host: $PAM_RHOST"
    echo "Service: $PAM_SERVICE"
    echo "TTY: $PAM_TTY"
    echo "Date: `date`"
    echo "Server: `uname -a`"
 } | mail -s "$PAM_SERVICE login on `hostname -s` for account $PAM_USER" admin@example.com

exit 0

Don’t forget to put +x permissions on it with:

chmod +x  /usr/local/bin/send_mail.sh