Wie richte ich FTP/SFTP auf AWS ein?

Wie richte ich FTP/SFTP auf AWS ein?

Ich möchte Dateien über das Internet mit einem Client teilen und suche nach FTP-Lösungen für AWS. Ich habe AWS SFTP ausprobiert, aber das Festlegen von Rollenrichtlinien ist umständlich und der Dienst scheint für meinen grundlegenden Anwendungsfall etwas kostspielig zu sein. Gibt es eine alternative Möglichkeit, einen FTP-Server auf EC2 oder S3 einzurichten, auf den Nicht-AWS-Benutzer zugreifen können? Ich möchte Leseberechtigungen für verschiedene Benutzer für verschiedene Unterverzeichnisse hinzufügen. Ich verwende MacOSX.

Ich habe versucht, die Anweisungen zu befolgenhttps://stackoverflow.com/questions/7052875/setting-up-ftp-on-amazon-cloud-serveraber es ist nicht klar, wie ich Nicht-AWS-Benutzern die Berechtigung erteilen kann, meine Dateien anzuzeigen, und ich konnte vsftpd nicht zum Laufen bringen.

Gibt es ein empfohlenes/standardmäßiges AWS-Setup zum Teilen von Dateien mit Nicht-AWS-Benutzern, vorzugsweise sicher (SFTP)? Ich würde täglich mehrmals aktualisierte Dateien mit Hunderten von Benutzern teilen.

Antwort1

Wenn Sie AWS Transfer nicht für SFTP verwenden möchten, können Sie Ihren SFTP-Server direkt von einer EC2-Instance aus einrichten.

Wenn Sie diese Anweisungen richtig befolgen, sollten Sie Ihre SFTP-Benutzer ganz einfach erstellen können. In meinem speziellen Fall habe ich eine Micro-T2-Instanz mit Ubuntu 18.04 verwendet.

  1. Lassen Sie uns installierenopenSSH
sudo apt-get install openssh-server
  1. Sie müssen eine bestimmte Gruppe erstellen, in der Sie die Benutzer einsperren.
sudo groupadd sftpusers
  1. Bearbeiten /etc/ssh/sshd_configmit vim oder nano.
    Kommentieren Sie aus. #Subsystem sftp /usr/lib/openssh/sftp-server
    Fügen Sie dann stattdessen hinzu, Subsystem sftp internal-sftpum SFTP-Verbindungen zu Ihrem Server zuzulassen
    . Geben Sie am Ende der Datei die neuen Gruppenkonfigurationen an.
Match group sftpusers
        ChrootDirectory %h
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp
        PasswordAuthentication yes
  1. An diesem Punkt /etc/ssh/sshd_configsollte es so aussehen:
(...)

#Subsystem sftp /usr/lib/openssh/sftp-server

(...)

Subsystem sftp internal-sftp

Match group sftpusers
        ChrootDirectory %h
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp
        PasswordAuthentication yes
  1. Sie müssen den SSH-Dienst neu starten, um die Änderungen anzuwenden.
sudo service ssh restart
  1. Jetzt sollten Sie bereit sein, einen neuen Benutzer zu erstellen.
    Folgen Sie den Anweisungen des folgenden Befehls und geben Sie das Benutzerkennwort ein.
sudo adduser user1
  1. Fügen wir unseren neuen Benutzer der SFTP-Gruppe hinzu, die wir zuvor erstellt haben.
sudo usermod -g sftpusers user1
sudo usermod -s /bin/nologin user1
  1. An diesem Punkt müssen wir unseren Benutzer als letztes im /home/<user>Verzeichnis einsperren.
sudo chown root:user1 /home/user1
sudo chmod 755 /home/user1

Sie können neue Ordner erstellen, die dem Benutzer gehören, indem Sie

sudo mkdir /home/user1/new_folder
sudo chown user1:user1 /home/user1/new_folder
sudo chmod 755 /home/user1/new_folder

ich erschufDasrepo vor ein paar Tagen, die diesen Prozess automatisieren

verwandte Informationen