openssh加固

很多場(chǎng)合,我們不得不在公網(wǎng)開(kāi)啟ssh 22端口,以CentOS6為例,下面的幾個(gè)辦法可以加固ssh連接

成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)興賓,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220

1、限制密碼嘗試次數(shù)(denyhosts)

yum install denyhosts --enablerepo=epel
chkconfig denyhosts on
/etc/init.d/denyhosts start

2、除掉密碼認(rèn)證,采用ssh密鑰登陸

修改/etc/ssh/sshd_config

PasswordAuthentication no

3、禁止root登陸

修改 /etc/ssh/sshd_config

PermitRootLogin no

4、限制連接頻率

/sbin/iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name ssh --rsource
/sbin/iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent ! --rcheck --seconds 60 --hitcount 2 --name ssh --rsource -j ACCEPT

也可以利用iptables recent模塊搞另類(lèi)一點(diǎn)的策略,默認(rèn)關(guān)閉ssh端口,用ping來(lái)解鎖。

iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -j LOG --log-prefix "SSHOPEN: "
#記錄日志,前綴SSHOPEN:

iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -m recent --set --name sshopen --rsource -j ACCEPT
#linux默認(rèn)ping包一般為56字節(jié),加上IP頭20字節(jié),ICMP頭部8字節(jié),共84字節(jié)。我們這里指定78字節(jié),回頭用特定大小的ping包來(lái)解鎖。

iptables -A INPUT -p tcp --dport 22 --syn -m recent --rcheck --seconds 15 --name sshopen --rsource -j ACCEPT
#符合sshopen的IP才會(huì)放行22端口

ping -s 50 host #Linux下解鎖
ping -l 50 host #Windows下解鎖

5、限制IP來(lái)源

這個(gè)稍微復(fù)雜一點(diǎn)點(diǎn),采用geoip數(shù)據(jù)庫(kù)來(lái)識(shí)別IP來(lái)源,比如只允許中國(guó)的IP訪問(wèn)

寫(xiě)個(gè)腳本

#!/bin/bash
# UPPERCASE space-separated country codes to ACCEPT
ALLOW_COUNTRIES="CN"

if [ $# -ne 1 ]; then
  echo "Usage:  `basename $0` <ip>" 1>&2
  exit 0 # return true in case of config issue
fi

COUNTRY=`/usr/bin/geoiplookup $1 | awk -F ": " '{ print $2 }' | awk -F "," '{ print $1 }' | head -n 1`

[[ $COUNTRY = "IP Address not found" || $ALLOW_COUNTRIES =~ $COUNTRY ]] && RESPONSE="ALLOW" || RESPONSE="DENY"

if [ $RESPONSE = "ALLOW" ]then
  exit 0
else
  logger "$RESPONSE sshd connection from $1 ($COUNTRY)"
  exit 1
fi

利用tcp_wrapper調(diào)用那個(gè)腳本

chmod 775 /usr/bin/sshfilter.sh
echo "sshd: ALL" >>/etc/hosts.deny
echo "sshd: 10.0.0.0/8" >>/etc/hosts.allow
echo "sshd: ALL: aclexec /usr/bin/sshfilter.sh %a" >>/etc/hosts.allow

6、設(shè)置超時(shí)

ssh session 超時(shí)應(yīng)該屬于安全范疇,可以防止人離開(kāi)后,終端被他人利用。

這里設(shè)置為1800秒(30分鐘)

方法一、利用環(huán)境變量TMOUT

echo "export TMOUT=1800" >/etc/profile.d/timeout.sh
source /etc/profile.d/timeout.sh

方法二、修改sshd_config

ClientAliveInterval 60
ClientAliveCountMax 30

參考文章

http://www.axllent.org/docs/view/ssh-geoip/

http://www.haiyun.me/archives/iptables-recent.html

http://www.cnblogs.com/fhefh/archive/2011/10/19/2217954.html

分享題目:openssh加固
標(biāo)題鏈接:http://muchs.cn/article48/ijoiep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序App開(kāi)發(fā)、品牌網(wǎng)站建設(shè)網(wǎng)站導(dǎo)航、Google、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司