SFTP Login für User freigeben Debian 9

  • Moin,


    ich bin grade dabei meinen Debian 9 Server ein bisschen abzusichern. Ich habe jetzt den Root Login deaktiviert und mir einen User erstellt von dem ich in den Root switchen kann.

    Außerdem habe ich den SHH Port von 22 auf einen anderen geändert und Fail2Ban installiert.


    Ich hatte mich zuvor immer über SFTP mit dem Root über Filezilla angemeldet um Sachen hochzuladen.


    Da Root Login ja jetzt nicht mehr funktioniert, möchte ich mich nun gerne über meinen neuen Benutzer anmelden können.


    Habe noch nicht viel Erfahrung mit Linux. Sollte ich mich weiterhin mit SFTP anmelden oder gibt es sichere Alternativen?


    Wie gebe ich dem User SFTP Rechte?

    RS 1000 SSD G7SEa1 6M (Debian Buster)


    Webhosting 2000 SE de a1

  • SFTP sollte automatisch funktionieren für User, die sich per SSH anmelden können.


    Natürlich hat der User dann nur Zugriff auf Dateien, die ihm gehören bzw. bei denen das „others“-Attribut gesetzt ist (chmod o+r bzw. o+w).


    Hat es einen Grund, dass du Debian 9 anstatt der aktuellen Version 10 verwendest?


    LG

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.spigotmc.org/members/mfnalex.175238/#resources

    Discord: discord.jeff-media.com

  • SFTP sollte automatisch funktionieren für User, die sich per SSH anmelden können.


    Natürlich hat der User dann nur Zugriff auf Dateien, die ihm gehören bzw. bei denen das „others“-Attribut gesetzt ist (chmod o+r bzw. o+w).


    Hat es einen Grund, dass du Debian 9 anstatt der aktuellen Version 10 verwendest?


    LG

    Ok anmelden kann ich mich nun über SFTP. Wie gebe ich dem User den Rechte über alle Dateien die vom Root erstellt worden sind?


    Habe nochmal geschaut, der Server ist auf Debian 8.11. Kenne mich noch nicht so mit Linux aus. Wie würde den ein Update auf Debian 10 ablaufen und welche Vorteile hätte dies?

    RS 1000 SSD G7SEa1 6M (Debian Buster)


    Webhosting 2000 SE de a1

  • Hi,

    eigentlich hat mfnalex schon fast alles gesagt.

    Solange die Zeile Subsystem sftp /usr/lib/openssh/sftp-server in der /etc/ssh/sshd_config existiert, kannst du dich mit jedem User, der sich per SSH anmelden darf, auch per SFTP anmelden.


    Ergänzend zum Absichern: Ich mache mir aktuell die Arbeit, für Anfänger bzw. Leute mit wenig Erfahrung ein Script zur Absicherung bzw. zum Prüfen der Absicherung eines Debian Systems geschrieben. Vielleicht willst du es ja nutzen und mir evtl. auch Feedback dazu geben. :) Link zum Script

    (Bitte ignoriere den Port-Scan/Check - der funktioniert aktuell nicht und ich suche da auch noch nach einer Lösung)

    "Denn der radikalste Zweifel ist der Vater der Erkenntnis."

    -Max Weber

  • Ok anmelden kann ich mich nun über SFTP. Wie gebe ich dem User den Rechte über alle Dateien die vom Root erstellt worden sind?


    Habe nochmal geschaut, der Server ist auf Debian 8.11. Kenne mich noch nicht so mit Linux aus. Wie würde den ein Update auf Debian 10 ablaufen und welche Vorteile hätte dies?

    Gar nicht, dazu musst du Root-Login erlauben.


    Debian 8 ist uralt und du wirst ab Ende Juni keine Updates mehr erhalten. Was läift denn auf dem Server? Ich würde einen Snapshot anlegen und per apt-get dist-upgrade upgraden oder direkt Debian 10 minimal neu installieren.

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.spigotmc.org/members/mfnalex.175238/#resources

    Discord: discord.jeff-media.com

  • Wie gebe ich dem User den Rechte über alle Dateien die vom Root erstellt worden sind?

    Garnicht. Weil dann könntest du ja auch gleich root nehmen. Hier zählt der Sicherheitsaspekt rein.


    Die Dateien und Ordner, die du brauchst sollten zunächst i.d.R. lesbar für dich sein. Dein Problem wird sein, dass du die Dateien nicht ändern kannst.

    Ich halte das dann so - Configs und Co. editiere ich gleich per SSH (nano, vim, ...), Dinge aus dem Netz lade ich gleich mit wget oder curl runter und wenn ich wirklich was von meinem Rechner übertragen muss, dann lade ich es per SFTP als non-root User hoch und bringe es per SSH (da kann ich ja dann sofern notwendig zum root wechseln) dort hin, wo es hin soll.


    Am Anfang empfand ich das auch als aufwendig und nervig. Aber im Endeffekt - wenn man mal mitdenkt, muss man eigentlich fast nie irgendwas hochladen...

    Schau dir ggf. nochmal das Rechtesystem und die Dateiberechtigungen unter Linux an. Das ist alles recht simpel und logisch, wenn man weiß, wie es geht.


    Wie würde den ein Update auf Debian 10 ablaufen und welche Vorteile hätte dies?

    Backups machen. die sources.list ändern (codenames anpassen (jessie --> buster)) und dann mal apt update && apt dist-upgrade machen. Danach halt testen, ob alles wieder läuft.

    Behalt aber ein Auge drauf wegens des Datenbankservers. Ich glaube bei jessie --> stretch wurde bei Debian von mysqldb auf mariadb umgestellt. Da müsstest du glaube ich migrieren, aber das wirst du bei den zu updatenden/entfernenden/installierenden Paketen schon sehen.


    Was es dir bringt? Aktuellere Software die u.A. sicherer ist und zum Teil auch neue Features mitbringt.

    "Denn der radikalste Zweifel ist der Vater der Erkenntnis."

    -Max Weber

  • Check: Whats the release version of the OS?

    Result: [x] You are running an old OS release ()! Please consider an upgrade to the stable release!


    Check: Is the system up to date? (apt)

    Result: [x] There are 7 updates to do, so please run: apt update && apt upgrade


    Check: Does the OS require a reboot?

    Result: [✓] This system does not require a reboot!



    #### SSH server ####

    Check: Is the login as root via SSH disabled?

    Result: [✓] Login as root via SSH is disabled!


    Check: Is the SSH server using the standard port?

    Result: [✓] The SSH port was set to an non-standard port!


    Check: Does the SSH server allow logins without a password?

    Result: [✓] The login via SSH without a password is disabled!


    Check: Is it possible to use password authentication for SSH login?

    Result: [x] Please generate a KeyPair on your local client and copy the PublicKey to ~/.ssh/authorized_keys of your remote user. After this, add the line 'AuthenticationMethods publickey' and change PasswordAuthentication in /etc/ssh/sshd_config to no!


    Check: Is the SSH login restricted to specific users?

    Result: [x] The SSH login is not restricted to your personal user(s). Please add the line 'AllowUsers <username(s)>' to /etc/ssh/sshd_config! (If there is more than one user, use a whitespace-separated list)


    Check: Is the SSH server only using pre-defined KexAlgorithms, Ciphers, MACs and HostKeyAlgorithms?

    Result: [x] You should specify, which KexAlgorithms, Ciphers, MACs and HostKeyAlgorithms the SSH server is able to use. Take a look at https://infosec-handbook.eu/blog/wss1-basic-hardening/#s3 for an up to date config!


    Check: Is the loglevel set to verbose?

    Result: [x] The loglevel of the SSH server is to low, please change LogLevel in /etc/ssh/sshd_config to VERBOSE!


    Check: Is fail2ban installed and used?

    Result: [✓] fail2ban is installed and enabled+running!


    #### Additional checks & hints ####

    Check: Which filesystem is used by /var/log/?

    Result: [!] The directory /var/log/ should not be on the same filesystem as the OS!


    Check: Which filesystem is used by /home/?

    Result: [!] The directory /home/ should not be on the same filesystem as the OS!


    Check: Is the configuration of the network interfaces static?

    Result: [!] Your network configuration in /etc/network/interfaces or /etc/network/interfaces.d/* seems to be configured for using DHCP/SLAAC. This could cause problems in network communication, so think about a static configuration.


    Check: The script is now scanning for the most popular ports and whether they listen at the network...

    Info: --> , 21/tcp, 25/tcp, 80/tcp, 110/tcp, 143/tcp, 443/tcp, 465/tcp, 587/tcp, 993/tcp, 995/tcp

    Info: If you see some ports here, which should not listen to the network, please fix your firewall!


    Regular Script end


    Hier einmal die Ergebnisse. Wie gesagt, bin noch nicht so bewandert was Linux angeht und mache eigentlich alles an Hand von Tutorials und Anleitungen im Netz.


    Gar nicht, dazu musst du Root-Login erlauben.


    Debian 8 ist uralt und du wirst ab Ende Juni keine Updates mehr erhalten. Was läift denn auf dem Server? Ich würde einen Snapshot anlegen und per apt-get dist-upgrade upgraden oder direkt Debian 10 minimal neu installieren.

    Auf dem Server laufen ein Teamspeak3 Server, eine Wordpress Seite auf einem Apache Webserver mit php, ein vmail Server, eine MySQL Datenbank und ein Minecraft Server den ich ab und zu mal anschmeiße.


    Müsste ich bei einem Update auf Debian 10 dann alles neu installieren?

    RS 1000 SSD G7SEa1 6M (Debian Buster)


    Webhosting 2000 SE de a1

  • Mein Script sagt dir ja eigentlich, wo es noch Probleme gibt und was du machen musst. Dann mach es auch. ;)


    Müsste ich bei einem Update auf Debian 10 dann alles neu installieren?

    Upgrade <> Neuinstallation. Nicht verwechseln.


    In ersterem Falle - nein, allerdings könnten deine Configs dann überall nicht mehr hinhauen und du hast Arbeit beim anpassen. Und du stehst vor der Problematik mit der Datenbankumstellung, wodurch eine Neuinstallation vielleicht ratsamer wäre. (Aber lies meinen Beitrag jetzt erstmal zu Ende, bevor du übereifrig loslegst)

    In zweiterem Falle - ja, aber du kannst gleich alles sauber neu konfigurieren.


    Bei der Menge an Diensten solltest du aber evtl. schon über Virtualisierung bzw. Container nachdenken. Evtl. doch gleich alles auf Proxmox mit LXC Containern umstellen? Ich nutze das selbst intensiv und erkläre dir das auch gerne alles (aber nicht mehr heute, morgen dann gerne, schreib mir ne Konversation).

    Container bieten dir u.A. die Möglichkeit, alles sauber zu trennen, von den verschiedenen Diensten Snapshots zu machen usw. - im Prinzip kannst du dir das wie ein kleines virtuelles RZ vorstellen, in dem du deine eigenen Server (=LXC Container) in einem lokalen Netz hast. Auf deinem RS.

    "Denn der radikalste Zweifel ist der Vater der Erkenntnis."

    -Max Weber

  • Ist es Wirklich so eine gute idee bei einem Update eine version zu überspringen???

    ich habe wenn dann immer von einer zur nächsten geupdatet also in dem fall hätte ich jetzt:

    Version 8 geupdetet -> Version 9 reboot -> Version 10 reboot

  • Ist es Wirklich so eine gute idee bei einem Update eine version zu überspringen???

    ich habe wenn dann immer von einer zur nächsten geupdatet also in dem fall hätte ich jetzt:

    Version 8 geupdetet -> Version 9 reboot -> Version 10 reboot

    Ich habe das noch nie gemacht, daher kann ich es dir nicht sagen. Ich sags mal so - mach dir eine lokale VM und teste es aus. ;)


    Bzgl. der Situation des TO bleibe ich aber bei der Empfehlung einer Neuinstallation mit z.B. Proxmox und der Aufteilung in LXC Container, damit die Dienste klar getrennt sind und man besser arbeiten kann. Das ist generell meine Empfehlung. Sobald ein Server mehr als einen Dienst hosten soll, dann mindestens Teilvirtualisierung mit Containern (LXC, Docker, ...).

    "Denn der radikalste Zweifel ist der Vater der Erkenntnis."

    -Max Weber

  • Ist es Wirklich so eine gute idee bei einem Update eine version zu überspringen?

    Offiziell unterstützt wird es halt nicht. Wenn Du Pech hast, fliegt Dir bei einem Upgradescript (pre-/postinst) eines einzelnen Pakets alles um die Ohren, weil es nicht dafür ausgelegt ist. Oder noch schlimmer, es produziert Müll und man merkt es gar nicht.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)