この状況から抜け出す方法は、中間認証サーバーかもしれません。 同じ記事で、 オープンソースでソリューション(Isolate)をレイアウトすることについて既に書いています-Google Authenticatorを介したワンタイムキーを使用した2要素認証で認証サーバーをセットアップする手順。
Isolateの展開から始めましょう。これには、CentOS 7、Ubuntu 16.04、またはDebian 8マシンが必要です。
1. Isolateをインストールするためのシステムを準備します。
Centos:
yum install ansible git
Ubuntu:
apt update; apt install git python-pip pip install ansible
2. Isolate自体をダウンロードします。
git clone https://github.com/itsumma/isolate.git
3.同じマシンでansibleを実行するには、ビューに表示します(リモートマシン、サーバー、またはデスクトップLinux / MacOSから実行するか、Isolateを展開するマシンで直接実行できます)。
[main] localhost ansible_connection=local
4。
ansible-playbook -i isolate/ansible/hosts.ini isolate/ansible/main.yml
完了を待っています。 Ubuntuがインストール済みパッケージ(APT)のアップグレードのステップで誓う場合、以下を行います:
apt dist-upgrade
5. / etc / bashrc(Centos)または/etc/bash.bashrc(Ubuntu)を最後に追加します
if [ -f /opt/auth/shared/bash.sh ]; then source /opt/auth/shared/bash.sh; fi
6.マシンを再起動します。 できた!
oauthを使い始める
1. /etc/pam.d/sshd(Centos)の最後に行を追加するか、/ etc / pam.d / common-auth(Ubuntu)に追加します
auth required pam_oath.so usersfile=/etc/oath/users.oath window=20 digits=6
2。
sed -i -e 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/g' /etc/ssh/sshd_config
3. / etc / ssh / sshd_configの最後
Match Group auth AuthenticationMethods keyboard-interactive
4。
systemctl restart sshd
5. oauthを有効にするユーザーを追加します
auth-add-user _
6. TOTPまたはHOTPトークンを生成します。
gen-oath-safe _ totp gen-oath-safe _ hotp
Google認証システムのQRコードを使用してトークンを追加します。
7。
touch /etc/oath/users.oath chmod 0600 /etc/oath/users.oath
8.手順6で取得した行を/etc/oath/users.oathに追加します
9. redisからのパスワードを見る
grep requirepass /etc/redis.conf
/ etc / bashrc(Centos)または/etc/bash.bashrc(Ubuntu)にエントリを追加します
ISOLATE_BACKEND=redis ISOLATE_REDIS_HOST="127.0.0.1"; ISOLATE_REDIS_PORT="6379"; ISOLATE_REDIS_DB=0; ISOLATE_REDIS_PASS=redis_pass; export ISOLATE_REDIS_HOST; export ISOLATE_REDIS_PORT; export ISOLATE_REDIS_PASS; export ISOLATE_REDIS_DB;
サーバーを追加する
二要素認証用の既製のサーバーができたので、独自のサーバーを追加できます。 これを行うには、まずサーバー情報をIsolateに追加し、次にユーザーを作成してターゲットサーバーにキーを配置します。
移動するサーバーを追加します。
auth-add-host --project server-admin --server-name ubuntu --ip 10.0.0.1
sコマンドを使用して、サーバーのリストを表示できます。
サーバーへのユーザーの追加
サーバー10.0.0.1で、ユーザーサポートを作成し、Isolateサーバーの/home/auth/.ssh/id_rsa.pubからそのキーを処方します。
SUPPORT_USER="support" KEY="<YOU KEY HERE>" useradd -m ${SUPPORT_USER} mkdir /home/${SUPPORT_USER}/.ssh echo ${KEY} >> /home/${SUPPORT_USER}/.ssh/authorized_keys chmod 600 /home/${SUPPORT_USER}/.ssh/authorized_keys chmod 700 /home/${SUPPORT_USER}/.ssh/ chown -R ${SUPPORT_USER}:${SUPPORT_USER} /home/${SUPPORT_USER}/.ssh/ echo "${SUPPORT_USER} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Isolateサーバーで、sコマンドを使用して目的のサーバーを検索し、gを使用して特定のサーバーに移動できます。
g ip_ - g 10.0.0.1 g _ - g server-admin ubuntu
ここで、認証サーバーから追加されたすべてのサーバーに移動する必要があります。ワンタイムコードとパスワードを使用して、分離に移動し、目的のサーバーに移動します。 この場合、2要素認証の意味が失われるため、サーバーに直接アクセスしないでください。 まあ、一般的には、ユーザーキーなどを削除します。 :)
いつものように、コメント、追加、そしてもちろん、プールのリクエストは大歓迎です! Githubプロジェクト 。