openssh 加固

很多场合,我们不得不在公网开启ssh 22端口,以CentOS6为例,下面的几个办法可以加固ssh连接

1、限制密码尝试次数(denyhosts)

yum install denyhosts --enablerepo=epel
chkconfig 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

5、限制IP来源

这个稍微复杂一点点,采用geoip数据库来识别IP来源,比如只允许中国的IP访问

写个脚本

#!/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调用那个脚本

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

参考文章

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

时间: 2024-10-06 03:41:57

openssh 加固的相关文章

openssh/ntp/ftp漏洞

这3种漏洞常规加固都要对应操作系统打官方漏洞升级包.既然这么说那下面就是不常规的: Openssh: 改ssh版本:whereis ssh //查看ssh目录cd 到该目录cp ssh ssh.bak //备份sshssh -V //查看ssh版本sed -i 's/OpenSSH_6.9p1/OpenSSH_7.2p2/g' ssh //修改版本,前面为当前版本,后面为最新版本ssh -V //查看核对修改版本telnet 127.0.0.1 22 //查看版本后回车cd /usr/sbin/

linux系统优化安全加固初始化命令

linux 系统初始化命令     最近花了点时间整理了一系列的服务器系统初始化内容,包括安全加固.行为审计.攻击防护.系统优化等多个方面,相信linux系统服务器经过下面26项内容的初始化工作,在安全方面会有较大的提升.1.安装系统 centos 6x2.定制系统分区,2.1 / 分区100G:2.2.swap 2048M:2.3./data 分区,使用剩余全部可用空间.2.4.其它需求根据服务特点进行定制: 2.系统瘦身,卸载无用系统软件:(此步骤在线系统跳过)yum -y grouprem

自动升级OPENSSH shell脚本

由于管理着两百多台Linux服务器,一个人搞这么多机器的安全加固比较累,因此在学习了shell脚本之后果断的写了一些常用脚本做一些系统日常维护,本文OPENSSH的升级是博主本人几乎每两三个月就要做一次升级的,没办法绿盟安全扫描系统总是扫描到相关的高危漏洞,再就是OPENSSH版本更新的也比较频繁,因此不偷懒几乎没法活了.废话不说了,在这里贴下脚本,已经在线上服务器上执行了上百次了,应该不会有什么问题. #!/bin/bash ##################################

CentOS下升级默认的OpenSSH(OpenSSH_5.3p1到OpenSSH_7.6p1)

近期对IDC机房服务器做了一次安全漏洞扫描,漏扫结果显示服务器的OpenSSH版本太低(CentOS6默认是OpenSSH_5.3p1),存在漏洞隐患,安全部门建议升级到OpenSSH_7.6p1.升级OpenSSH的操作并不复杂,但由于是线上环境,故需要谨慎操作.特别需要注意的是:如果是通过ssh远程连接服务器后进行的版本升级操作,万一升级失败了,则ssh就远程登录不上去了.当然,如果服务器安装了iDRAC远程管理卡就好说了,如果没有iDRAC远程管理卡,则需要提前开启telnet远程登录(允

7.linux安全基线加固

现在大多数企业都是使用linux作为服务器,不仅是linux是开源系统,更是因为linux比windows更安全.但是由于管理员的安全意识不全或者疏忽,导致linux的敏感端口和服务没有正确的配置,可能会被恶意利用,所以需要进行基线加固. 1.基线 即安全基线配置,诸如操作系统.中间件和数据库的一个整体配置,这个版本中各项配置都符合安全方面的标准.比如在系统安装后需要按安全基线标准,将新机器中各项配置调整到一个安全.高效.合理的数值. 2.基线扫描 使用自动化工具.抓取系统和服务的配置项.将抓取

redhat linux6.5升级openssh到7.5p1

linux系统的安全加固,一般都会将openssh服务升级到最新版本,加强远程连接的安全性. ?一.首先打开两个或以上的shell连接,因为在升级过程中如果升级失败会导致无法新建shell连接:或开一个telnet服务.在安装之前先记下sshd.pid路径,因为在启动文件sshd中要更改此路径. 下载openssl-1.0.2l.tar.gz.openssh-7.5p1.tar.gz包并将安装包传入服务器中: 卸载现有版本openssh:rpm -e rpm -qa |grep openssh

OpenSSH漏洞修复——Ubuntu系统

漏洞名称:OpenSSH漏洞 风险描述:OpenSSH 是一组用于安全地访问远程计算机的连接工具,低版本爆出的高危漏洞太多 修复建议:升级到最新版本 OpenSSH 升级加固实例 (一)   升级条件准备 ²  关闭防火墙 # ufw disable ²  安装与启用telnet 开启telnet server,以防止升级OpenSSH时导致远程连接异常,具体Telnet服务安装与开启命令操作如下. # apt-get install -y openbsd-inetd # apt-get ins

安全加固组件异常怎么处理

环境:腾讯云服务器 腾讯云安全团队针对常见的网站入侵行为,提供专业的网站后门木马检测等安全功能,集合专业的机器学习模型,定期检测网站,及早发现木马并通知到您,为您的网站安全保驾护航.安全加固组件是腾讯云提供的一套先进的主机入侵防御服务,如果您的机器被黑客入侵,安全加固组件可以实时发现并提醒您,可有效避免服务受损.核心数据被盗的风险,为您的机器打造"固若金汤"的安全防线. 安全加固组件功能专业的后门木马检测:当黑客在您的机器上留下后门或者上传非法程序时,安全加固组件及时检测,并且实时通知

openssl、openssh升级

近期公司应用需要用到https协议:Centos6.5自带的的openssl 1.0.1e版本存在名为"心脏出血"的漏洞. 环境:CentOS6.5_x86_64 准备相关的包openssh下载地址:http://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/openssl相关包下载:http://www.openssl.org/source/pam相关包下载:http://pkgs.org/centos-6/centos-x