為Akamai云平臺上部署的資源配置2FA跳板機-上
為重要賬戶啟用2FA,這幾乎已經(jīng)成為保護賬戶和數(shù)據(jù)安全的一種標準做法。無論登錄常見應用或服務,或是訪問企業(yè)內(nèi)部資源,時不時都會需要進行2FA驗證。那么當你在Akamai Connected Cloud云平臺中部署了各類資源(云計算、云存儲、SaaS、Docker……),需要進行管理時,該如何為訪問過程啟用2FA?
延伸閱讀,點擊鏈接了解 Akamai Cloud Computing
首先定義“跳板機”是什么
跳板機就是一臺或一組服務器,其唯一目的是為基礎(chǔ)設(shè)施的不同部分提供一個單一入口。
典型的配置是一臺加固的Unix(或類Unix)機器,配置有SSH和本地防火墻。管理員從個人計算機以SSH方式連接到跳板機,隨后通過SSH轉(zhuǎn)發(fā)來訪問目標機器,即可連接到DMZ中的目標機器。
使用SSH端口轉(zhuǎn)發(fā)或基于SSH的隧道連接到目標主機,可以使用不安全協(xié)議管理服務器,而無需創(chuàng)建特殊的防火墻規(guī)則或在內(nèi)部網(wǎng)絡(luò)上暴露流量。
用到的軟件組件
- 用于服務器和用戶管理的Cockpit Web界面
- Google Authenticator插件
- Yubikey(可選) – 本文未涉及
- Termius作為SSH客戶端(任何可支持2FA的SSH客戶端均可使用)
用到的Akamai Connected Cloud Compute組件
- 1個充當跳板機的Nanode
- 一些已部署的服務器或服務。本例中將以MySQL數(shù)據(jù)庫為例。
- Linode Firewall
- VLAN(可選)
還需要準備什么?
- 裝有Google Authenticator應用的手機
- SSH公鑰和私鑰
如何使用?
簡而言之,這種方法實際上就是在為SSH通道啟用2FA。使用這種方法的好處是:可以在幾乎任何使用TCP協(xié)議通信的服務之間創(chuàng)建隧道。網(wǎng)站?可以!數(shù)據(jù)庫服務器?沒問題!SSH協(xié)議?支持!Redis?小意思!……這樣就好理解了吧。
Cockpit又是什么?Cockpit是一個基于Web的服務器圖形界面,適用于所有人,尤其適合:
- Linux新手(包括Windows管理員)
- 熟悉Linux并希望以簡單的圖形方式管理服務器的用戶
- 主要使用其他工具但希望了解單個系統(tǒng)概況的專家管理員
如何設(shè)置運行?
最簡單的方法是使用如下的StackScript。
#!/bin/bash
#<UDF name="HOSTNAME" label="The hostname for the new Linode.">
# HOSTNAME=
#<UDF name="MANAGEMENTUSER" label="Cockpit Management user." default="CockpitMGR">
# MANAGEMENTUSER=
#<UDF name="MANAGEMENTUSERPASSWORD" label="Cockpit management user password." default="ReplaceMeN0w!">
# MANAGEMENTUSERPASSWORD=
yum update -y
yum install cockpit nano wget cockpit-dashboard cockpit-packagekit bind-utils -y
systemctl enable --now cockpit.socket
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh epel-release-latest-7.noarch.rpm
yum install google-authenticator -y
#Create user
pass=$(echo $MANAGEMENTUSERPASSWORD | openssl passwd -crypt -stdin)
useradd -m -p $pass $MANAGEMENTUSER
usermod -aG wheel $MANAGEMENTUSER
#Configure hostname SSH & PAM modules
hostnamectl set-hostname $HOSTNAME
sed -i '/preserve_hostname: false/c\preserve_hostname: true' /etc/cloud/cloud.cfg
sed -i '2s/^/auth required pam_google_authenticator.so\n/' /etc/pam.d/sshd
sed -i '2s/^/auth [success=done default=ignore] pam_access.so accessfile=/etc/security/access-local.conf\n/' /etc/pam.d/sshd
sed -i '/auth substack password-auth/c\#auth substack password-auth' /etc/pam.d/sshd
echo 'auth required pam_google_authenticator.so nullok' >> /etc/pam.d/cockpit
echo 'idmsync ALL=(ALL) NOPASSWD: ALL' | sudo EDITOR='tee -a' visudo
echo 'AuthenticationMethods publickey,keyboard-interactive' >> /etc/ssh/sshd_config
sed -i '/ChallengeResponseAuthentication no/c\ChallengeResponseAuthentication yes' /etc/ssh/sshd_config
sed -i '/SELINUX=enforcing/c\SELINUX=disabled' /etc/selinux/config
service sshd restart
#Branding stuff
#Other stuff
systemctl start NetworkManager.service
systemctl start cockpit
systemctl enable NetworkManager.service
firewall-cmd --znotallow=public --add-port=9090/tcp --permanent
firewall-cmd --reload
shutdown -r now
系統(tǒng)會提示輸入Cockpit管理用戶名、密碼和服務器根密碼。
使用下面的腳本在Cloud Manager中新建一個StackScript,選擇Centos 7作為目標鏡像,為其命名,保存并按下“Deploy a new Linode”按鈕。
稍等片刻,訪問這個URL:https://IP_OF_YOUR_LINODE:9090,我們將看到一個Cockpit登錄界面,類似下圖所示。
這樣就好了!
需要再次提醒大家注意,這種方式不僅操作簡單,而且適用性非常廣泛,無論云計算、云存儲、數(shù)據(jù)庫、Docker……你在Akamai Connected Cloud中部署的任何資源,只要使用TCP協(xié)議進行通信,就支持用這種方式啟用2FA!
在下篇文章中,我們將介紹如何創(chuàng)建用戶以及進行2FA身份驗證的過程。敬請期待。
—————————————————————————————————————————————————
如您所在的企業(yè)也在考慮采購云服務或進行云遷移,
點擊鏈接了解Akamai Linode的解決方案