Diegiame sftp (konfigūruojame ssh) CentOS 7
Ieškojau instrukcijos, pavyzdžių kaip į CentOS 7 sudiegti/sukonfigūruoti sftp, chroot`inta, kai vartotojas gali prisijunti ir matyti tik jam skirta namų kataligą. Kadangi neradau detalaus aprašymo, visko vienoje vietoje, pasirašiau pats 🙂 jei kada prireiktu.
1. Pirmiausia sukuriame grupe ir vartotojus:
groupadd sftpgroup useradd tvartotojas usermod -aG sftpgroup tvartotojas usermod -s /bin/false tvartotojas passwd tvartotojas
2. Ssh įsidiegia diegiant serverį, belieka sukonfigūruoti. Konf.failo /etc/ssh/sshd_config
pabaigoje koreguojame/pridedame:
Subsystem sftp internal-sftp -l INFO -f AUTH #taikoma Musu sukurtai vartotoju grupei: Match Group sftpgroup ChrootDirectory %h ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
ForceCommand internal-sftp – This forces the execution of the internal-sftp and ignores any command that are mentioned in the ~/.ssh/rc file.
ChrootDirectory /sftp/%u – This is the path that will be used for chroot after the user is authenticated. %u indicates the user. So, for john, this will be /sftp/john.
Poto reikia kad pakeitimai įsigaliotų:
systemctl restart sshd
3. Sutvarkome katalogų teises, kad veiktu reikia, kad vartotojo katalogas priklausytų root ir turetų teises 755,ir jame sukuriame katalogą su vartotojo teisėmis. Tam atliekame:
#sudo -u tvartotojas mkdir -pv /home/tvartotojas/upload mkdir /home/tvartotojas/upload chown root. /home/tvartotojas chmod 755 /home/tvartotojas chown -R tvartotojas:sftpgroup /home/tvartotojas/* #chgrp -R sftpgroup /home/tvartotojas
4. Sutvarkome SElinux, su salyga kad js pas mus įjungtas:
setsebool -P ssh_chroot_rw_homedirs on
5. Viskas. Buvo paprasta 🙂 Testuojame, galime iš kito komp. bandyti jungtis:
sftp tvartotojas@<jususerveris>
P.s. saugesniam prisijungimui galime naudoti ne slaptažodžius, o raktus.
Pirmiausia sugeneruojame raktus (privatų ir viešą):
ssh-keygen
Nurodome kur išsaugoti informaciją…
Next, you will be prompted for a passphrase to secure the key with. You may either enter a passphrase or leave the passphrase blank.
Note: If you leave the passphrase blank, you will be able to use the private key for authentication without entering a passphrase. If you enter a passphrase, you will need both the private key and the passphrase to log in. Securing your keys with passphrases is more secure, but both methods have their uses and are more secure than basic password authentication.
This generates a private key, id_rsa
, and a public key, id_rsa.pub
, in the .ssh
directory of the localuser’s home directory. Remember that the private key should not be shared with anyone who should not have access to your servers!
Poto mūsų serveryje vartotojo aplanke įkeliame viešą raktą.
#cd /home/sftptest mkdir .ssh chmod 700 .ssh vi .ssh/authorized_keys
Nukopijuojame (copy, paste) ir isaugome.
chmod 600 .ssh/authorized_keys