一:设备信息

要保护的服务器:ubuntu14.04    192.168.1.38

ssh测试机:kali2.0                      192.168.1.47

二:配置过程

1.首先扫描一下未进行knockd配置的服务器的端口状况:

由上面可知该服务器开启了SSH端口

2.在服务器(192.168.1.38)下载并配置knockd

1)安装knockd
  #apt-get install update
  #apt-get install build_essential -y
  #apt-get install knockd -y

2)配置knockd服务:
  2.1 配置/etc/knockd.conf。
    [options]
    #UseSyslog
    LogFile = /knock.log                                  //可以自定义日志的输出位置以及文件名

    [openSSH]
    sequence = 7000,8000,9000                     //定义顺序号,此处是默认的,也可以修改
    seq_timeout = 30                                       //设置超时时间太小的话可能会出错
    command = /sbin/iptables -I INPUT -s 192.168.1.47 -p tcp --dport 22 -j ACCEPT      //-i 命令是将规则插入到最前面,最先生效,以防止过滤所有端口的情况将此条规则吃掉
    tcpflags = syn

    [closeSSH]
    sequence = 9000,8000,7000                    //定义关门顺序号,与开门对应,顺序相反
    seq_timeout = 30 
    command = /sbin/iptables -D INPUT -s 192.168.1.47 -p tcp --dport 22 -j ACCEPT    //SSH使用完后,再将22端口“保护”起来
    tcpflags = syn
              

  2.2 配置/etc/default/knockd,修改START_KNOCKD=1。
    ################################################
    #
    # knockd's default file, for generic sys config
    #
    ################################################

    # control if we start knockd at init or not
    # 1 = start
    # anything else = don't start
    #
    # PLEASE EDIT /etc/knockd.conf BEFORE ENABLING
    START_KNOCKD=1

    # command line options
    #KNOCKD_OPTS="-i eth1"

2.3   启动knockd。
      #service knockd start

重启knockd

#service knockd restart

2.4   添加适当的iptables规则

确保服务器可通过本地主机接口与自己对话:

#iptables -A INPUT -s 127.0.0.0/8  -j   ACCEPT

本次测试中,阻塞所有进入服务器的通信:

#iptables -A INPUT  -j  DROP

查看添加到iptables规则:

# iptables -nvL

此时再用nmap扫描将看不到22 SSH端口:

 3.测试knockd服务

1) 直接在kali测试机上使用ssh登录服务器:

#ssh bask@192.168.1.38

由上面可知,这样是无法正常登录的

2) 使用7000/8000/9000队列号敲门登录:

#for x in 7000 8000 9000; do nmap -Pn --host_timeout 201 --max-retries 0 -p $x 192.168.1.38; done

3) 再次测试此时是否能登陆:

#ssh bask@192.168.1.38

由上面可以看出,此时是成功登录的

这时服务器上iptables规则是有变化的:

当指定的这台测试机使用完SSH服务后,进行相应的关门操作,即可将端口再次“保护”起来

4)使用9000/8000/7000队列号关门

for x in 9000 8000 7000; do nmap -Pn --host_timeout 201 --max-retries 0 -p $x 192.168.1.38; done

此时服务器的iptables规则恢复为:

此时将无法进行SSH登录,必须进行开门才可以。

三、总结

在实际应用中,我们可以通过此方法使敏感服务器达到隐藏的效果,提高系统的安全性!

转载于:https://www.cnblogs.com/bask/p/9159197.html

