linux安全配置-将ssh服务隐藏于Internet(端口碰撞)
一:设备信息
要保护的服务器: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(端口碰撞)相关推荐
- linux .ssh隐藏,linux安全配置-将ssh服务隐藏于Internet(端口碰撞)
一:设备信息 要保护的服务器:ubuntu14.04 192.168.1.38 ssh测试机:kali2.0 192.168.1.47 二:配置过程 1 ...
- linux 怎么配置apache,在Linux下配置Apache Web服务
<在Linux下配置Apache Web服务>由会员分享,可在线阅读,更多相关<在Linux下配置Apache Web服务(10页珍藏版)>请在人人文库网上搜索. 1.在Lin ...
- 【Linux】ubuntu安装ssh服务端openssh-server
[Linux]ubuntu安装ssh服务端openssh-server 1.背景 2.解决办法 3.测试 1.背景 ubuntu安装后默认只有ssh客户端,只能去连其它ssh服务器: 其它客户端想要连 ...
- Kali Linux与Ubuntu的ssh服务
近日为了提高自己的逼格,所以打算就在windows10上远程连接到Kali与Ubunbu上来做PWN. 具体的设置如下: Kali Linux下 1.gedit /etc/ssh/sshd_confi ...
- linux系统离线安装ssh服务源码安装(ubuntu)
1.去ssh官网或者阿里源下载最新版本的源码 官网:OpenSSH: Portable Release 阿里:https://mirrors.aliyun.com/pub/OpenBSD/OpenSS ...
- 服务器ssh22端口被大量占用,SSH服务修改默认22端口或同时监听多个端口
为了安全或者其他原因,我们可能会需要改掉SSH服务器默认的22端口或者ssh服务同时监听多个端口,下面我们说一下方法: 编辑/etc/ssh/sshd_config 找到Port 22 这个就是默认的 ...
- 网络相关配置,SSH服务,bash, 元字符
作业一:临时配置网络(ip,网关,dns)+永久配置 设置IP和掩码 ifconfig eth0 192.168.2.2 netmask 255.255.255.0 设置网关 route add de ...
- Linux基础(使用ssh服务管理远程主机1)
配置网络参数 使用nmtui命令配置网络参数,以及通过nmcli命令查看网络信息并管理网络会话服务. 执行nmtui命令运行网络配置工具 进入主界面 选中编辑连接并按下回车键 选中要编辑的网卡名称,然 ...
- 在linux中配置安装telnet服务
Telnet 是一种流行的用于通过 Internet 登录到远程计算机的协议.Telnet 服务器软件包为远程登录主机提供了支持.要通过 Telnet 协议与另一台主机通讯, 您可以使用名称或 Int ...
最新文章
- linux下忘记mysql root密码
- linux openssl libcurl库 交叉编译
- pytorch 维度练习
- 清晰讲解SQL语句中的外连接,通用于Mysql和Oracle,全是干货哦
- 中国科学院空天信息研究院苏州分院面试——总结
- linux打开应用程序的命令,Windows环境下如何通过命令打开程序!
- zblock 结构_zfs raidz结构详解
- .net swf 上传组件
- 飞机大战小游戏1.0版本
- java如何将String转换为enum
- cuSPARSE库:(十二)cusparseDestroyMatDescr()
- 科技经济调整td-scdma中国
- Ubuntu 20.04 双系统安装过程(新手)
- ubuntu20.04合并拆分pdf
- linux下卫士软件,Linux系统卫士
- office卸载工具怎么用(官方干净卸载方法)
- Ardunio开发实例-BMM150数字地磁传感器
- html+css主页页眉实现
- 如何同时登陆局域网和互联网?
- 东京工业大学计算机博士要求,东京工业大学计算机专业博士成功申请案例
热门文章
- ue4相机_纳格数字创意课程介绍 |UE4虚拟现实技术室内方向
- c 指定端口连接mysql_c++连接mysql(MYSQL C api使用)
- 动态规划解题思路与总结(三万字)
- 文件处理之解决使用 feof(c语言)或(fin.eof())出现多读问题
- LeetCode - 4. 寻找两个正序数组的中位数
- 【业务知识】档案工作流程
- 软考考前注意事项及答题技巧
- 笔记-信息系统安全管理-安全审计
- OPC的数据访问方法分别有同步访问、异步访问和订阅式
- SpringBoot中提示:Consider marking one of the beans as @Primary, updating the consumer to accept multipl