SFTP Server Hjälp Linux Mint

Permalänk
Medlem
Skrivet av Benz0187:

Vet inte om vi missförstår varandra.
SFTP servern fungerar perfa. jag loggar in via sftp med testuser och lösen.
Sedan när jag sitter vid servern och klickar på restat från menyn, datorn startas om, bootar, skriver in nyckeln för systemkryptering, kommer till inloggningsrutan så jag kan även där logga in med testuser. Där vill jag bara kunna logga in med mitt admin-konto, inte testuser. Går det att få bort?
Tänker mig ett senario, mina två raspberrypi som kör OpenElec med kodi. Ifall nån kommer åt inloggninsupg från dom så kan dom ju använda dom för att logga in på servern om den står på.

Då var det helt klart ett missförstånd, tolkade frågan som att du ville ha tillbaka möjligheten att logga in med kommandotolk för testuser.

Inloggningshanterare är ju lite olika, men ja det skall gå att dölja användar-ID:t på den grafiska inloggningshanteraren liknande denna post: https://forums.linuxmint.com/viewtopic.php?t=37129

Det är dock alltid svårt att förhindra "intrång" om personen kan få fysisk åtkomst till servern efter krypteringen har låsts upp, däremot om din hemmakatalog är krypterad skall inte ex. testuser kunna komma åt den även om den loggar in lokalt på servern.

Visa signatur

Tower: ace Battle IV | CPU AMD Phenom II X2 BE unlocked 4cores@3,2GHz | RAM 8GB DDR2@800MHz | MB ASUS M4A785-M | GFK AMD Radeon HD 6850 1GB | HDD Kingston SSD Now 60GB (/) Seagate 2TB(/home) | OS Ubuntu 20.04 LTS
-Numera titulerad: "dator-hipster" då jag har en AMD GPU och dessutom kör Linux.

Permalänk
Medlem
Skrivet av Benz0187:

Tycker det blir problematiskt, om jag tex har lagt in en extern usb hdd i fstab som jag använder till Timeshift och har backups på.
Om den är inlagt med UUID och sedan mountad i en folder jag angivit. Om jag vid en reboot skulle koppa ur den usb disken så ska hela systemen halta/stanna på reboot och hindra mig från att komma in och då ta bort den från fstab.

Om det nu rör sig om USB-diskar kanske du kan testa:

sudo apt-get install usbmount

istället för att ha disken i fstab då den default förutsätter att det är ett existerande filsystem listat vid alla lägen.

Edit: länk.
https://help.ubuntu.com/community/Mount/USB/#Automounting_.28Ubuntu_Server.29

Visa signatur

Tower: ace Battle IV | CPU AMD Phenom II X2 BE unlocked 4cores@3,2GHz | RAM 8GB DDR2@800MHz | MB ASUS M4A785-M | GFK AMD Radeon HD 6850 1GB | HDD Kingston SSD Now 60GB (/) Seagate 2TB(/home) | OS Ubuntu 20.04 LTS
-Numera titulerad: "dator-hipster" då jag har en AMD GPU och dessutom kör Linux.

Permalänk
Medlem

Lyckades hitta en lösning efter nån timmes googlande.
Lade till nofail i fstab så haltar inte boot ifall disken inte är inkopplad. Testat rebootat flera gånger, stoppat in hårdisken i olika portar och mountar rätt varje gång!

UUID=blablabla /media/disks auto defaults,user,nofail 0 0

Skrivet av Benz0187:

Tycker det blir problematiskt, om jag tex har lagt in en extern usb hdd i fstab som jag använder till Timeshift och har backups på.
Om den är inlagt med UUID och sedan mountad i en folder jag angivit. Om jag vid en reboot skulle koppa ur den usb disken så ska hela systemen halta/stanna på reboot och hindra mig från att komma in och då ta bort den från fstab.

Visa signatur

// Benz

Permalänk
Medlem

