选择 Debian-8 作为 vps 的操作系统,配置好 ssh 以及安全环境必不可少。选择 fail2ban 软件,通过扫描 log 文件发现恶意攻击者并自动 drop 流量同时通知管理员。

ssh 和 fail2ban 安全配置

转载请注明来自:b0t0w1’blog

搬瓦工 提供了十几种操作系统供选择,我选择了 Debian-8.0-x86_64-minimal 作为操作系统。

Debian 优点

搬瓦工 提供的操作系统有 Ubuntu、Centos、Debian、Fedora 等。

Ubuntu 在个人电脑中使用最多,功能也很全面,网上资料很详尽,各类环境搭建方便不易出错。然而作为 vps 系统耗能太高,内存占用大,对性能影响明显。如果 512MB 的 vps 搭建众多服务,Ubuntu 并不适合。

Centos 是一款服务器操作系统,专为商业服务器定制。相比 Ubuntu 它没有花里花哨的软件与环境,系统性能适中且最为稳定,是商业服务器的首选。但作为个人使用,又显得“力不从心”。不是性能而是环境配置过于繁琐,不兼容。例如默认的 python 为 2.6.6. 导致众多脚本程序无法运行,还得手动下载 python 2.7 和对应的 pip。

Debian 相比 Ubuntu 最大的优点就是性能高,运行相同的程序所占内存远远小于 Ubuntu,而对于 vps 来说内存比什么都贵。相比于 Centos 环境搭建简便很多,各类软件都有配套版本,兼容性、依赖关系容易解决,符合个人使用习惯。缺点就是过于“高精尖”虽然性能很强大但也容易出错。

本人不是 linux 大神,Debian 出错也只能默默叹气。但对于 512MB 的 vps 来说 Debian 是最为合适的选择。也因此选择了 minimal 版本 Debian-8,需要什么环境再装什么环境,最大限度减小系统耗能。


ssh 安全配置

网上众多教程全面但个人局的没有必要那么复杂,做到下列几项足以。

  • 端口
    搬瓦工随机产生 ssh 端口,一般在 27000-30000,如果需要手动修改也要改在这个范围内,建议定时修改端口。

  • 密码
    搬瓦工随机生成的密码包含了大小写、数字,都在 10 位以上,应对 ssh 爆破足以,但也建议定时修改密码。

  • root 登录
    默认允许 root 登录 vps,当然也可以新建普通用户,禁止 root 登录。
vim /etc/ssh/sshd_config
# add below lines
PermitRootLogin no
  • 密钥登录
    如果觉得还不够安全或者非 root 登录不方便也可以设置密钥登录,然后再禁止密码登录。不过这样导致只能在自己电脑上登录。

  • 用户限制
    可以选择允许登录的用户以及禁止登陆的用户:

vim /etc/ssh/sshd_config
# add below lines
AllowUsers xxx
DenyUsers xxx
  • ip 限制
    ip 也可以作为限制因素,相比 iptables 来说,通过修改配置文件限制 ip ssh 登录要简便的多。
vim /etc/hosts.allow
# add below lines
# only allow x.x.x.x login
sshd: x.x.x.x
# allow all ip login
sshd:all
vim /etc/hosts.deny
# add below lines
# deny x.x.x.x login
sshd: x.x.x.x

这只是几个最为基本常见的 ssh 防护办法,其他高深技术不再叙述也没有必要。



fail2ban 安装

fail2ban 官方简介

Log files contain interesting information, especially about failed logins. This information can be used to ban an offensive host. This is exactly what Fail2ban does. It scans log files and detects patterns which correspond to possible breakin attempts and then performs actions. Most of the time, it consists of adding a new rule in a firewall chain and sending an e-mail notification to the system administrator.

fail2ban 就是通过扫描所有 log 文件,从中发现恶意的 ssh、ddos、mysql 等行为,然后通过设置 iptables 规则自动化 drop 掉来自这些 ip 的信息,同时发送邮件及时告诉管理员。


fail2ban 安装

apt-get install fail2ban

fail2ban 架构

filter:从 log 文件中按照规则过滤出有用信息。
action:根据规则对恶意行为执行相应 action。如:iptables
jail: 用户配置文件。
client:客户端程序
server:服务端程序


server 简介

server 就是一个监听程序,监听来自 client 的信息,然后根据信息进行相应的 action。

fail2ban-server 命令为:

-b start in background
-f start in foreground
-s socket path
-x force execution of the server
-h, –help display this help message
-V, –version print the version

一般我们使用:

fail2ban-server -b

### client 简介
client 会不停的读取 log 文件从中过滤信息,一旦发现则通过 socks 发送信息至 server。

查看当前状态:

fail2ban-client -d

运行 client

fail2ban-client start

重新导入 jails

fail2ban-client reload

jails 简介

jail 对于用户是最为重要的部分,是各个 sections 的配置信息,大部分为 unable 状态,需要用户修改参数并使其 able。

这里举个例子:

[ssh-iptables]
#enabled  = false
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
#          mail-whois[name=SSH, dest=yourmail@mail.com]
#logpath  = /var/log/sshd.log
logpath  = /var/log/auth.log
maxretry = 5

看到模块 ssh-iptables 已经开启,filter 规则为 sshd,action 为使用 iptables drop 改 ip,mail-whois 开启会发送邮件到管理员邮箱及时通知,logpath 时 filter 过滤的 log 文件地址,maxretry 是最多的 ssh 尝试登陆次数。

