Giunsa Pagpugong ang mga Gumagamit sa SFTP sa Mga Direktoryo sa Balay Gamit ang chroot Jail


Niini nga pagtulun-an, atong hisgutan kung unsaon pagpugong sa mga tiggamit sa SFTP sa ilang mga direktoryo sa balay o piho nga mga direktoryo. Kini nagpasabot nga ang user maka-access lamang sa iyang tagsa-tagsa ka home directory, dili ang tibuok file system.

Ang pagpugong sa mga direktoryo sa balay sa mga tiggamit hinungdanon, labi na sa usa ka gipaambit nga palibot sa server, aron ang usa ka dili awtorisado nga tiggamit dili mosilip sa mga file ug folder sa ubang tiggamit.

Importante: Palihug timan-i usab nga ang katuyoan niini nga artikulo mao ang paghatag og SFTP access lamang, dili SSH logins, pinaagi sa pagsunod niini nga artikulo adunay mga permiso sa pagbuhat sa file transfer, apan dili gitugotan sa pagbuhat sa usa ka hilit nga SSH session.

Ang pinakasimple nga paagi sa pagbuhat niini, mao ang paghimo og chrooted jail environment para sa SFTP access. Kini nga pamaagi parehas alang sa tanan nga mga operating system sa Unix/Linux. Gamit ang chrooted environment, mahimo natong limitahan ang mga tiggamit sa ilang home directory o sa usa ka partikular nga direktoryo.

Limitahi ang mga Gumagamit sa Mga Direktoryo sa Balay

Niini nga seksyon, maghimo kami ug bag-ong grupo nga gitawag ug sftpgroup ug mag-assign sa husto nga pagpanag-iya ug pagtugot sa mga account sa gumagamit. Adunay duha ka mga kapilian sa pagpugong sa mga tiggamit sa balay o piho nga mga direktoryo, atong makita ang duha ka paagi niini nga artikulo.

Atong i-restrict ang kasamtangan nga user, pananglitan tecmint, ngadto sa iyang home directory nga ginganlan og /home/tecmint. Alang niini, kinahanglan ka maghimo usa ka bag-ong grupo sa sftpgroup gamit ang command groupadd sama sa gipakita:

# groupadd sftpgroup

Sunod, i-assign ang user nga 'tecmint' sa sftpgroup nga grupo.

# usermod -G sftpgroup tecmint

Makahimo ka usab og bag-ong user gamit ang useradd command, pananglitan senthil ug i-assign ang user ngadto sa sftpusers group.

# adduser senthil -g sftpgroup -s /sbin/nologin
# passwd tecmint

Ablihi ug idugang ang mosunod nga mga linya sa /etc/ssh/sshd_config configuration file.

Subsystem sftp internal-sftp
 
   Match Group sftpgroup
   ChrootDirectory /home
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Pag-save ug paggawas sa file, i-restart ang serbisyo sa sshd aron mahimo ang bag-ong mga pagbag-o.

# systemctl restart sshd
OR
# service sshd restart

Kung imong chroot ang daghang mga tiggamit sa parehas nga direktoryo, kinahanglan nimo nga usbon ang mga pagtugot sa direktoryo sa balay sa matag tiggamit aron mapugngan ang tanan nga tiggamit sa pag-browse sa mga direktoryo sa balay sa matag usa nga tiggamit.

# chmod 700 /home/tecmint

Karon, panahon na aron susihon ang pag-login gikan sa usa ka lokal nga sistema. Sulayi nga i-ssh ang imong hilit nga sistema gikan sa imong lokal nga sistema.

# ssh [email 

Dinhi,

  1. tecmint – username sa layo nga sistema.
  2. 192.168.1.150 – IP address sa layo nga sistema.

[email 's password: 
Could not chdir to home directory /home/tecmint: No such file or directory
This service allows sftp connections only.
Connection to 192.168.1.150 closed.

Dayon, pag-access sa hilit nga sistema gamit ang SFTP.

# sftp [email 
[email 's password: 
Connected to 192.168.1.150.
sftp>

Atong susihon ang kasamtangan nga direktoryo sa pagtrabaho:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Dinhi, tecmint mao ang home directory. Cd sa direktoryo sa tecmint ug paghimo sa mga file o folder nga imong gusto.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Limitahi ang mga Gumagamit sa usa ka Piho nga Direktoryo

Sa among miaging pananglitan, among gilimitahan ang mga naglungtad nga tiggamit sa direktoryo sa balay. Karon, atong tan-awon kung giunsa ang pagpugong sa usa ka bag-ong tiggamit sa usa ka naandan nga direktoryo.

Paghimo og bag-ong grupo sftpgroup.

# groupadd sftpgroup

Sunod, paghimo og direktoryo alang sa SFTP nga grupo ug pag-assign og mga permiso alang sa root user.

# mkdir -p /sftpusers/chroot
# chown root:root /sftpusers/chroot/

Sunod, paghimo og bag-ong mga direktoryo alang sa matag tiggamit, diin sila adunay hingpit nga pag-access. Pananglitan, maghimo kami og tecmint user ug kini bag-ong home directory nga adunay saktong pagtugot sa grupo gamit ang mosunod nga serye sa mga sugo.

# adduser tecmint -g sftpgroup -s /sbin/nologin
# passwd tecmint
# mkdir /sftpusers/chroot/tecmint
# chown tecmint:sftpgroup /sftpusers/chroot/tecmint/
# chmod 700 /sftpusers/chroot/tecmint/

Usba o idugang ang mosunod nga mga linya sa katapusan sa file:

#Subsystem  	sftp	/usr/libexec/openssh/sftp-server
Subsystem sftp  internal-sftp
 
Match Group sftpgroup
   ChrootDirectory /sftpusers/chroot/
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Pag-save ug paggawas sa file. I-restart ang serbisyo sa sshd aron ma-epekto ang natipig nga mga pagbag-o.

# systemctl restart sshd
OR
# service sshd restart

Mao kana, mahimo nimong susihon pinaagi sa pag-log in sa imong hilit nga SSH ug SFTP server pinaagi sa paggamit sa lakang nga gihatag sa ibabaw sa Verify SSH ug SFTP login.

Hinumdomi nga kini nga pamaagi makapugong sa pag-access sa kabhang, ie dili nimo ma-access ang sesyon sa kabhang sa hilit nga sistema gamit ang SSH. Mahimo ra nimo ma-access ang mga hilit nga sistema pinaagi sa SFTP ug mahimo ang pagbalhin sa file ngadto ug gikan sa lokal ug hilit nga mga sistema.

Konklusyon

Karon nahibal-an na nimo kung giunsa ang pagpugong sa mga direktoryo sa balay sa mga tiggamit gamit ang usa ka palibot sa Chroot sa Linux. Kung nakit-an nimo kini nga mapuslanon, ipaambit kini nga artikulo sa imong mga social network ug ipahibalo kanamo sa seksyon sa komentaryo sa ubos kung adunay uban pang mga pamaagi aron mapugngan ang mga direktoryo sa balay sa mga tiggamit.