GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So richten Sie den MySecureShell-SFTP-Server unter Ubuntu 18.04 ein

In diesem Artikel erkläre ich Ihnen, wie Sie einen SFTP-Server mit MySecureShell auf Ubuntu 18.04 einrichten. SFTP ist eine sichere Methode zum Übertragen von Dateien über eine verschlüsselte SSH-Verbindung. Obwohl es von modernen FTP-Clients weitgehend unterstützt wird, ist es ein völlig anderes Protokoll als FTP (File Transfer Protocol).

Sie fragen mich vielleicht, warum MySecureShell anstelle des herkömmlichen FTP-Servers. Hier sind die wenigen Funktionen,

  • Gesicherte Datenübertragung per SSH
  • SSL-Zertifikate müssen nicht verwaltet werden
  • Einfach zu installieren und zu konfigurieren
  • Bandbreitennutzung begrenzen
  • Einschränkungen für Dateien und Ordner
  • Zugriffskontrollliste über IP/Benutzername/Gruppen/VirtualHost
  • Beschränken Sie Benutzer auf nur sftp (Shell-Zugriff ist standardmäßig deaktiviert)
  • Erweitertes Protokollierungssystem

Fangen wir also erstmal mit der Installation an, grundlegende FTP-Kenntnisse reichen aus, um dieses Tutorial zu verstehen.

Installation

Ab Ubuntu 15.04 und höher ist MySecureShell in den Standard-Repositories verfügbar. Wir verwenden Ubuntu 18.04 für diese Installation. Führen Sie einfach die folgenden Befehle aus, um MySecureShell zu installieren.

apt-get install mysecureshell

Wenn nicht verfügbar, befolgen Sie die Schritte, stellen Sie sicher, dass alle folgenden Schritte als Root-Benutzer ausgeführt werden.

vim /etc/apt/sources.list

Fügen Sie die folgenden 2 Zeilen hinzu,

deb http://mysecureshell.free.fr/repository/index.php/ubuntu testing main
deb-src http://mysecureshell.free.fr/repository/index.php/ubuntu testing main

Fügen Sie nun den gpg-Schlüssel hinzu als,

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys E328F22B; gpg --export E328F22B | apt-key add
gpg: keybox '/root/.gnupg/pubring.kbx' created
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 7601D76CE328F22B: public key "MySecureShell repository " imported
gpg: Total number processed: 1
gpg:           	imported: 1
OK

Sobald das Repository hinzugefügt wurde, können Sie mit der Installation beginnen

apt-get update
apt-get install mysecureshell

Jetzt können Sie den Dienst starten und seinen Status überprüfen

systemctl start mysecureshell.service
systemctl status mysecureshell.service

Beispielausgabe

# systemctl start mysecureshell.service
root@li1004-153:~# systemctl status mysecureshell.service
* mysecureshell.service - LSB: MySecureShell SFTP Server
   Loaded: loaded (/etc/init.d/mysecureshell; generated)
   Active: active (exited) since Fri 2018-05-18 01:02:17 UTC; 4min 44s ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 0 (limit: 2322)
   CGroup: /system.slice/mysecureshell.service

May 18 01:02:17 004-153 systemd[1]: Starting LSB: MySecureShell SFTP Server...
May 18 01:02:17 004-153 mysecureshell[1314]: Starting MySecureShell SFTP Server: mysecureshell is now online with restricted features
May 18 01:02:17 004-153 mysecureshell[1314]: Note: To enable all features you have to change mysecureshell binary rights to 4755
May 18 01:02:17 004-153 systemd[1]: Started LSB: MySecureShell SFTP Server.

# systemctl status mysecureshell.service
* mysecureshell.service - LSB: MySecureShell SFTP Server
   Loaded: loaded (/etc/init.d/mysecureshell; generated)
   Active: active (exited) since Fri 2018-05-18 01:02:17 UTC; 50min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 0 (limit: 2322)
   CGroup: /system.slice/mysecureshell.service

May 18 01:02:17 004-153 systemd[1]: Starting LSB: MySecureShell SFTP Server...
May 18 01:02:17 004-153 mysecureshell[1314]: Starting MySecureShell SFTP Server: mysecureshell is now online with restricted features
May 18 01:02:17 004-153 mysecureshell[1314]: Note: To enable all features you have to change mysecureshell binary rights to 4755
May 18 01:02:17 004-153 systemd[1]: Started LSB: MySecureShell SFTP Server.
#

Verwenden Sie die folgenden Befehle, um den mysecureshell-Dienst zu stoppen und neu zu starten

systemctl stop mysecureshell.service
systemctl restart mysecureshell.service

MySecureShell SFTP-Benutzererstellung

Zuerst müssen wir den Installationspfad von MySecureShell finden,

whereis mysecureshell

Wie Sie in der Ausgabe unten sehen, lautet der mysecureshell-Installationspfad /usr/bin/mysecureshell.