Vill tacka alla som avlägger sin privata tid att lära upp nobrains som mig själv. Mycket värt.
Nu när jag samlat på mig all kunskap blir det en sista formatering utan testbuilds och göra allt rätt från början, TACK

Visa signatur

// Benz

Permalänk

@Benz0187:
Kanske detta kan hjälpa dig. Det finns tydligen en automountare som kan användas, iaf på Arch linux.
https://wiki.archlinux.org/index.php/fstab#Tips_and_tricks
Edit: ser att du hittat lösningen

Senpost
Permalänk
Medlem

Dum fråga men ibland måste man ställa dessa.
Efter jag formaterade min testbuild och skulle göra allt rätt från början så stödde jag på ett problem.
Fixade sftp servern, allt är krypterat osv. Så när jag skulle sätta igång så kommer jag inte in på sftpn med min användare "testuser", efter flera omstarter och felsöka så upptäcker jag att jag kan logga in via sftp med root användarnamn och lösen, men min "testuser" fungerar inte. När jag knotade sftpn så TROR jag att jag valde ett för avancerat lösen som jag glömt... sry...

Läste då denna guide igen och testade att öppna terminalen och skriva endast:
sudo passwd testuser
och skrev in ett nytt lösen men det fungerar inte.. Ändrade lösen i inställningar "user & groups" men fungerar inte fortfarande.
Värsta fall får jag väl formatera igen, men borde ju gå att fixa detta på något enklare sätt?

Skrivet av krigelkorren:

Guide för SFTP-server med s.k. chroot-jail:
Guiden är skriven/testad på en Ubuntu server (16.04 LTS), men bör funka lika väl på en vanlig Ubuntu Desktop om man så vill.

**************
Noteringar:

Kom ihåg att Linux ÄR case-sensitive, dvs. systemet gör skillnad på versaler och gemener.
Så om guiden förklarar ett kommando ex. sudo apt install openssh-server måste det skrivas exakt så; t.ex. fungerar inte sudo apt install OpenSSH-Server -det sista kommer inte att fungera!

apt vs. apt-get
'apt' är ett front-end till 'apt-get' så du kan använda vilket som när du utför kommandona i Ubuntu Linux.

Guiden antar att användaren med sudo-rättigheter heter 'sudokonto' -du använder givetvis det konto som du själv skapat när du installerade servern.
'sudokonto' är bara ett namnexempel för denna guide.

Guiden antar att användaren som skall hamna i chroot-jailet är 'testkonto' -du väljer ett eget namn för användaren på ditt system.
'testkonto' är bara ett namnexempel för denna guide.

/sftp/users är bara ett exempel, du kan lägga mappen för jailet vart som helst, t.ex. annan disk, så länge endast root-kontot har exklusiv åtkomst till toppnivån av filsystemet. (Här kan man inte tänka helt i Windows banor)

**************

Installera openssh-server: (detta är nödvändigt för att kunna använda sig av ssh/sftp mot servern)

sudo apt install openssh-server

****************
Nedan steg, att byta ssh port, är frivilligt men helt klart rekommenderat om du skall ha servern exponerad mot internet:
-Främsta anledningen till att du vill göra detta är p.g.a. botnets och annat mög som skannar nät och ip-adresser efter default porten för ssh (22), om den ser att porten är öppen kan den påbörja lösenordsattacker mot porten, har något konto på servern ett riktigt enkelt lösenord så kan det bli knäckt relativt snabbt.

Byt standard SSH-port:

sudo nano /etc/ssh/sshd_config

-Byt portnummer där det står "Port 22" till det portnummer du vill använda för ssh (e.g. 2222)

-Kör sedan:

sudo service ssh restart

När du sedan ansluter mot servern via ssh/sftp kommer du att få utföra nedan kommando, då porten nu är bytt till '2222'.

ssh -p 2222 sudokonto@192.168.10.xxx
****************

Steg 1:

