Chroot linux over sftp and ssh - quick tutorial
Inhoudsopgave:
- Een SFTP-groep maken
- Gebruikers toevoegen aan de SFTP-groep
- SSH configureren
- De configuratie testen
- Conclusie
In deze zelfstudie leggen we uit hoe u een SFTP Chroot Jail-omgeving instelt die gebruikers beperkt tot hun thuismappen. De gebruikers hebben alleen SFTP-toegang, SSH-toegang is uitgeschakeld. Deze instructies zouden moeten werken voor elke moderne Linux-distributie, inclusief Ubuntu, CentOS, Debian en Fedora.
Een SFTP-groep maken
In plaats van de OpenSSH-server voor elke gebruiker afzonderlijk te configureren, maken we een nieuwe groep en voegen we al onze gechroote gebruikers aan deze groep toe.
Voer de volgende
groupadd
opdracht uit om de
sftponly
gebruikersgroep te maken:
sudo groupadd sftponly
U kunt de groep een naam geven die u wilt.
Gebruikers toevoegen aan de SFTP-groep
De volgende stap is om de gebruikers die u wilt beperken toe te voegen aan de
sftponly
groep.
Als dit een nieuwe instelling is en de gebruiker niet bestaat, kunt u een nieuw gebruikersaccount maken door te typen:
sudo useradd -g sftponly -s /bin/false -m -d /home/username username
- De optie
-g sftponlyvoegt de gebruiker toe aan de sftponly-groep. De optie-s /bin/falsestelt de inlogschelp van de gebruiker in. Door de login shell in te stellen op/bin/falsede gebruiker niet inloggen op de server via SSH. De opties-m -d /home/usernamevertellen useradd om de thuismap van de gebruiker te maken.
Stel een sterk wachtwoord in voor de nieuwe gebruiker:
sudo passwd username
Anders, als de gebruiker die u wilt beperken al bestaat, voegt u de gebruiker toe aan de
sftponly
groep en wijzigt u de shell van de gebruiker:
sudo usermod -G sftponly -s /bin/false username2
De thuismap van de gebruiker moet eigendom zijn van root en
755
machtigingen hebben:
sudo chown root: /home/username
sudo chmod 755 /home/username
Aangezien de thuismappen van de gebruikers eigendom zijn van de rootgebruiker, kunnen deze gebruikers geen bestanden en mappen in hun thuismappen maken. Als er geen mappen in het huis van de gebruiker zijn, moet u nieuwe mappen maken waartoe de gebruiker volledige toegang heeft. U kunt bijvoorbeeld de volgende mappen maken:
sudo mkdir /home/username/{public_html, uploads}
sudo chmod 755 /home/username/{public_html, uploads}
sudo chown username:sftponly /home/username/{public_html, uploads}
Als een webtoepassing de map
public_html
de gebruiker als document root gebruikt, kunnen deze wijzigingen leiden tot machtigingsproblemen. Als u bijvoorbeeld WordPress gebruikt, moet u een PHP-pool maken die wordt uitgevoerd als de eigenaar van de bestanden en de webserver toevoegen aan de
sftponly
groep.
SSH configureren
SFTP is een subsysteem van SSH en ondersteunt alle SSH-authenticatiemechanismen.
Open het SSH-configuratiebestand
/etc/ssh/sshd_config
met uw teksteditor:
sudo nano /etc/ssh/sshd_config
Zoek naar de regel die begint met
Subsystem sftp
, meestal aan het einde van het bestand. Als de regel begint met een hekje
#
verwijdert u het hekje
#
en wijzigt u deze als volgt:
Subsystem sftp internal-sftp
Tegen het einde van het bestand, het volgende blok instellingen:
Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
De
ChrootDirectory
richtlijn geeft het pad naar de chroot-map aan.
%h
betekent de thuismap van de gebruiker. Deze map moet eigendom zijn van de rootgebruiker en mag niet door een andere gebruiker of groep kunnen worden beschreven.
Wees extra voorzichtig bij het wijzigen van het SSH-configuratiebestand. Door een onjuiste configuratie kan de SSH-service mogelijk niet worden gestart.
Sla het bestand op en start de SSH-service opnieuw om de wijzigingen toe te passen:
sudo systemctl restart ssh
In CentOS en Fedora heet de ssh-service
sshd
:
De configuratie testen
Nu u SFTP-chroot hebt geconfigureerd, kunt u proberen in te loggen op de externe machine via SFTP met behulp van de referenties van de gechroote gebruiker. In de meeste gevallen zult u een desktop SFTP-client zoals FileZilla gebruiken, maar in dit voorbeeld gebruiken we de opdracht sftp.
Open een SFTP-verbinding met de opdracht sftp gevolgd door de gebruikersnaam van de externe server en het IP-adres of de domeinnaam van de server:
sftp [email protected]
U wordt gevraagd het gebruikerswachtwoord in te voeren. Eenmaal verbonden, zal de externe server een bevestigingsbericht en de
sftp>
prompt weergeven:
[email protected]'s password: sftp>
Voer de opdracht
pwd
uit, zoals hieronder wordt weergegeven, en als alles werkt zoals verwacht, moet de opdracht
/
terugkeren.
sftp> pwd Remote working directory: /
U kunt ook de externe bestanden en mappen weergeven met de opdracht
ls
en u zou de mappen moeten zien die we eerder hebben gemaakt:
Conclusie
In deze zelfstudie hebt u geleerd hoe u een SFTP Chroot Jail-omgeving op uw Linux-server kunt instellen en hoe u gebruikerstoegang tot hun thuismap kunt beperken.
Standaard luistert SSH op poort 22. Het wijzigen van de standaard SSH-poort voegt een extra beveiligingslaag toe aan uw server door het risico van geautomatiseerde aanvallen te verminderen. U kunt ook een op SSH-sleutel gebaseerde verificatie instellen en verbinding maken met de server zonder een wachtwoord in te voeren.
ssh sftp-beveiligingHoe een video in te stellen als beltoon op een Android-telefoon
Meer informatie over het instellen van een video als beltoon op Android-telefoons.
Hoe e-mailbezorging in MS Outlook in te plannen of uit te stellen
Meer informatie over het plannen of uitstellen van e-mailbezorging in MS Outlook.
Hoe linux sftp commando te gebruiken om bestanden over te zetten
SFTP (SSH File Transfer Protocol) is een veilig bestandsprotocol dat wordt gebruikt voor toegang tot, beheer en overdracht van bestanden via een gecodeerd SSH-transport. In deze tutorial laten we je zien hoe je de Linux `sftp`-opdracht kunt gebruiken.







