linux sftp ssh端口分开,Linux SSH和SFTP服务分离
原理:
创建两个‘sshd’进程,一个作为ssh服务的deamon,一个作为sftp服务的deamon.
ssh服务和sftp服务分离之前:
系统内开启ssh服务和sftp服务都是通过/usr/sbin/sshd这个后台程序监听22端口,而sftp服务作为一个子服务,是通过/etc/ssh/sshd_config配置文件中的Subsystem实现的,如果没有配置Subsystem参数,则系统是不能sftp访问的。
实现ssh服务和sftp服务分离:
1.两个deamon
要实现ssh和sftp分离,分别监听不同的端口,可以通过创建两个‘/usr/sbin/sshd’后台程序,一个监听22端口(ssh),一个监听20022端口(sftp),为了区分ssh和sftp服务的后台程序,这里将ssh服务的后台程序保持为/usr/sbin/sshd,而将sftp服务的后台程序改为/usr/sbin/sftpd。/usr/sbin/sftpd是/usr/sbin/sshd的一个链接,其内容完全相同(ln -sf /usr/sbin/sshd /usr/sbin/sftpd)。
2.两个service
SLES12使用systemd管理系统服务,ssh服务对应/usr/lib/systemd/system/sshd.service文件,实现sftp服务时可以将/usr/lib/systemd/system/sshd.service 复制到 /etc/systemd/system/sftpd.service,然后修改sftpd.service文件内容。(使用修改好的sftpd.service文件即可)
3.其他文件
系统的ssh服务是通过安装openssh实现的,可以通过rpm -ql openssh查看该rpm包含哪些文件。
总结实现ssh和sftp分离的相关的文件有:
ssh服务
sftp服务
/usr/lib/systemd/system/sshd.service
/etc/systemd/system/sftpd.service
(通过修改/usr/lib/systemd/system/sshd.service文件得到)
/etc/pam.d/sshd
/etc/pam.d/sftpd (通过复制 /etc/pam.d/sshd文件得到)
/etc/ssh/sshd_config
/etc/ssh/sftpd_config (通过复制/etc/ssh/sshd_config文件得到)
/usr/sbin/rcsshd
/usr/sbin/rcsftpd (ln -sf /usr/sbin/service /usr/sbin/rcsftpd)
/usr/sbin/sshd
/usr/sbin/sftpd (ln -sf /usr/sbin/sshd /usr/sbin/sftpd)
/etc/sysconfig/ssh
/etc/sysconfig/sftp (通过修改/etc/sysconfig/ssh文件得到)
至此,我们已经实现了两个服务。
但是,ssh服务和sftp服务并没有真正的分离,此时已然可以通过22号端口使用ssh服务和sftp服务,而新开的20022端口也可以使用ssh服务(ssh -p 20022 username@serverip )和sftp服务(sftp -o Port=20022 username@serverip )。
4.关闭22号端口下的sftp服务
编辑/usr/sbin/sshd的配置文件/etc/ssh/sshd_config文件,将Subsystem参数注释掉,然后重启sshd
同时也可以设置可访问22号端口的用户白名单:
编辑/etc/ssh/sshd_config文件,设置AllowGroups参数(假设设置为AllowGroups sshonly),限制仅AllowGroups组内的用户可通过22号端口ssh登录系统(对于需要ssh登录系统的用户可通过usermod -A sshonly 将其加入到AllowGroups组内)
5.“关闭20022号端口下的ssh服务”
sftp作为一个子服务,它的开启依赖于ssh服务,因此不能从本质上关闭ssh服务而只开启sftp服务。
可以用以下方式来规避:
/usr/sbin/sftpd的配置文件/etc/ssh/sftpd_config中包含Subsystem参数配置(推荐使用Subsystem sftp internal-sftp -l INFO -f AUTH)
/etc/ssh/sftpd_config中包含AllowGroups参数(假设为AllowGroups sftponly),限制仅AllowGroups组内的用户可以访问20022端口
将AllowGroups组内的用户的shell改为/bin/false(usermod -s /bin/false ),使AllowGroups组内的用户仅能sftp登录系统(如果一个用户即需要ssh,又需要sftp,则不能将其shell改为/bin/false)
6.用户白名单配置
配置之后,需将系统内需要ssh访问系统的用户加入到sshonly组内,需将系统内需要sftp访问系统的用户加入到sftponly组,同时需要ssh和sftp的用户则sshonly和sftponly组都要加入。
7. 重启ssh服务和sftp服务,并设置开机启动
service sshd restart
service sftpd restart
访问ssh服务可使用:ssh username@serverip
分离后如何访问ssh/sftp
对于同时是sshonly组和sftponly组的成员的用户还可以使用
ssh -o Port=20022 username@serverip访问系统
访问sftp服务可使用:sftp -o Port=20022 username@serverip
附件sshsftpseparate_sles12.tar.gz使用说明:
将sshsftpseparate_sles12.tar.gz上传到服务器(需实现ssh和sftp分离的机器)上
解压:tar -xzvf sshsftpseparate_sles12.tar.gz
进入sshsftpseparate目录,编辑sshusers,sftpusers,sshsftpusers文件,将仅需要ssh的用户添加到sshusers文件中(每行一个),将仅需要sftp的用户添加到sftpusers文件中(每行一个),将既需要ssh又需要sftp的用户添加到sshsftpusers文件中(每行一个)。
最后执行一下set.sh脚本即可
sshsftpseparate目录下文件说明:
set.sh 完成ssh和sftp分离的自动化脚本
sftp /etc/sysconfig/sftp配置文件
sftpd.service /etc/system/system/sftpd.service文件
sftpd_config sftpd服务配置文件/etc/ssh/sftpd_config(可修改,包括sftp监听的20022端口等)
sftpusers 配置仅需要sftp的用户名单
sshusers 配置仅需要ssh的用户名单
sshsftpuser 配置既需要ssh又需要sftp的用户名单
linux sftp ssh端口分开,Linux SSH和SFTP服务分离相关推荐
- linux sftp ssh端口分开,Linux 7.5 SSH服务和SFTP服务分离
SFTP是SSH的一部分,SFTP没有单独的守护进程,它必须使用SSHD守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像是一个服务器程序,而更像是一个客户端程序. ...
- linux sftp ssh端口分开,sftp ssh服务分离
一.分离SSH和SFTP服务 系统内开启ssh服务和sftp服务都是通过/usr/sbin/sshd这个后台程序监听22端口,而sftp服务作为一个子服务,是通过/etc/ssh/sshd_confi ...
- linux 下ssh端口反弹,利用ssh隧道反弹shell
说明 本文旨在分析rssh的源代码来学习利用ssh隧道来反弹shell.整个rssh只有1个347行的main文件,所以整体的逻辑结构也比较好分析.关于SSH端口转发的知识可以看实战SSH端口转发这篇 ...
- linux 重启21端口命令,修改SSH默认远程端口为21号端口
在防火墙配置的规则下默认只开放了21端口,需要远程通过ssh管理服务器,经过测试可以设置,具体步骤如下. 一.修改sshd服务默认监听端口 #vim /etc/ssh/sshd_config 找到#p ...
- linux服务器调用端口超时,Linux服务器可以ping,但是telnet端口超时,网站wget超时,访问超时的解决办法...
最近无法通过SSH连接Linux服务器,访问该服务器上的HTTP服务也出现异常.可以ping,但是telnet端口超时,网站wget超时,访问超时. 最后排查是内核配置问题 原来是 net.ipv4. ...
- Linux服务器禁用端口,Suse Linux常用端口开启、关闭、禁用
Suse Linux常用端口开启.关闭.禁用 下面貌似没有什么直接开启或者关闭端口的命令,因为若仅仅只是开启了端口而不把它与进程相联系的话,端口的开启与关闭就显得毫无意义了(开了端口却没有程序处理进来 ...
- SSH端口转发(ssh隧道)
在打DarkHole2靶机的时候,使用到了ssh端口转发,在网上搜集了很多资料,特此记录下来,以便后续查找 ssh端口转发 SSH 隧道 本地端口转发 远程端口转发 动态端口转发 当我们需要访问一台主 ...
- linux 开放连续端口,CentOS/Linux 开放80、8080端口或者开放某个端口
iptables是linux系统自带的防火墙,功能强大,学习起来需要一段时间,下面是一些习iptables的时候的记录.如果iptables不熟悉的话可以用apf,是一款基于iptables的防火墙, ...
- linux监控网络端口流量,Linux 网络流量监控利器 iftop
介绍 iftop 是 Linux 系统一个款免费的网卡实时流量监控工具,类似 top 命令.可以监控指定网卡的实时流量.端口连接信息.反向解析 IP 等.Linux系统下这样的工具还有很多,例如:ip ...
最新文章
- BZOJ 3105:[cqoi2013]新Nim游戏
- 小波变换和motion信号处理(三)(转)
- PIC单片机入门_汇编/混编/C编比较
- js中的preventDefault
- 20应用统计考研复试要点(part33)--简答题
- java 开发环境的搭建
- 骨牌覆盖问题总结!hihoCoder/ NYOJ-1273宣传墙1151
- concatenate mutliple videos in ffmpeg
- Scrapy和MongoDB的应用---爬取
- mysql统计年月周日_mysql 按年度、季度、月度、周、日统计查询的例子.docx
- Django中ListView分页技术
- oracle 表字段拆分,oracle 字段拆分
- OK6410 V4L2 分析
- 关于iPhone改变的一切,这也许是史上最详细的盘点
- FileNotFoundException(/storage/emulated/0/DCIM/Camera/xx.jpg: open failed: EACCES (Permission denied
- 最高效寻找重复数据,如何高效率的查找到数组中的重复值
- 重来之大学版|卸负篇——破除光环效应,学长学姐、教授老师真的有这么厉害吗?
- VMware的配置及ubuntu10.04 tftp 与嵌入式开发板的连接设置
- 【AI TOP 10】扎克伯格要整顿Facebook;LeCun飙脏话批机器人Sophia;北京站加装人脸识别检票机...
- python3编译安装_编译安装Python 3
热门文章
- html ul超出div,解决ul宽度超出div宽度常用解决办法
- 视频教程-AssetBundle框架设计_框架篇视频课程-Unity3D
- “基因编辑婴儿”背后到底用了什么术?
- 分析占用了大量 CPU 处理时间的是Java 进程中哪个线程
- 设计模式 —— 组合模式
- javascript 模拟按键事件 触发输入框oninput事件
- python:单例设计模式
- pythonpath windows_PYTHONPATH 可以跨版本 方便使用 (本文为windows方法)转~
- QPainter绘制罗盘
- python写安卓游戏辅助软件_python微信跳一跳辅助软件