mysecureshell: /usr/bin/mysecureshell /usr/share/man/man8/mysecureshell.8.gz

Nachdem Sie den Pfad überprüft haben, können Sie nun einen Benutzer erstellen

useradd -m -s /usr/bin/mysecureshell testsftpuser
passwd testsftpuser

Wie Sie im obigen Befehl sehen, erstellen wir einen Benutzer und weisen den Pfad des mysecureshell-Standorts zu. Außerdem können Sie den vorhandenen Benutzern den Zugriff und die Verwendung von MySecureShell zuweisen, indem Sie den folgenden Befehl verwenden:

sudo usermod -s /usr/bin/mysecureshell testsftpuser

Benutzerverbindung

Jetzt kann sich der Benutzer „testsftpuser“ von Ihren Clients wie unten gezeigt mit der IP-Adresse Ihres Computers mit Ihrem SFTP-Server verbinden,

sftp [email protected]

Die IP Ihres Geräts

Connected to 45.33.54.153
sftp>

Außerdem können Sie sich mit jedem grafischen Client wie FileZilla von Ihrem Client-System aus bei Ihrem SFTP-Server anmelden.

MySecureShell-Befehle

MySecureShell verfügt über die folgenden Befehle zur Verwaltung Ihres SFTP-Servers.

  • sftp-admin
  • sftp-Kill
  • sftp-Status
  • sftp-Benutzer
  • sftp-verif
  • sftp-who

sftp-admin

Dieser Befehl ermöglicht die Fernverwaltung einer MySecureShell.

sftp-admin [ssh options] user@hostname

sftp-Kill

Dadurch wird der Benutzer vom FTP-Server getrennt.

sftp-kill testsftpuser
Kill testsftpuser on PID 1961
(Press "Y" when requested)

SFTP-Status

FTP-Serverstatus anzeigen

# sftp-state

Beispielausgabe

# sftp-state
Server is up
#

sftp-Benutzer

Mit diesem Befehl können Sie einen SFTP-Benutzer erstellen, ohne den zuvor verwendeten Pfad anzugeben.

sftp-user create test

SFTP-Benutzer auflisten

sftp-user list
test
testsftpuser

Der Befehl löscht den Benutzertest

sftp-user delete test

sftp-verif

Dieser Befehl überprüft und behebt Probleme auf einem MySecureShell-Server.

sftp-verif
################################################################################
MySecureShell Verification Tool
################################################################################

### Verifing file existance ###

/bin/MySecureShell                                                       [ OK ]
/bin/sftp-who                                                            [ OK ]
/bin/sftp-kill                                                           [ OK ]
/bin/sftp-state                                                          [ OK ]
/bin/sftp-admin                                                          [ OK ]
/bin/sftp-verif                                                          [ OK ]
/bin/sftp-user                                                           [ OK ]

### Verifing rights ###

Verifing file rights of /etc/ssh/sftp_config                             [ OK ]
Verifing file rights of /bin/sftp-who                                    [ OK ]
Verifing file rights of /bin/sftp-verif                                  [ OK ]
Verifing file rights of /bin/sftp-user                                   [ OK ]
Verifing file rights of /bin/sftp-kill                                   [ OK ]
Verifing file rights of /bin/sftp-state                                  [ OK ]
Verifing file rights of /bin/sftp-admin                                  [ OK ]
Verifing file rights of /bin/MySecureShell                               [ OK ]

### Verifing rotation logs ###
Rotation logs have been found                                            [ OK ]
### Verifing server status ###
Verifing server status (ONLINE)                                          [ OK ]
[...]

sftp-who

Dieser Befehl teilt Ihnen mit, wer derzeit beim FTP-Server angemeldet ist.

sftp-who
# sftp-who
--- 1 / 10 clients ---
Global used bandwidth : 0 bytes/s / 0 bytes/s
PID: 2207   Name: testsftpuser   IP: pa39-178-9-194.pa.nsw.optusnet.com.au
        Home: /home/testsftpuser
        Status: idle    Path: /
        File:
        Connected: 2018/05/18 01:30:50 [since 03mins 59s]
        Speed: Download: 0 bytes/s [5.00 kbytes/s]  Upload: 0 bytes/s [unlimited]
        Total: Download: 924 bytes   Upload: 100 bytes
#

Konfiguration

Die Hauptkonfigurationsdatei von MySecureShell ist /etc/ssh/sftp_config. Sie können die Upload- und Download-Bandbreite, Chroot-Benutzer, die maximale Anzahl von Verbindungen usw. in der Konfigurationsdatei konfigurieren. Sie können diese Optionen entweder auf alle oder nur auf eine bestimmte Gruppe festlegen.

cat /etc/ssh/sftp_config

Standard-Tag

Das Standard-Tag wird verwendet, wenn Sie eine Konfiguration für alle Ihre Benutzer anwenden möchten