Skapa en serverfolder, ett användarkonto och ett 'chroot-jail' för användaren:

För att nedan instruktioner skall fungera måste root-kontot äga alla ovanliggande mappar/mappnivåer, du kan inte låta andra grupper/användare ha skrivrättigheter ovan själva mappen som är bas för jailet, om du har det resulterar det i en "broken pipe":

I nedan exempel måste alltså root vara ägaren samt vara det enda konto med 'write access' till /sftp/users

Skapa en folder-struktur som skall användas som chroot-jail:

sudo mkdir /sftp/

sudo mkdir /sftp/users/

sudo mkdir /sftp/users/testuser

Skapa en användare som skall ha sin hemkatalog (startpunkt) under ovan uppskapad mapp. Användaren kommer alltså vid SFTP-inloggning att hamna i mappen: /sftp/users/testuser

sudo useradd -d /sftp/users/testuser -M -N -g users testuser

Ge root ägandeskap över ovanliggande mappar/mappnivåer:

sudo chown root:root /sftp/users/testuser

Ge fulla rättigheter åt ägare (root) läs/skrivrättigheter till grupp (root) samt ge läs/skrivrättigheter till övriga i mappen 'testuser'

sudo chmod 755 /sftp/users/testuser

skapa ett lösenord för användaren (om det inte redan är gjort)

sudo passwd testuser

Steg 2:

Nästa steg är att konfigurera sshd_config filen för att göra ett chroot-jail:

Byt subsystem i /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config

Kommentera bort 'Subsystem sftp /usr/lib/openssh/sftp-server' likt nedan och lägg till 'Subsystem sftp internal-sftp'

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