jails 选项有很多,可以根据实际添加。

更多问题请参考:fail2ban 使用手册 和 fail2ban 问题汇总


转载请注明来自:b0t0w1’blog

ssh 和 fail2ban 的安全设置相关推荐

  1. ssh 免密码登录(设置后仍需输密码的原因及解决方法)

    ssh 免密码登录(设置后仍需输密码的原因及解决方法) 参考文章: (1)ssh 免密码登录(设置后仍需输密码的原因及解决方法) (2)https://www.cnblogs.com/guanyf/p ...

  2. xftp连接海康摄像头报错:sftp子系统申请已拒绝 请确保ssh连接的sftp子系统设置有效

    参考解决方案:sftp子系统申请已拒绝 请确保ssh连接的sftp子系统设置有效 没试过,后更

  3. SSH 连接远端 Ubuntu 服务器设置防火墙,实现只允许白名单访问

    SSH 连接远端 Ubuntu 服务器设置防火墙,实现只允许白名单访问 环境情况 需求 实现 需求1-只允许白名单访问 需求2-设置服务器禁止 PING 记录时间:2021/6/25 环境情况 服务器 ...

  4. SFTP子系统申请已拒绝请确保SSH连接的SFTP子系统设置有效

    报错:SFTP子系统申请已拒绝 请确保SSH连接的SFTP子系统设置有效 是ssh配置做了限制,修改一下配置文件就好了. 修改配置文件 vim /etc/ssh/sshd_config找到下面这两行代 ...

  5. linux sftp 重命名,linux下ssh/sftp配置和权限设置

    基于 ssh 的 sftp 服务相比 ftp 有更好的安全性(非明文帐号密码传输)和方便的权限管理(限制用户的活动目录). 1.开通 sftp 帐号,使用户只能 sftp 操作文件, 而不能 ssh ...

  6. ssh客户端避免超时的设置

    2019独角兽企业重金招聘Python工程师标准>>> 1.如果是shell登录,避免超时要分别在客户端和服务端设置两个地方 服务端 #vi /etc/ssh/sshd_config ...

  7. Linux之SSH服务端配置文件安全设置

    远程访问安全-SSH 如何才能让ssh更加安全? ssh安全性和配置最佳实践: * 将root账户仅限制为控制台访问,不允许ssh登录 # vim /etc/ssh/sshd_config Permi ...

  8. ssh登录远程服务器_设置iTerm2免密登陆ssh远程服务器

    由于本人的日常工作原因,几乎所有时间都会在远程服务器工作,之前用的是Windows系统,使用xshell保存用户名和密码很方便,后来换了MacOS之后,虽然iTerm2很好用每次登陆都要自己输用户名和 ...

  9. windows下客户端连接上马上会断开连接_Fix SSH客户端登录会话超时设置

    通常默认公有云上的ECS远程连接,很容易断开,当你有什么事情被打断或者去操作别的机器同步做点其他事情,你会发现你SSH客户端登录窗口经常会断开掉,非常烦人,经常要重新登录. 如果用一些Windows下 ...

最新文章

  1. 细品经典:LeNet-1, LeNet-4, LeNet-5, Boosted LeNet-4
  2. java字符串转日期_JAVA字符串转日期或日期转字符串
  3. Ubuntu 完全卸载 Apache2
  4. Transact-SQL数据类型(文本/图形/日期和时间/货币/特定类型)
  5. 64位 iee754_IEEE754浮点表示法详解
  6. 精选10款超酷的HTML5/CSS3菜单
  7. java 可见性_Java并发编程-volatile可见性详解
  8. PDF转换为其他格式的方法
  9. 管理Exchange 2003注意事项
  10. 一篇非常 Nice 的 UmiJS 教程
  11. 空手套白狼的典型案例,不花一分钱,整合别家产品,赚自己的钱
  12. Ubuntu16 Nvidia驱动安装(.run文件安装)
  13. Pacman基本使用
  14. Package com.myapp signatures do not match the previously installed version
  15. 2020年全国大学生数学建模竞赛赛题 选题建议
  16. hexo 实现主页每日一言功能
  17. 从敏思博客的倒闭事件看历史重现... 1
  18. SkyWalking之告警
  19. Python调用百度AI识别身份证
  20. 牛客寒假算法基础训练营3 G.糖果

热门文章

  1. 凸显强劲实力!智领云入选2022德勤“光谷明日之星”榜单
  2. java计算机毕业设计芮城县十全十美火锅店点餐系统源代码+数据库+系统+lw文档
  3. 数据抓取,爬虫豆瓣读书书籍信息
  4. 苹果手机应用分身_丢手机丢人都有新保障:苹果将推出改进后的找回手机应用...
  5. ubuntu20.4系统下/usr/share/fonts文件夹内无法复制文件和新建文件
  6. 分享几个好用的百度网盘搜索引擎
  7. 嵌入式开发——基于小熊派的智慧农业案例(二)
  8. 打造智慧社区整体化解决方案--触点云
  9. 《Effective C++》学习笔记(条款51:编写 new 和 delete 时需固守常规)
  10. 【观察】紫光芯云人才计划:以1+3+N创新模式,全面赋能人才培养升级