#Default rules for everybody
Default
        GlobalDownload          50k     #total speed download for all clients
                                        # o -> bytes   k -> kilo bytes   m -> mega bytes
        GlobalUpload            0       #total speed download for all clients (0 for unlimited)
        Download                5k      #limit speed download for each connection
        Upload                  0       #unlimit speed upload for each connection
        StayAtHome              true    #limit client to his home
        VirtualChroot           true    #fake a chroot to the home account
        LimitConnection         10      #max connection for the server sftp
        LimitConnectionByUser   1       #max connection for the account
        LimitConnectionByIP     2       #max connection by ip for the account
        Home                    /home/$USER     #overrite home of the user but if you want you can use
                                                #       environment variable (ie: Home /home/$USER)
        IdleTimeOut             5m      #(in second) deconnect client is idle too long time
        ResolveIP               true    #resolve ip to dns
        LogFile         /var/log/sftp-server_ftp.log
#       IgnoreHidden            true    #treat all hidden files as if they don't exist
#       DirFakeUser             true    #Hide real file/directory owner (just change displayed permissions)
#       DirFakeGroup            true    #Hide real file/directory group (just change displayed permissions)
#       DirFakeMode             0400    #Hide real file/directory rights (just change displayed permissions)
                                        #Add execution right for directory if read right is set
        HideNoAccess            true    #Hide file/directory which user has no access
#       MaxOpenFilesForUser     20      #limit user to open x files on same time
#       MaxWriteFilesForUser    10      #limit user to x upload on same time
#       MaxReadFilesForUser     10      #limit user to x download on same time
        DefaultRights           0640 0750       #Set default rights for new file and new directory
#       MinimumRights           0400 0700       #Set minimum rights for files and dirs

        ShowLinksAsLinks        false   #show links as their destinations
#       ConnectionMaxLife       1d      #limits connection lifetime to 1 day

#       Charset                 "ISO-8859-15"   #set charset of computer

Default

Hinweis: Protokolle sind standardmäßig nicht aktiviert, Sie können den Speicherort der Protokolldatei in der Konfigurationsdatei definieren.

FileSpec-Tag

Das FileSpec-Tag dient zum Erstellen von Filtern für Dateien und Verzeichnisse.

    # Only check against filenames/folder names only
FileSpec
    UseFullPath false

    # we can use multiple deny/allow directives for clarity
    Order DenyAllow
    Deny ".*.exe$"
    Deny ".*.sh$"
    Allow all
FileSpec

Benutzer-Tag
Benutzer-Tag wird für einen bestimmten Benutzer-Home-Ordner definiert

User tom 
Home /home/tom 
User

VirtualHost-Tag

Das VirtualHost-Tag kann Einschränkungen basierend auf dem Namen des virtuellen Hosts festlegen

    # Set home directory for this virtualhost
VirtualHost
    Home                    /var/www/html/www.mysftpsite.com
    # Set dedicated log file
    LogFile                 /var/log/sftp/www.mysftpsite.com
    # Override the maximum number of connection per user
    LimitConnectionByUser   5
VirtualHost

gFTP-Installation

Lassen Sie uns nun die gFTP-Installation auf Ubuntu 18.04 versuchen, indem Sie die folgenden Schritte befolgen,

sudo apt-get install gftp
  • gFTP aus Anwendungen öffnen
  • Geben Sie die IP-Adresse des SFTP-Servers, die Portnummer (Standard/Während der Konfiguration des Servers angegeben), den Benutzernamen und das Passwort ein und verwenden Sie SSH2. Drücken Sie die Eingabetaste, um sich anzumelden
  • Wenn der Anmeldeversuch erfolgreich war. Wir sind über gFTP mit SFTP verbunden

Das ist alles für jetzt. In diesem Stadium haben Sie einen funktionierenden SFTP-Server. Ich hoffe, Ihnen gefällt dieses Tutorial und ich habe einige Konfigurationsteile für Sie zum Selbstlernen hinterlassen. Bitte kommentieren Sie die Konfiguration, die Sie für sich selbst vorgenommen haben, um unserer Linoxide-Community zu helfen, zu lernen und zu wachsen. Danke.


Ubuntu
  1. So richten Sie den SFTP-Server unter Ubuntu 20.04 Focal Fossa Linux ein

  2. So richten Sie den Rsyslog-Server unter Ubuntu 18.04 LTS ein

  3. So richten Sie den Zimbra-Mailserver unter Ubuntu 16 ein

  4. So richten Sie einen NTP-Server unter Ubuntu und LinuxMint ein

  5. Rsyslog-Server auf Ubuntu 20.04 einrichten - Wie geht das?

So richten Sie den Minecraft-Multiplayer-Server unter Ubuntu 16.04 ein

So richten Sie OpenVPN auf Ubuntu Server ein

So richten Sie den Git-Server unter Ubuntu 20.04 ein

So richten Sie den Rsyslog-Server unter Ubuntu ein

So richten Sie einen DHCP-Server unter Ubuntu ein

So installieren Sie OmniDB Server unter Ubuntu 20.04