Linux
CentOS
Ubuntu

Linuxサーバーのユーザー認証の現状を調べてみた

More than 1 year has passed since last update.

Linuxサーバーのユーザー認証を見直そうと、ふと思い立ったので現状を調べてみる。

とはいえ泣く子も黙るような有名ディストリビューションしか調べてない。

CentOS 7

CentOSはこれからSSSDを使う方向の模様。ドキュメントでもSSSD推し々々である。

システムレベルの認証ガイド

nslcdとかnscdとかの記載はない。廃止したいのかもしれない。まぁあれ開発されているのか怪しいしな……。

よって、authconfigでPAMを設定して、あとはsssd.confがあればOK。
まぁ正直pam.dとnslcdとncsdとsshd_configとnsswitch.confと、って多すぎだろ分かりにくすぎてこれもうシステムとして脆弱だろって気分。

sshdの鍵認証設定については、SSSDが代替スクリプトを提供している。これをsshd_configの鍵認証スクリプトに設定すればよい。

AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys

SSSD+LDAP+SSH連携の設定

流石は天下のRedhat様やで。

CHAPTER 53. DEPRECATED FUNCTIONALITY

authconfigは非推奨入りして、authselectというのを使うのがよいらしい。

https://fedoraproject.org/wiki/Changes/Authselect

使い心地は良さそう。

ってか、しれっとopenldap-serverもDeprecated入りしてるんですが、マジですか。でも確かにあれ遅々として開発されてないような気はするよね!サブスリプション買っている人はちゃんとサポートのあるIdMを使えるらしい。389ベースなのかしらん?

Ubuntu 16.04

なにせドキュメントがないので、想像だけれど、Ubuntuは相変わらず古き良きnslcd・nscd兄弟の使用が基本線のようで、SSSDはRedhat系だから宗教上の理由で興味のない振りをしている様子。

なお、そう想像したWikiの最終更新は2013年である。(https://wiki.ubuntu.com/Enterprise)

はっきり言って、実はエンプラ系の仕事やる気ないのでは……。

もう認証とかなんかそういう古い考えはやめよう

と考えるとUbuntuの冷たさは一理ある。

SSHでも二段階認証とかワンタイムとかSSO的なのとか、ナウい未来を考えるとやはりnslcdとnscdでは辛いかなぁ。ってかこいつらまだ開発されているのだろうか……。

基本的にはサーバーレスアーキテクチャを考えるとか?LocalでSAM君飼えるみたいだし、中規模くらいまでならイケる気はするなぁ。
AWS SAM Local(ベータ版) – サーバーレスアプリケーションをローカルに構築してテストする

ログなんか外に飛ばして集約するだろうし、メトリクスも外に飛ば(ryだし、コンテナ時代に至っては壊れても気にしない(暴言)し、もうログイン時のアカウント・パスワードなんて考える時代ではないのかもしれないが、そういうシステムを開発して管理するであろう我々インフラーにはやはりSSHが必要なのだ。