昨日突然看見有人在網上詢問怎麼加固openssh 使用密碼+證書雙重認證,看到了一種解決方法,就是使用open***先登錄上去 再使用openssh證書登錄,我的媽呀,爲了加個密碼還要專門搞個open***,其實如果咱們的現有部署本身就要open***也沒什麼說的,可是如果不需要就多餘了。而且又開了一個***大門!
好像openssh不支持密碼和證書同時認證,要麼證書,要麼密碼隨便哪個成功就好了,不能"且“關係! 怎麼辦呢,考慮了一下有幾個方案:
1,最簡單的方法就是製作key時加上密碼短語,不過這個不方便集中管理!
2,使用以下代碼加固/etc/profile
trap 'echo "Please Ener Your Password!!" ' 1 2 3 9 15 17 18 19 20 24
#這裏是密碼,你可以先md5sum sha512sum加密也是可以的!
mima=123
clear
stty -echo
echo -n "--:"
read key
echo " "
cishu=1
while [ "$key" != "$mima" ]
do
echo -n "--:"
read key
echo " "
cishu=`expr $cishu + 1`
while [ $cishu -gt 10 ]
do
stty echo
#這裏執行退出返回linux登陸狀態
exit 1
done
done
clear
echo "wellcom !! Now time is `date`!"
stty echo
echo " "
把以上代碼加到/etc/profile末尾,不管你是ssh登陸還是直接linux登陸,登陸後還要進行二次登陸在多用戶環境下!單用戶不考慮了!讓***傻眼!!
3,使用tomoyo-mac加固系統,這個強大點可以實現二次密碼認證,或者多個密碼策略,根據輸入的密碼不同實現不同的權限!!實現代碼:
首先建立1個認證腳本 aut1
echo "password" | sha1sum
#!/bin/sh -p hash="c8fed00eb2e87f1cee8e90ebbe870c190ac3848c -" read -r -s -e -p "Password: " password hash_attempt="$(echo "$password" | sha1sum)" sleep 2 if [ "$hash_attempt" = "$hash" ]; then exec $SHELL else echo "Authentication failed" fi
然後設置tomoyo-mac
鎖定/usr/sbin/sshd域到<kernel>下方便管理
initialize_domain /usr/sbin/sshd from any
在/usr/sbin/sshd 產生的 /bin/bash域下設置強制權限,只能執行auth1程序!
file execute /bin/auth1 exec.realpath="/bin/auth1"
鎖定由auth1產生的域/bin/bash的權限,方便集中管理
keep_domain any from <kernel> /usr/sbin/sshd /bin/bash /bin/auth1 /bin/bash
之後就是/usr/sbin/sshd /bin/bash /bin/auth1 /bin/bash 域 進行強制權限控制了!很簡單,不過很靈活,咱們可以使用不同的auth1 auth2 auth3認證 不同的權限集!
好了以上就是對openssh認證加固了,當然了,最新出現的google二維碼認證也是可以的,不過太麻煩了還要手機拍照。費勁!要是google死了,怎麼登陸呢!話說到這裏,還是順便講講openssh安全加固吧:
1,使用sshd_config 限制allowuser 密碼登陸次數 等等安全控制
2,沒有必要不要使用dropbear 相關ssh-serer絕對沒有openssh安全穩定,openbsd出品必屬精品!
3,下載最新穩定版openssh-6.2p1 gcc fstack-protect-all加固,可以順便修改version.h僞裝下,編譯選項爲最小安裝就好了什麼pam utmp tcptrap全部關閉呵呵!
4,使用強大的grsecurity 加固內核,添加溢出保護patch paxctl -PEMRXS sshd!
5,當然是openssh證書+密碼短語登陸了,加上附加的密碼認證 三重認證了!沒必要吧!!!
6,iptables -I INPUT -m time 加上時間控制,併發控制等等!!
7,狠點再加上grsecurty chroot 補丁 加固linux chroot 功能對sshd加固,分區只讀鎖定openssh所在的分區!(只讀鎖定是一個危險的功能,開啓了只有重啓才能更改!)
好了基本上就這些了,以上這些就是從網絡層 密碼認證層 程序溢出層 虛擬沙盒層加固了openssh!希望大家能用的到!