Limiting Access with SFTP Jails on Debian and Ubuntu
Configure OpenSSH
- แก้ไขไฟล์ /etc/ssh/sshd_config (ก่อนแก้ไขก็สำรองไว้ก่อนนะครับ)
- vi /etc/ssh/sshd_config
- หาคำว่าบรรทัดที่ขึ้นต้นด้วยคำประมาณนี้ Subsystem sftp ถ้ามันไม่มีก็เพิ่มเข้าไปได้เลย
Subsystem sftp internal-sftp
- จากนั้นก็เพิ่มค่าเล่านี้ไว้ต่อจากบรรทัดสุดท้ายของไฟล์ sshd_config นี้ (ในที่นี้บรรทัดสุดท้ายผมคือ UsePAM yes เราก็เพิ่มค่าด้านล่างนี้ต่อท้ายบรรทัดนี้แหละ
Match group filetransfer
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
- จากนั้นทำการ save ไฟล์ให้เรียบร้อย และ รีสตาร์ท service ssh ให้เรียบร้อยซะ
sudo service ssh restart
Modify User Accounts
- ขั้นแรกให้เราเพิ่ม group ในระบบ Linux เราก่อน เพราะเราจะจัดการ user ประเภทนี้ได้ง่าย
- ในที่นี้จะเพิ่ม group ชื่อ filetransfer
sudo addgroup --system filetransfer
- จากนั้นเราจะมาปรับแต่ค่าให้ user ที่จะถูกจำกัดให้เข้าได้เฉพาะ home ของตัวเอง ในที่นี้จะสมมุติให้ user ที่จะโดนจำกัดสิทธิ์ชื่อ bob เพิ่ม user โดยคำสั่ง
sudo adduser bob
- ใน /home ของระบบก็จะได้ /home/bob ขึ้นมา
- จากนั้นกำหนดสิทธิ์ดังนี้
sudo usermod -G filetransfer bob
sudo chown root:root /home/bob
sudo chmod 755 /home/bob
- ต่อมาเราต้องสร้าง folder เริ่มต้นไว้ใต้ /home/bob/ เพราะ bob จะไม่มีสิทธิ์ทำอะไรภายใต้ /home/bob/ ได้เลย ทำได้เพียงภายใต้ /home/bob/subfolder ที่เรากำลังจะสร้างไว้ให้เท่านั้น
cd /home/bob
sudo mkdir docs public_html
sudo chown bob:filetransfer *
- เสร็จแล้วครับ ผู้เขียนทดสอบโดยใช้ winscp login ด้วย bob เข้าไปดู ที่ debian 6 squeeze
- การตั้งค่านี้ใช้ได้ครับ และใช้ได้แค่ sftp ด้วยแหละ scp หรือ ssh ไม่สามารถใช้งานได้ด้วยแหละเยี่ยมจริงๆ
อ้างอิง
- https://www.linode.com/docs/tools-reference/tools/limiting-access-with-sftp-jails-on-debian-and-ubuntu
- http://stackoverflow.com/questions/24646964/sftp-with-ssh-restrict-access-to-home-directory-form-only-some-users
- http://askubuntu.com/questions/134425/how-can-i-chroot-sftp-only-ssh-users-into-their-homes
No comments:
Post a Comment