Android

Hoe sftp chroot-gevangenis in te stellen

Chroot linux over sftp and ssh - quick tutorial

Chroot linux over sftp and ssh - quick tutorial

Inhoudsopgave:

Anonim

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 sftponly voegt de gebruiker toe aan de sftponly-groep. De optie -s /bin/false stelt de inlogschelp van de gebruiker in. Door de login shell in te stellen op /bin/false de gebruiker niet inloggen op de server via SSH. De opties -m -d /home/username vertellen 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:

/ Etc / ssh / sshd_config

Subsystem sftp internal-sftp

Tegen het einde van het bestand, het volgende blok instellingen:

/ Etc / ssh / sshd_config

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 :

sudo systemctl restart 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:

sftp> ls public_html uploads

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-beveiliging