避免服务器成为肉鸡的应对措施

在公网中每时每刻都有人通过密码字典暴力破解试图登陆你的服务器,不信请看该日志文件大小du -sh `ls /var/log | grep btmp,该文件存储了ssh失败登陆的记录。文件越大/增长越快,说明你的服务器处于被别人暴力破解的危险中!为了避免这种危险,必须做好两点:

  • 修改SSH默认端口,
  • 使用强口令密码,不想看胡扯的请直接跳到后面。

整个网络空间中其实存在着很多弱口令服务器,假设弱口令服务器的用户名都为root、密码都为123456、SSH登陆端口都为默认的22。我有一台服务器在不停的用密码字典登陆这些弱口令机器,成功登陆的机器作为肉鸡(傀儡)继续登陆别的机器,假设一台服务器以2台/天的速度进行登陆,那么我就有三台机器(包括自己的那台),第二天就是6+3=3^2=9台,第三天就是18+9=3^3=27台,第N天就是3^N台。

[[265473]]

看到没有,肉鸡/傀儡服务器是以指数级别在增加的!

为什么有人不停登陆别人的机器,获得肉鸡?如果我手上有来自全世界的肉鸡,并且数量很多,那玩儿法可就多了:

  • 看不惯哪个网站?操纵这些傀儡机器不停的请求该网站,让别人没法用,服务瘫痪,这就是传说中的DDoS。
  • 想赚点小钱,偷偷挖矿是你不二的选择,这么多肉鸡,虽然每一台计算能力不怎么样,但是联合起来也不容小。这种肉鸡俗称挖掘鸡
  • 肉鸡做代理?这个话题我就不深说了,大陆敏感话题… …
  • 窥探肉鸡主人数据… 满足窥探欲
  • 这么多肉鸡代表你有这么多IP,有大量IP能干什么?这又是另外一个庞大的话题了… …

一、基础知识

/var/log/wtmp用于记录登录成功的用户的信息,是一个二进制文件,只能通过 last命令来查看

  1. root pts/0 100.87.41.98 Sat Feb 16 01:28 still logged in  
  2. root pts/2 100.87.41.98 Fri Feb 15 11:38 - down (01:35)  
  3. root pts/1 100.87.41.98 Fri Feb 15 11:38 - down (01:35)  
  4. root pts/0 100.87.41.98 Fri Feb 15 11:38 - down (01:35) 

查看尝试恶意登陆的前十个IP:

  1. sudo lastb | awk '{ print $3}' | awk '{++S[$NF]} END {for(a in S) print a, S[a]}' | sort -rk2 |head 

查看恶意IP尝试登陆次数:

  1. lastb | awk '{ print $3}' | sort | uniq -c | sort -n 

当然,如果你要清理这个日志,删除在创建之

  1. rm -rf /var/log/btmp 
  2. touch /var/log/btmp 

/var/log/btmp用于记录登录失败的用户的信息,是一个二进制文件,只能通过 lastb命令来查看

  1. ejabberd ssh:notty 123.207.233.84 Sat Feb 16 02:08 - 02:08 (00:00)  
  2. rsync ssh:notty 157.230.102.166 Sat Feb 16 02:08 - 02:08 (00:00)  
  3. ejabberd ssh:notty 123.207.233.84 Sat Feb 16 02:08 - 02:08 (00:00)  
  4. rsync ssh:notty 157.230.102.166 Sat Feb 16 02:08 - 02:08 (00:00) 

/var/log/lastlog用于记录用户的历史登录情况,是一个二进制文件,只能通过 lastlog命令来查看

  1. Username Port From Latest 
  2. root pts/0 100.87.41.98 Sat Feb 16 01:28:34 +0000 2019 
  3. bin **Never logged in** 
  4. daemon **Never logged in** 
  5. adm **Never logged in** 

/var/run/utmp用于记录当前登录的用户的信息,是一个二进制文件,只能通过 who命令来查看

  1. root pts/0 2019-02-16 01:28 (100.87.41.98) 

二、修改SSH默认端口

环境:CentOS 7

步骤:新增SSH端口–>>重启sshd服务–>>添加防火墙规则–>>尝试新端口登陆–>>关闭原先的22端口

1. 新增SSH端口(列:1000)

  1. vi /etc/ssh/sshd_config 

找到Port 22这行,将前面的注释去掉,再加一行Port 1000,如下,这样做的目的是防止新端口登陆不上,老端口也不能用!

  1. Port 22 
  2. Port 1024 
  3. #AddressFamily any 
  4. #ListenAddress 0.0.0.0 
  5. #ListenAddress :: 

2. 重启sshd服务

如果是CentOS 7使用systemctl restart sshd,查看端口是否生效可以用systemctl status sshd

如果是CentOS 7以前的系统,使用/etc/init.d/sshd restart或者service sshd restart

重启以后可以本地测试一下端口通没通,telnet 127.0.0.1 1000

3. 添加防火墙规则

如果是iptables防火墙,执行下面命令添加规则

 

  1. iptables配置文件位置/etc/sysconfig/iptables 
  • 添加1000端口规则
    1. iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1000 -j ACCEPT 
  • 保存规则
    1. service iptables save 
  • 重启服务
    1. service iptables restart 

如果防火墙是Firewall,参照下面步骤:

  • 首先检测防火墙是否已经启用,启用返回值runing,反之,为not running
    1. firewall-cmd --state 
  • 若没有启用,需要启用
    1. systemctl start firewalld 
    2. systemctl enable firewalld 
  • 若已经启用,则进行下一步
  • 查看防火墙的默认、活跃区域(zones)
  • 看两条命令的返回值是否含有public,有则为正确。
    1. firewall-cmd --get-default-zone 
    2. firewall-cmd --get-active-zones 
  • 端口开放
  • 为了防止出错,22端口一同开放
  • 与临时开放的区别在于多了permanent
    1. firewall-cmd --permanent --zone=public --add-port=22/tcp 
    2. firewall-cmd --permanent --zone=public --add-port=1000/tcp 
  • 防火墙重载
    1. firewall-cmd --reload 
  • 查看已暴露端口
    1. firewall-cmd --permanent --list-port 
    2. firewall-cmd --zone=public --list-all 

4. 尝试新端口登陆

尝试用1000端口进行登陆,看是否成功!

5. 关闭原先的22端口

参考上面的操作,首先在ssh的配置文件去掉22端口,重启sshd服务,然后在防火墙配置里面去除22端口,重启防火墙!这里不再赘述。

6. 修改弱口令为强口令

输入修改密码命令

  1. passwd 

此时系统提示

  1. Changing password for user root. 
  2. New password: 

输入两次密码并回车,注意输入密码时不会显示的

  1. Retype new password:  
  2. passwd: all authentication tokens updated successfully. 

7. 推荐:

shell随机密码生成函数:

生成随机密码 ($1 位数)

  1. # echo $(getRandomPwd 10) 
  2. # echo $(getRandomPwd) 
  3. getRandomPwd(){ 
  4.  num=32 
  5.  if [ $# == 1 ];then 
  6.  num=$1 
  7.  fi 
  8.  echo "$(date +%s)$(shuf -i 10000-65536 -n 1)" | sha256sum | base64 | head -c $num ; echo 

8. 扩展

虽然上面修改端口和口令能够大大提升安全性,但是在某些情况下不能修改端口或口令,此时可以推荐 DenyHosts或者fail2ban,它可以禁止大量尝试登陆的IP。或者可以用最简单的办法,查看尝试恶意登陆的前十个IP然后用防火墙禁止它,这里只提供思路。

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/141430.html<

(0)
管理的头像管理
上一篇2025-03-04 09:53
下一篇 2025-03-04 09:54

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注