linux安全配置-将ssh服务隐藏于Internet(端口碰撞)相关推荐

  1. linux .ssh隐藏,linux安全配置-将ssh服务隐藏于Internet(端口碰撞)

    一:设备信息 要保护的服务器:ubuntu14.04    192.168.1.38 ssh测试机:kali2.0                      192.168.1.47 二:配置过程 1 ...

  2. linux 怎么配置apache,在Linux下配置Apache Web服务

    <在Linux下配置Apache Web服务>由会员分享,可在线阅读,更多相关<在Linux下配置Apache Web服务(10页珍藏版)>请在人人文库网上搜索. 1.在Lin ...

  3. 【Linux】ubuntu安装ssh服务端openssh-server

    [Linux]ubuntu安装ssh服务端openssh-server 1.背景 2.解决办法 3.测试 1.背景 ubuntu安装后默认只有ssh客户端,只能去连其它ssh服务器: 其它客户端想要连 ...

  4. Kali Linux与Ubuntu的ssh服务

    近日为了提高自己的逼格,所以打算就在windows10上远程连接到Kali与Ubunbu上来做PWN. 具体的设置如下: Kali Linux下 1.gedit /etc/ssh/sshd_confi ...

  5. linux系统离线安装ssh服务源码安装(ubuntu)

    1.去ssh官网或者阿里源下载最新版本的源码 官网:OpenSSH: Portable Release 阿里:https://mirrors.aliyun.com/pub/OpenBSD/OpenSS ...

  6. 服务器ssh22端口被大量占用,SSH服务修改默认22端口或同时监听多个端口

    为了安全或者其他原因,我们可能会需要改掉SSH服务器默认的22端口或者ssh服务同时监听多个端口,下面我们说一下方法: 编辑/etc/ssh/sshd_config 找到Port 22 这个就是默认的 ...

  7. 网络相关配置,SSH服务,bash, 元字符

    作业一:临时配置网络(ip,网关,dns)+永久配置 设置IP和掩码 ifconfig eth0 192.168.2.2 netmask 255.255.255.0 设置网关 route add de ...

  8. Linux基础(使用ssh服务管理远程主机1)

    配置网络参数 使用nmtui命令配置网络参数,以及通过nmcli命令查看网络信息并管理网络会话服务. 执行nmtui命令运行网络配置工具 进入主界面 选中编辑连接并按下回车键 选中要编辑的网卡名称,然 ...

  9. 在linux中配置安装telnet服务

    Telnet 是一种流行的用于通过 Internet 登录到远程计算机的协议.Telnet 服务器软件包为远程登录主机提供了支持.要通过 Telnet 协议与另一台主机通讯, 您可以使用名称或 Int ...

最新文章

  1. linux下忘记mysql root密码
  2. linux openssl libcurl库 交叉编译
  3. pytorch 维度练习
  4. 清晰讲解SQL语句中的外连接,通用于Mysql和Oracle,全是干货哦
  5. 中国科学院空天信息研究院苏州分院面试——总结
  6. linux打开应用程序的命令,Windows环境下如何通过命令打开程序!
  7. zblock 结构_zfs raidz结构详解
  8. .net swf 上传组件
  9. 飞机大战小游戏1.0版本
  10. java如何将String转换为enum
  11. cuSPARSE库:(十二)cusparseDestroyMatDescr()
  12. 科技经济调整td-scdma中国
  13. Ubuntu 20.04 双系统安装过程(新手)
  14. ubuntu20.04合并拆分pdf
  15. linux下卫士软件,Linux系统卫士
  16. office卸载工具怎么用(官方干净卸载方法)
  17. Ardunio开发实例-BMM150数字地磁传感器
  18. html+css主页页眉实现
  19. 如何同时登陆局域网和互联网?
  20. 东京工业大学计算机博士要求,东京工业大学计算机专业博士成功申请案例

热门文章

  1. ue4相机_纳格数字创意课程介绍 |UE4虚拟现实技术室内方向
  2. c 指定端口连接mysql_c++连接mysql(MYSQL C api使用)
  3. 动态规划解题思路与总结(三万字)
  4. 文件处理之解决使用 feof(c语言)或(fin.eof())出现多读问题
  5. LeetCode - 4. 寻找两个正序数组的中位数
  6. 【业务知识】档案工作流程
  7. 软考考前注意事项及答题技巧
  8. 笔记-信息系统安全管理-安全审计
  9. OPC的数据访问方法分别有同步访问、异步访问和订阅式
  10. SpringBoot中提示:Consider marking one of the beans as @Primary, updating the consumer to accept multipl