Android

Paano mag-set up ng sftp chroot jail

Setup SSH and SFTP server with chroot jail

Setup SSH and SFTP server with chroot jail

Talaan ng mga Nilalaman:

Anonim

Sa tutorial na ito, ipapaliwanag namin kung paano mag-setup ng isang kapaligiran ng SFTP Chroot Jail na hahigpitan ang mga gumagamit sa kanilang mga direktoryo sa bahay. Ang mga gumagamit ay magkakaroon lamang ng SFTP access, ang SSH access ay hindi pinagana. Ang mga tagubiling ito ay dapat gumana para sa anumang modernong pamamahagi ng Linux kabilang ang Ubuntu, CentOS, Debian, at Fedora.

Paglikha ng isang SFTP Group

Sa halip na i-configure ang OpenSSH server para sa bawat gumagamit nang paisa-isa ay gagawa kami ng isang bagong pangkat at idagdag ang lahat ng aming mga chrooted na gumagamit sa pangkat na ito.

Patakbuhin ang sumusunod na utos ng pangkat upang lumikha ng sftponly gumagamit ng sftponly :

sudo groupadd sftponly Maaari mong pangalanan ang pangkat ayon sa gusto mo.

Pagdaragdag ng Mga Gumagamit sa SFTP Group

Ang susunod na hakbang ay upang idagdag ang mga gumagamit na nais mong higpitan sa pangkat na sftponly .

Kung ito ay isang bagong pag-setup at ang gumagamit ay hindi umiiral maaari kang lumikha ng isang bagong account sa gumagamit sa pamamagitan ng pag-type:

sudo useradd -g sftponly -s /bin/false -m -d /home/username username

  • Ang pagpipilian na -g sftponly ay magdagdag ng gumagamit sa sftponly group.The -s /bin/false opsyon ay nagtatakda ng shell ng pag-login ng gumagamit. Sa pamamagitan ng pagtatakda ng shell ng pag-login sa /bin/false ang gumagamit ay hindi makakapag-login sa server sa pamamagitan ng SSH.The -m -d /home/username options ay nagsasabi sa useradd upang lumikha ng direktoryo ng bahay ng gumagamit.

Magtakda ng isang malakas na password para sa bagong nilikha na gumagamit:

sudo passwd username

Kung hindi man kung ang gumagamit na nais mong paghigpitan ay mayroon na, idagdag ang gumagamit sa pangkat na sftponly at baguhin ang shell ng gumagamit:

sudo usermod -G sftponly -s /bin/false username2

Ang direktoryo ng bahay ng gumagamit ay dapat pag-aari ng ugat at may 755 pahintulot:

sudo chown root: /home/username sudo chmod 755 /home/username

Dahil ang mga direktoryo sa bahay ng mga gumagamit ay pag-aari ng root user, ang mga gumagamit na ito ay hindi makalikha ng mga file at direktoryo sa kanilang mga direktoryo sa bahay. Kung walang mga direktoryo sa bahay ng gumagamit, kakailanganin mong lumikha ng mga bagong direktoryo na kung saan ang gumagamit ay magkakaroon ng buong pag-access. Halimbawa, maaari kang lumikha ng mga sumusunod na direktoryo:

sudo mkdir /home/username/{public_html, uploads} sudo chmod 755 /home/username/{public_html, uploads} sudo chown username:sftponly /home/username/{public_html, uploads}

Kung ang isang web application ay gumagamit ng direktoryo ng public_html ng gumagamit bilang ugat ng dokumento, ang mga pagbabagong ito ay maaaring humantong sa mga isyu ng pahintulot. Halimbawa, kung nagpapatakbo ka ng WordPress kakailanganin mong lumikha ng isang pool ng PHP na tatakbo bilang gumagamit na nagmamay-ari ng mga file at idagdag ang mga webs erver sa pangkat na sftponly .

Pag-configure ng SSH

Ang SFTP ay isang subsystem ng SSH at sumusuporta sa lahat ng mga mekanismo ng pagpapatunay ng SSH.

Buksan ang SSH configuration file /etc/ssh/sshd_config sa iyong text editor:

sudo nano /etc/ssh/sshd_config

Maghanap para sa linya na nagsisimula sa Subsystem sftp , kadalasan sa dulo ng file. Kung ang linya ay nagsisimula sa isang hash # alisin ang hash # at baguhin ito upang magmukhang mga sumusunod:

/ etc / ssh / sshd_config

Subsystem sftp internal-sftp

Patungo sa dulo ng file, ang sumusunod na bloke ng mga setting:

/ etc / ssh / sshd_config

Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

ChrootDirectory direktoryo ang landas sa direktoryo ng chroot. %h ibig sabihin ng %h ang direktoryo ng tahanan ng gumagamit. Ang direktoryo na ito, ay dapat pag-aari ng gumagamit ng ugat at hindi mailimbag ng anumang iba pang gumagamit o grupo.

Maging maingat kapag binabago ang file ng pagsasaayos ng SSH. Ang hindi tamang pagsasaayos ay maaaring maging sanhi ng serbisyo ng SSH upang mabigo magsimula.

Kapag tapos ka na i-save ang file at i-restart ang serbisyo ng SSH upang mailapat ang mga pagbabago:

sudo systemctl restart ssh

Sa CentOS at Fedora ang serbisyo ng ssh ay pinangalanan sshd :

sudo systemctl restart sshd

Pagsubok sa Pag-configure

Ngayon na na-configure mo ang chotot ng SFTP maaari mong subukang mag-login sa malayong makina sa pamamagitan ng SFTP gamit ang mga kredensyal ng gumagamit ng chrooted. Sa karamihan ng mga kaso, gagamit ka ng isang desktop SFTP client tulad ng FileZilla ngunit sa halimbawang ito, gagamitin namin ang utos ng sftp.

Magbukas ng isang koneksyon sa SFTP gamit ang utos ng sftp na sinundan ng malayuang username ng server at ang IP address ng server o domain name:

sftp [email protected]

Sasabihan ka upang ipasok ang password ng gumagamit. Kapag nakakonekta, ang remote server ay magpapakita ng isang mensahe ng kumpirmasyon at ang sftp> prompt:

[email protected]'s password: sftp>

Patakbuhin ang utos ng pwd , tulad ng ipinakita sa ibaba, at kung ang lahat ay gumagana tulad ng inaasahan na utos ay dapat bumalik / .

sftp> pwd Remote working directory: /

Maaari mo ring ilista ang mga malalayong file at direktoryo gamit ang ls utos at dapat mong makita ang mga direktoryo na dati naming nilikha:

sftp> ls public_html uploads

Konklusyon

Sa tutorial na ito, nalaman mo kung paano mag-setup ng isang SFTP Chroot Jail environment sa iyong Linux server at higpitan ang pag-access ng gumagamit sa kanilang direktoryo sa bahay.

Bilang default, nakikinig ang SSH sa port 22. Ang pagbabago ng default na SSH port ay nagdaragdag ng isang karagdagang layer ng seguridad sa iyong server sa pamamagitan ng pagbabawas ng panganib ng awtomatikong pag-atake. Maaaring gusto mo ring mag-set up ng isang pagpapatunay na batay sa SSH key at kumonekta sa server nang hindi pumapasok sa isang password.

ssh sftp security