이전 서버가 설치 중에 암호화되어 키가 손실되었기 때문에 proftp 서버를 교체하려고 합니다. 이전 서버는 ftp:21 및 sftp:22/322에서 제대로 작동했습니다. 이전 서버는 ubuntu 16.04.7에 있었고 새 서버는 ubuntu 22.04.3에 있었습니다. 새 서버에 proftpd를 설치하고 Ubuntu 설치 중에 openssh를 설치했습니다.
목표는 새 서버를 이전 서버와 동일하게 만드는 것입니다. 따라서 기존 서버에서는 기본 SSH 포트가 22에서 322로 변경되었으며, proftpd는 포트 21(기본값)과 포트 22(/etc/profptd/conf.d/sftp.conf 파일에 지정됨)에서 접속할 수 있습니다. ).
새 서버의 /etc/profptd/conf.d/sftp.conf에 있는 sftp.conf 파일에서 proftpd에 대해 포트 22를 활성화합니다.
따라서 포트 322를 통해 이전 서버와 새 서버에 SSH로 접속하고 포트 21을 통해 두 서버 모두에 액세스할 수 있습니다.
또한 ftp 클라이언트(WinSCP)를 사용하여 sftp:322를 두 서버 모두에 보낼 수 있고 ftp:21을 사용하여 두 서버 모두에 보낼 수 있습니다.
이제 문제는 ftp 클라이언트를 사용하여 포트 22의 새 서버에 연결할 수 없으며 다음 오류가 발생한다는 것입니다. SFTP 연결이 거부되었습니다 이 작업은 이전 서버에서 수행할 수 있으며 문서에 명시된 것과 동일한 sftp 구성을 갖습니다. profptd 문서의 구성 예
새 서버에서는 다음 설정이 활성화됩니다: /etc/ssh/sshd_config.d *
Port 322
#Port 22
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
PubKeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
HostbasedAuthentication no
IgnoreUserKnownhosts no
PasswordAuthentication yes
KbdInterctiveAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
새 서버에서 다음 설정을 활성화했습니다: /etc/proftpd/proftpd.conf
*
Include /etc/proftpd/modules.conf
UseIPv6 on
<IfModule mod_ident.c>
IdentLookups off
</IfModule>
DefaultRoot ~
Port 21
AuthOrder mod_auth_pam.c* mod_auth_unix.c
<IfModule mod_quotab.c>
QuotaEngine off
</IfModule>
<IfModule mod_ratio.c>
Ratios off
</IfModule>
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
...
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
RequireValidShell off
Include /etc/proftpd/conf.d/
http://www.proftpd.org/docs/contrib/mod_sftp.html#SFTPHostKey
방화벽 ufw에서 포트 21, 22, 322를 활성화했습니다.
서버에 ssh:322를 연결할 수 있고, sftp:322와 ftp:21도 할 수 있지만, sftp:22도 할 수 있지만, 322와 22에서 sftp를 사용하면 이전 서버에 완벽하게 액세스할 수 있습니다.