2021-03-15 分類: 網(wǎng)站建設(shè)
SSH與OpenSSH
PermitRootLogin no
2、僅使用 SSH Protocol 2
3、禁用空密碼
1 |
PermitEmptyPasswords no |
4、用戶登錄控制
1 2 |
AllowUsers user1@host1 user1@!* *@* DenyUsers user2 |
5、配置 Idle Log Out Timeout 間隔
1 2 |
ClientAliveInterval 300 ClientAliveCountMax 0 |
6、禁用基于主機(jī)的身份驗(yàn)證
1 |
HostbasedAuthentication no |
7、禁用用戶的 .rhosts 文件
1 |
IgnoreRhosts yes |
8、強(qiáng)密碼策略(生成14位隨機(jī)字符密碼)
1 |
</dev/urandom tr -dc '!@#$%^&*()-+=0-9a-zA-Z' | head -c14; echo "" |
9、pam_chroot
通過ssh遠(yuǎn)程登錄的用戶將被限制在jail環(huán)境中。
10、訪問控制
1 2 |
tcpwrapper(/etc/hosts.allow,/etc/hosts.deny) iptables(限制源IP等) |
二、攻防對抗
一旦攻擊者獲取了相關(guān)權(quán)限,就可能安裝openssh后門、或者隱身登錄等。接下來我們看看如何讓攻擊者無所遁形。
隱身登錄(登錄后,不能通過w、who查看到)
通過ssh –T來連接,但-T相當(dāng)于notty,ctrl+C會(huì)中斷會(huì)話;
另外,大家都知道,w查看時(shí)是通過utmp二進(jìn)制log,如果攻擊者在獲取權(quán)限后,只要修改了utmp,就可以達(dá)到隱身效果,管理員再登錄上來的時(shí)候,通過w、who就看不到已經(jīng)登錄的攻擊者了,如下所示。
當(dāng)然,這樣操作會(huì)造成整個(gè)utmp為空,如果是在管理員登錄之后再操作的話,還是會(huì)發(fā)現(xiàn)異常的。
同時(shí)也要處理下wtmp,否則還是會(huì)被審計(jì)到。
那么如何快遞排查呢,我們可以通過ps命令查看進(jìn)程,如下圖所示。
我們可以看到當(dāng)攻擊者處理掉自己的記錄后,管理員雖然通過w、who看不到,但是進(jìn)程中卻存在著攻擊者登錄申請的TTY。
以上只是簡單的隱藏,通常情況下,攻擊者獲取權(quán)限后,會(huì)安裝openssh后門,成功運(yùn)行后門后,攻擊者通過后門登錄將不記錄任何日志,正常用戶登錄該主機(jī)或者通過該主機(jī)通過ssh連接其他主機(jī)時(shí),都會(huì)被后門記錄到賬號密碼。
這里我們介紹如何利用操作系統(tǒng)自身的工具手工快速查找后門,主要用到strace、strings、grep。
通過openssh后門功能中會(huì)記錄正常用戶登錄賬號密碼,因此猜測會(huì)用到open系統(tǒng)調(diào)用,只要在登錄是用strace跟蹤sshd打開的系統(tǒng)調(diào)用,然后過濾open,就應(yīng)該能獲取到記錄密碼的文件及路徑。