...skapa en användarsektion för 'testuser' längst ned i filen: (kort beskrivning av vad nedan sektion gör är att den matchar användarkontot som försöker logga på och tvingar det att ansluta i sftp-läge i mappen som du definierar '/sftp/users/testuser' (vilket också är dess hemkatalog) server blockerar försök att ansluta via ssh (kommandotolk) för användarkontot samt blockerar grafisk tunnling via X11, vidare tillåter den inte att användaren går högre upp i filträdet än katalogen för sökvägen som definierats.

Match User testuser
ChrootDirectory /sftp/users/testuser
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no

Spara och stäng filen sshd_config genom tangentkombinationen: Ctrl+X
nano komer fråga dig om du vill spara ändringar gjorda till filen, svara Y
Bekräfta Y genom ett Enter-slag.

Starta om ssh-servertjänsten:

sudo service ssh restart

Servern skall nu vara igång med chroot-jail aktivt. Det skadar aldrig att vara säker så man kan försöka att ansluta till servern via ssh ex. putty eller via annan unix/linux terminal, detta skall inte gå alls.
Enbart SFTP anslutning skall beviljas från servern ex. via FileZilla eller Kodi.
Värt att nämna är att du i FileZilla behöver specificera sftp://<serveradress> om du bytt standardporten för ssh.

*Ytterligare värt att notera: användaren 'testuser' kan ej skapa mappar under /sftp/users/testuser så om du vill ge användar kontot rättigheter till det måste du skapa en mapp för användaren där ex. upload som i det fallet skulle bli: /sftp/users/testuser/upload

sudo mkdir /sftp/users/testuser/upload

Därefter måste du ge användaren ägandeskap till mappen:

sudo chown testuser:users

..samt rättighet att läsa/skriva i den t.ex:

sudo chmod 600 /sftp/users/testuser/upload

En bra chart för att se vad chmod kan åstadkomma finner du här:
http://wiki.kartbuilding.net/index.php/Chmod

Edit, har snyggat till guiden med lite markeringar och annat, samt rättat en tankevurpa gällande uppskapandet av chroot folder-strukturen.

Visa signatur

// Benz

Permalänk
Medlem
Skrivet av Benz0187:

Dum fråga men ibland måste man ställa dessa.
Efter jag formaterade min testbuild och skulle göra allt rätt från början så stödde jag på ett problem.
Fixade sftp servern, allt är krypterat osv. Så när jag skulle sätta igång så kommer jag inte in på sftpn med min användare "testuser", efter flera omstarter och felsöka så upptäcker jag att jag kan logga in via sftp med root användarnamn och lösen, men min "testuser" fungerar inte. När jag knotade sftpn så TROR jag att jag valde ett för avancerat lösen som jag glömt... sry...

Läste då denna guide igen och testade att öppna terminalen och skriva endast:
sudo passwd testuser
och skrev in ett nytt lösen men det fungerar inte.. Ändrade lösen i inställningar "user & groups" men fungerar inte fortfarande.
Värsta fall får jag väl formatera igen, men borde ju gå att fixa detta på något enklare sätt?

Tror att du borde kunna lösa det via att helt enkelt ta bort kontot för din "testuser" från systemet, sedan kan du helt enkelt göra om guiden från början och därigenom skapa upp kontot med samma- eller annat konto-namn.

t.ex:
Tar bort ditt testuser-konto från systemet:

sudo userdel testuser

Valfritt om du vill rensa hemmakatalog mm. -Troligtvis inte nödvändigt i ditt fall.

sudo rm -rf /home/testuser

Visa signatur

Tower: ace Battle IV | CPU AMD Phenom II X2 BE unlocked 4cores@3,2GHz | RAM 8GB DDR2@800MHz | MB ASUS M4A785-M | GFK AMD Radeon HD 6850 1GB | HDD Kingston SSD Now 60GB (/) Seagate 2TB(/home) | OS Ubuntu 20.04 LTS
-Numera titulerad: "dator-hipster" då jag har en AMD GPU och dessutom kör Linux.

Permalänk
Medlem

Tack.
Testade men fungerade inte fortfarande, nu var jag iaf säker på lösenordet.
Men sedan funderade jag om problemet låg med chroot. Jag hade gjort ett mappsystem där jag ändrat ägare till mapparna. Fixade till det och nu funkar det! Tack!

Skrivet av krigelkorren:

Tror att du borde kunna lösa det via att helt enkelt ta bort kontot för din "testuser" från systemet, sedan kan du helt enkelt göra om guiden från början och därigenom skapa upp kontot med samma- eller annat konto-namn.

t.ex:
Tar bort ditt testuser-konto från systemet:

sudo userdel testuser

Valfritt om du vill rensa hemmakatalog mm. -Troligtvis inte nödvändigt i ditt fall.

sudo rm -rf /home/testuser

Visa signatur

// Benz

Permalänk
Medlem
Skrivet av Benz0187:

Tack.
Testade men fungerade inte fortfarande, nu var jag iaf säker på lösenordet.
Men sedan funderade jag om problemet låg med chroot. Jag hade gjort ett mappsystem där jag ändrat ägare till mapparna. Fixade till det och nu funkar det! Tack!

Lätt hänt, man lär sig med tiden ju mer man sysslar med det, chroot bygger ju på en viss struktur med rättigheter för att det skall fungera önskvärt.

Värt att tänka på är att man bör skapa sin egen dokumentation för hur man gjort strukturen.
Den är oftast mycket praktiskt att ha tillgång till sådan dokumentation om/när katastrofen skulle vara ett faktum, då man helt enkelt skall ersätta systemet med ett annat, alt. hjälpa någon annan med liknande förehavanden.

Visa signatur

Tower: ace Battle IV | CPU AMD Phenom II X2 BE unlocked 4cores@3,2GHz | RAM 8GB DDR2@800MHz | MB ASUS M4A785-M | GFK AMD Radeon HD 6850 1GB | HDD Kingston SSD Now 60GB (/) Seagate 2TB(/home) | OS Ubuntu 20.04 LTS
-Numera titulerad: "dator-hipster" då jag har en AMD GPU och dessutom kör Linux.

Permalänk
Medlem

Yes, tack för rådet. Har redan gjort exakt det med förklaringar

Skrivet av krigelkorren:

Lätt hänt, man lär sig med tiden ju mer man sysslar med det, chroot bygger ju på en viss struktur med rättigheter för att det skall fungera önskvärt.

Värt att tänka på är att man bör skapa sin egen dokumentation för hur man gjort strukturen.
Den är oftast mycket praktiskt att ha tillgång till sådan dokumentation om/när katastrofen skulle vara ett faktum, då man helt enkelt skall ersätta systemet med ett annat, alt. hjälpa någon annan med liknande förehavanden.

Visa signatur

// Benz

Permalänk
Medlem

Hej igen!
Nu har jag kommit till del2 i detta arbete. Behöver hjälp att mounta dessa sftp mappar jag delat ut.
Server nr2 har exakt samma setup.
Kan mounta sftp mapparna genom sshfs med terminalen men vill lägga till dessa i fstab.
i min fstab har jag skrivit in följande:

sshfs#username@ip.ip.ip.ip:/testmapp /home/testmapp fuse.sshfs defaults,_netdev,nofail 0 0

Men mappen mountar inte och jag får inte upp någon frågan om password till ssftp mappen. Som jag förstått det måste jag göra en keyfile och länka. Försökt googla mig till detta men verkar alldeles för avancerat. Skulle vara tacksam för hjälp

Visa signatur

// Benz

Permalänk
Medlem

Får lösa det med att manuellt mounta dom gånger man ska ta backup. Inte så farlig egentligen, brukar ta 1-2ggr i månaden. Använde mig av luckyBackup vilket jag tyckte va lämpligt för mitt ändamål.

Dock stör jag mig på att man kan logga in som användare (fysiskt) på servern med de inloggsuppgifter jag har till sftpn. Går det inte att ta bort?

Skrivet av Benz0187:

Hej igen!
Nu har jag kommit till del2 i detta arbete. Behöver hjälp att mounta dessa sftp mappar jag delat ut.
Server nr2 har exakt samma setup.
Kan mounta sftp mapparna genom sshfs med terminalen men vill lägga till dessa i fstab.
i min fstab har jag skrivit in följande:

sshfs#username@ip.ip.ip.ip:/testmapp /home/testmapp fuse.sshfs defaults,_netdev,nofail 0 0

Men mappen mountar inte och jag får inte upp någon frågan om password till ssftp mappen. Som jag förstått det måste jag göra en keyfile och länka. Försökt googla mig till detta men verkar alldeles för avancerat. Skulle vara tacksam för hjälp

Visa signatur

// Benz

Permalänk
Medlem
Skrivet av Benz0187:

Hej igen.
Vill först tacka alla som engagerade sig, fick till servern och den har tuffat på nu över ett år utan problem, tack!
MEN vill nu ta nästa steg, vill kunna få åtkomst till filerna utifrån.
Har fast IP från min isp, men har även fixat en noip.com.
när jag försöker ansluta utanför mitt hem både via IP och noip.com adress så får ja connection refused.
testade att ändra port från 22 till 80 ex men det går inte heller.

Testar nu här hemma med att ansluta från min macbook som sitter på 4g sticka, via filezilla som ja vanligtvis använder för filöverföring när ja är ansluten på mitt hem wifi.

Ska jag grotta mig ner i detta? Eller ska ja använda någon annan protokoll som ni rekommenderar? Vill att överföringen ska vara säker och gärna krypterad.

Du måste konfigurera port forward i din router för att du ska kunna komma åt någonting i hemnätverket. Hur man gör det varierar från router till router, så googla "portforward" + "din routermodell".

För att undvika konstanta autentiseringsförsök från utomstående rekommender jag följande:

  1. Inaktivera root-login genom ssh

  2. Inaktivera lösenordsåtkomst och använd istället nyckelpar för inloggning

  3. Om möjligt, ändra defaultporten från 22 till något annat, t.ex. 2222 eller liknande

Permalänk
Medlem

@Snigeln Bert: Fin bump på tråden

Bara sådär över ett år sedan senaste svaret

Permalänk
Medlem
Skrivet av BuruZ:

@Snigeln Bert: Fin bump på tråden

Bara sådär över ett år sedan senaste svaret

Nej, senaste inlägget som jag svarade och citerade skrevs några timmar innan mitt svar men verkar ha tagits bort. Det kan du bekräfta genom att läsa citeringen där han börjar med:

Citat:

Hej igen.
Vill först tacka alla som engagerade sig, fick till servern och den har tuffat på nu över ett år utan problem, tack!

Skickades från m.sweclockers.com

Permalänk
Medlem

@Snigeln Bert: Där ser man, då får jag be om ursäkt. Måste missat detta

Permalänk
Medlem

@krigelkorren: Tack för din hjälp, och alla andra som engagerat sig!
Använder krigelkorrens guide och har nu 3st rullande maskiner som är stabila och används dagligen.
Skulle behöva hjälp med ett problem.
Server 1: Har ett antal mappar under sftp/users/testuser där jag mountat flera hårddiskar i varsina mappar, funkar kalas.
Server 2: Samma upplägg som server 1.

Nu har jag installerat SSHFS och mountat mapparna från Server 2 i en mapp på Server 1.
Testade då att mounta mappar från server 2 i en mapp i sftp/users/testuser/testmapp
( sshfs testuser@ip.ip.ip.ip:/ sftp/users/testuser/testmapp )
Då fungerar det perfekt på Server 1.

När jag sedan använder min dator med win10 och filezilla, ansluter via sftp till Server 1 så vill jag då ha tillgång till alla mappar under sftp/user/testuser inkl den nya mappen testmapp där jag mountat server 2 diskar via sshfs, då sorterar han bort den mappen så den inte syns.
Alla mappar under sftp/user/testuser har samma permissions.

Lägger jag till en ytterligare mapp på Server 1, sftp/user/testuser/testmapp2 , ger den samma permissions som de andra MEN väljer att inte mounta något, bara låter den vara tom, så syns den när man ansluter från dator med win10.
Det är när det mountas med sshfs, då försvinner den i filezilla.

Visa signatur

// Benz

Permalänk
Medlem

Om ja fattat det rätt, så om man mountar med sshfs så tillåter den endast den user som mountat att ha tillgång till den?
Hittade nån tråd på google där någon försökte göra samma sak men behövde lägga till " -o allow_other" i kommandot när han mountar, men han fick det inte att fungera. Är jag på rätt väg?

Visa signatur

// Benz

Permalänk
Medlem
Skrivet av Benz0187:

Om ja fattat det rätt, så om man mountar med sshfs så tillåter den endast den user som mountat att ha tillgång till den?
Hittade nån tråd på google där någon försökte göra samma sak men behövde lägga till " -o allow_other" i kommandot när han mountar, men han fick det inte att fungera. Är jag på rätt väg?

Kanske denna guide kan hjälpa dig lite på traven?
https://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mount-remote-file-systems-over-ssh

Visa signatur

Tower: ace Battle IV | CPU AMD Phenom II X2 BE unlocked 4cores@3,2GHz | RAM 8GB DDR2@800MHz | MB ASUS M4A785-M | GFK AMD Radeon HD 6850 1GB | HDD Kingston SSD Now 60GB (/) Seagate 2TB(/home) | OS Ubuntu 20.04 LTS
-Numera titulerad: "dator-hipster" då jag har en AMD GPU och dessutom kör Linux.

Permalänk
Medlem

@krigelkorren: Kanon. Såg den innan också, men lyckades faktiskt lösa det själv=)

Visa signatur

// Benz