openssh 加固
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,很多场合,我们不得不在公网开启ssh 22端口,以CentOS6为例,下面的几个办法可以加固ssh连接1、限制密码尝试次数(denyhosts)yum install denyhosts --enab
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
vb.net数据库打包
中科院数据库作业
魔兽正式服萨菲隆服务器
南部im即时通讯软件开发
数据库集群负载均衡性
服务器状态异常无法连接数据库
谈谈什么是关系数据库
国家单位用的什么数据库
重庆好的软件开发售后保障
web服务器安全策略面试题
西城旧服务器回收价格多少
软件开发询价文件
有没有关于网络安全的简单
50m 服务器
socks代理服务器地址 湖南
电脑怎么做基础软件开发
传奇数据库物品价格怎么调高
速科软件开发
福建特立惠软件开发
简易网络安全知识
异构数据库迁移
泰拉瑞亚对萌新比较好的服务器
阿里巴巴网络安全技术总监
C 获取数据库时间
关系网络技术
金蝶软件找不到服务器
济南天气预报软件开发
第二次土壤普查数据库
研究生做软件开发能干几年
smtp服务器格式