如何在 Linux 系统中如何更改 SFTP 端口

如何在 Linux 系统中如何更改 SFTP 端口,第1张

SFTP(SSH文件传输协议)是一种安全文件协议,用于通过加密连接在两个主机之间传输文件。 它还允许您对远程文件执行各种文件 *** 作并恢复文件传输。

SFTP可以替代旧版FTP协议。 它具有FTP的所有功能,但连接更加安全。

本文介绍了如何在Linux中更改默认的SFTP端口。 我们还将向您展示如何配置防火墙以允许在新端口上使用。

SFTP是SSH的子系统,并提供与SSH相同级别的安全性。

默认的SFTP端口为22。

更改默认的 SFTP / SSH 端口可以降低自动攻击的风险,从而为服务器增加一层额外的安全保护。

下面的步骤详细讲解了如何更改SFTP默认端口:

在Linux中,低于1024的端口号是为知名服务保留的,只能由root绑定。 尽管可以将1-1024范围内的端口用于SSH服务以避免端口分配问题,但建议选择1024以上的端口。

本示例说明如何将SFTP/SSH端口更改为2222,但是您可以选择自己喜欢的任何端口。

更改SFTP / SSH端口之前,您需要在防火墙中打开新端口。

如果您正在使用UFW(Ubuntu中的默认防火墙),请运行以下命令以打开端口:

在 CentOS 中,默认的防火墙管理工具是 FirewallD 。 要打开端口,请输入以下命令:

CentOS用户还需要调整SELinux规则以允许新的SSH端口:

如果您使用的是另一个运行 iptables 的 Linux发行版 ,请打开新的端口运行:

SSH服务器配置存储在 /etc/ssh/sshd_config 文件中。 使用文本编辑器打开文件:

搜索以端口22开头的行。通常,该行使用井号(#)注释掉。 删除哈希号,然后输入新的SSH端口号:

编辑配置文件时要非常小心。 错误的配置可能会阻止SSH服务启动。

完成后,保存文件并重新启动SSH服务以使更改生效:

在CentOS中,SSH服务名为sshd:

验证SSH守护程序正在侦听新端口:

ss -an | grep 2222

输出应如下所示:

要指定端口号,请使用 -P 选项调用 sftp 命令 ,后跟新的端口号:

如果使用的是GUI SFTP客户端,只需在客户端界面中输入新端口。

默认的SFTP端口为22。但是,您可以将端口更改为所需的任何数字。

如果您定期连接到多个系统,则可以通过在SSH配置文件中定义所有连接来简化工作流程。

如有任何疑问,请随时发表评论。

可以按照如下方式进行设置:

1、创建sftp组,groupadd sftp,创建完成之后使用cat /etc/group命令组的信息。

2、创建一个sftp用户mysftp并加入到创建的sftp组中,同时修改mysftp用户的密码,useradd -g sftp -s /bin/false mysftp,passwd mysftp 。

3、新建/data/sftp/mysftp目录,并将它指定为mysftp组用户的home目录,mkdir -p /data/sftp/mysftp,usermod -d /data/sftp/mysftp mysftp。

4、编辑配置文件/etc/ssh/sshd_config,vi /etc/ssh/sshd_config,将如下这行用#符号注释掉。

5、设置Chroot目录权限,chown root:sftp /data/sftp/mysftp,chmod 755 /data/sftp/mys。

6、新建一个目录供stp用户mysftp上传文件,这个目录所有者为mysftp所有组为sftp,所有者有写入权限所有组无写入权限,mkdir /data/sftp/mysftp/upload,chown mysftp:sftp /data/sftp/mysftp/upload,chmod 755 /data/sftp/mysftp/upload。 

7、关闭selinux并重启sshd服务,然后测试。

8、在其他服务器上进行验证,sftp 用户名@ip地址。

拓展资料

1、sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。

2、其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复 *** 作,所以从某种意义上来说,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  <username>将其加入到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  <username>),使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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11494281.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存