Ek verstaan ​​dat daar tonne ander drade op die internet was oor die toelaat van OpenSSH SFTP-verbindings op 'n pasgemaakte poort. Ek het hulle geslaan, nie almal nie, maar baie. En kon dit nie in my spesifieke geval laat werk nie :)

Hier is waarmee ek gesukkel het:

  • CentOS Linux vrystelling 7.6.1810 (kern) , op AWS
  • OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
  • Vereistes:
    • Slegs 1 sshdgeval toegelaat
    • Poort 22: SSH
    • Poort 2222: SFTP
    • Gechroot SFTP-gebruikers
  • Aan die bokant van /etc/ssh/sshd_configek het:

    Port 22
    Port 2222
    
  • SFTP-bediener gekonfigureer met johanmeiringdie Ansible-rol ansible-sftp

    • Ek het toe gewysig /etc/ssh/sshd_configom hierdie Matchreël te verander van:

      Match Group sftpusers
      

      aan:

      Match Group sftpusers LocalPort 2222
      

      in die hoop dat gebruikers van die groep sftpuserssal * net * in staat wees om SFTP-Connect via poort 2222

    • Dit is meer van /etc/ssh/sshd_configwat ek dink relevant is:

      Port 22
      Port 2222
      ...
      Subsystem sftp internal-sftp -f AUTH -l VERBOSE
      ...
      Match Group sftpusers LocalPort 2222
          ChrootDirectory %h
          AllowTCPForwarding no
          X11Forwarding no
          ForceCommand internal-sftp
          PasswordAuthentication no
      

Wat werklik gebeur het, is dat SFTP-gebruikers via beide poorte 22 en 2222 kan koppel. Om dit erger te maak, wanneer hulle via poort 22 koppel, word SFTP-gebruikers glad nie gechroot nie (hulle kan dit cdvrylik). Dit alles word nie verwag nie.

Hoe bereik ek gechroot SFTP-gebruikers, beperk tot poort 2222, gebaseer op OpenSSH, terwyl ek SSH normaal laat funksioneer?

Dankie.

answer

Probeer om nog 'n wedstrydgroep by te voeg en toegang tot die groep te weier.

Match Group sftpusers LocalPort 22
    DenyGroups sftpusers

Sal werk.