openssh 加固
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,很多场合,我们不得不在公网开启ssh 22端口,以CentOS6为例,下面的几个办法可以加固ssh连接1、限制密码尝试次数(denyhosts)yum install denyhosts --enab
千家信息网最后更新 2026年11月01日openssh 加固
很多场合,我们不得不在公网开启ssh 22端口,以CentOS6为例,下面的几个办法可以加固ssh连接
1、限制密码尝试次数(denyhosts)
yum install denyhosts --enablerepo=epelchkconfig denyhosts on/etc/init.d/denyhosts start
2、除掉密码认证,采用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模块搞另类一点的策略,默认关闭ssh端口,用ping来解锁。
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默认ping包一般为56字节,加上IP头20字节,ICMP头部8字节,共84字节。我们这里指定78字节,回头用特定大小的ping包来解锁。iptables -A INPUT -p tcp --dport 22 --syn -m recent --rcheck --seconds 15 --name sshopen --rsource -j ACCEPT#符合sshopen的IP才会放行22端口ping -s 50 host #Linux下解锁ping -l 50 host #Windows下解锁
5、限制IP来源
这个稍微复杂一点点,采用geoip数据库来识别IP来源,比如只允许中国的IP访问
写个脚本
#!/bin/bash# UPPERCASE space-separated country codes to ACCEPTALLOW_COUNTRIES="CN"if [ $# -ne 1 ]; then echo "Usage: `basename $0`" 1>&2 exit 0 # return true in case of config issuefiCOUNTRY=`/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 0else logger "$RESPONSE sshd connection from $1 ($COUNTRY)" exit 1fi
利用tcp_wrapper调用那个脚本
chmod 775 /usr/bin/sshfilter.shecho "sshd: ALL" >>/etc/hosts.denyecho "sshd: 10.0.0.0/8" >>/etc/hosts.allowecho "sshd: ALL: aclexec /usr/bin/sshfilter.sh %a" >>/etc/hosts.allow
6、设置超时
ssh session 超时应该属于安全范畴,可以防止人离开后,终端被他人利用。
这里设置为1800秒(30分钟)
方法一、利用环境变量TMOUT
echo "export TMOUT=1800" >/etc/profile.d/timeout.shsource /etc/profile.d/timeout.sh
方法二、修改sshd_config
ClientAliveInterval 60ClientAliveCountMax 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
字节
端口
限制
密码
方法
来源
脚本
登陆
加固
复杂
安全
前缀
办法
变量
另类
场合
大小
头部
密钥
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司简介
互联网科技公司华为
互联网科技财经
狮子座互联网科技有限公司
唐信互联网科技 大连
一五八零互联网科技
青海省互联网新科技
开启互联网科技时代小说
玖二柒互联网科技公司待遇
成都互联网科技公司100强
中化能源互联网科技招聘
互联网校园科技培训
荆州市昕露互联网络科技有限公司
996高科技互联网公司
互联网第三次科技革命特征
启辰互联网科技
九思连强互联网电子科技有限公司
广西科技产业互联网是什么
福仕德教育科技互联网
互联网科技和医药行业
中关村互联网 科技集团
北京互联网科技公司
金融科技与互联网金融
互联网科技公司发展
狮子座互联网科技
互联网科技缩写
黑科技 体验场景 互联网大会
互联网界的黑科技
长沙渺峰互联网科技有限公司
恒生科技互联网指数十大成分股