CentOS 7 - Setup SFTP with Chroot jail
สารบัญ:
ในบทช่วยสอนนี้เราจะอธิบายวิธีการตั้งค่าสภาพแวดล้อม SFTP Chroot Jail ที่จะ จำกัด ผู้ใช้ไปยังไดเรกทอรีบ้านของพวกเขา ผู้ใช้จะมีการเข้าถึง SFTP เท่านั้นการเข้าถึง SSH จะถูกปิดใช้งาน คำแนะนำเหล่านี้ควรใช้ได้กับการกระจาย Linux ที่ทันสมัยรวมถึง Ubuntu, CentOS, Debian และ Fedora
สร้างกลุ่ม SFTP
แทนที่จะกำหนดค่าเซิร์ฟเวอร์ OpenSSH สำหรับผู้ใช้แต่ละคนเราจะสร้างกลุ่มใหม่และเพิ่มผู้ใช้ที่ chrooted ทั้งหมดของเราในกลุ่มนี้
รันคำสั่ง
groupadd
ต่อไปนี้เพื่อสร้างกลุ่มผู้ใช้
sftponly
:
sudo groupadd sftponly
คุณสามารถตั้งชื่อกลุ่มตามที่คุณต้องการ
การเพิ่มผู้ใช้ไปยังกลุ่ม SFTP
ขั้นตอนต่อไปคือการเพิ่มผู้ใช้ที่คุณต้องการ จำกัด ในกลุ่ม
sftponly
หากนี่เป็นการตั้งค่าใหม่และไม่มีผู้ใช้อยู่คุณสามารถสร้างบัญชีผู้ใช้ใหม่ได้โดยพิมพ์:
sudo useradd -g sftponly -s /bin/false -m -d /home/username username
- ตัวเลือก
-g sftponly
จะเพิ่มผู้ใช้ไปยังกลุ่ม-g sftponly
ตัวเลือก-s /bin/false
ตั้งเปลือกเข้าสู่ระบบของผู้ใช้ โดยการตั้งค่าเปลือกเข้าสู่ระบบ/bin/false
ผู้ใช้จะไม่สามารถเข้าสู่เซิร์ฟเวอร์ผ่าน SSH ตัวเลือก-m -d /home/username
บอกให้ useradd สร้างไดเรกทอรีบ้านผู้ใช้
ตั้งรหัสผ่านที่คาดเดายากสำหรับผู้ใช้ที่สร้างใหม่:
sudo passwd username
มิฉะนั้นหากผู้ใช้ที่คุณต้องการ จำกัด มีอยู่แล้วเพิ่มผู้ใช้ไปยังกลุ่ม
sftponly
และเปลี่ยนเปลือกของผู้ใช้:
sudo usermod -G sftponly -s /bin/false username2
โฮมไดเรกทอรีผู้ใช้จะต้องเป็นเจ้าของโดย root และมีสิทธิ์
755
:
sudo chown root: /home/username
sudo chmod 755 /home/username
เนื่องจากโฮมไดเร็กทอรีผู้ใช้เป็นเจ้าของโดยผู้ใช้รูทผู้ใช้เหล่านี้จะไม่สามารถสร้างไฟล์และไดเร็กทอรีในโฮมไดเร็กทอรีของตนได้ หากไม่มีไดเรกทอรีในบ้านของผู้ใช้คุณจะต้องสร้างไดเรกทอรีใหม่ที่ผู้ใช้จะสามารถเข้าถึงได้อย่างเต็มที่ ตัวอย่างเช่นคุณสามารถสร้างไดเรกทอรีต่อไปนี้:
sudo mkdir /home/username/{public_html, uploads}
sudo chmod 755 /home/username/{public_html, uploads}
sudo chown username:sftponly /home/username/{public_html, uploads}
หากเว็บแอปพลิเคชันใช้ไดเรกทอรี
public_html
ของผู้ใช้เป็นรูทเอกสารการเปลี่ยนแปลงเหล่านี้อาจนำไปสู่ปัญหาการอนุญาต ตัวอย่างเช่นหากคุณใช้งาน WordPress คุณจะต้องสร้างกลุ่ม PHP ที่จะทำงานในฐานะผู้ใช้ที่เป็นเจ้าของไฟล์และเพิ่มเว็บ erver ไปยังกลุ่ม
sftponly
การกำหนดค่า SSH
SFTP เป็นระบบย่อยของ SSH และสนับสนุนกลไกการตรวจสอบความถูกต้อง SSH ทั้งหมด
เปิดไฟล์คอนฟิกูเรชัน SSH
/etc/ssh/sshd_config
ด้วยโปรแกรมแก้ไขข้อความของคุณ:
sudo nano /etc/ssh/sshd_config
ค้นหาบรรทัดที่ขึ้นต้นด้วย
Subsystem sftp
โดยปกติแล้วจะอยู่ที่ท้ายไฟล์ หากบรรทัดขึ้นต้นด้วย hash
#
ลบ hash
#
แล้วแก้ไขเพื่อให้มีลักษณะดังนี้:
Subsystem sftp internal-sftp
ในตอนท้ายของไฟล์บล็อกของการตั้งค่าต่อไปนี้:
Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
คำสั่ง
ChrootDirectory
ระบุเส้นทางไปยังไดเรกทอรี chroot
%h
หมายถึงไดเรกทอรีบ้านของผู้ใช้ ไดเร็กทอรีนี้ต้องเป็นเจ้าของโดยผู้ใช้รูทและไม่สามารถเขียนได้โดยผู้ใช้หรือกลุ่มอื่น
ใช้ความระมัดระวังเป็นพิเศษเมื่อแก้ไขไฟล์กำหนดค่า SSH การกำหนดค่าที่ไม่ถูกต้องอาจทำให้บริการ SSH ล้มเหลวในการเริ่มต้น
เมื่อเสร็จแล้วให้บันทึกไฟล์และเริ่มบริการ SSH ใหม่เพื่อใช้การเปลี่ยนแปลง:
sudo systemctl restart ssh
ใน CentOS และ Fedora บริการ ssh ชื่อ
sshd
:
ทดสอบการกำหนดค่า
ตอนนี้คุณได้กำหนดค่า SFTP chroot แล้วคุณสามารถลองลงชื่อเข้าใช้เครื่องระยะไกลผ่าน SFTP โดยใช้ข้อมูลประจำตัวของผู้ใช้ chrooted ในกรณีส่วนใหญ่คุณจะใช้ไคลเอนต์ SFTP เดสก์ท็อปเช่น FileZilla แต่ในตัวอย่างนี้เราจะใช้คำสั่ง sftp
เปิดการเชื่อมต่อ SFTP โดยใช้คำสั่ง sftp ตามด้วยชื่อผู้ใช้เซิร์ฟเวอร์ระยะไกลและที่อยู่ IP ของเซิร์ฟเวอร์หรือชื่อโดเมน:
sftp [email protected]
คุณจะได้รับแจ้งให้ป้อนรหัสผ่านของผู้ใช้ เมื่อเชื่อมต่อแล้วรีโมตเซิร์ฟเวอร์จะแสดงข้อความยืนยันและพรอมต์
sftp>
:
[email protected]'s password: sftp>
รันคำสั่ง
pwd
ดังที่แสดงด้านล่างและหากทุกอย่างทำงานตามที่คาดไว้คำสั่งควรกลับมา
/
sftp> pwd Remote working directory: /
คุณยังสามารถแสดงรายการรีโมตไฟล์และไดเร็กทอรีโดยใช้
ls
สั่ง
ls
และคุณควรเห็นไดเร็กทอรีที่เราสร้างไว้ก่อนหน้านี้:
ข้อสรุป
ในบทช่วยสอนนี้คุณได้เรียนรู้วิธีการตั้งค่าสภาพแวดล้อม SFTP Chroot Jail บนเซิร์ฟเวอร์ Linux ของคุณและ จำกัด การเข้าถึงของผู้ใช้ไปยังโฮมไดเร็กตอรี่ของผู้ใช้
โดยค่าเริ่มต้น SSH จะฟังพอร์ต 22 การเปลี่ยนพอร์ต SSH เริ่มต้นจะเพิ่มความปลอดภัยให้กับเซิร์ฟเวอร์ของคุณโดยลดความเสี่ยงของการโจมตีโดยอัตโนมัติ คุณอาจต้องการตั้งค่าการรับรองความถูกต้องโดยใช้คีย์ SSH และเชื่อมต่อกับเซิร์ฟเวอร์โดยไม่ต้องป้อนรหัสผ่าน
ssh sftp ความปลอดภัยวิธีการตั้งค่า Metered Connection ใน Windows 10

Windows
วิธีการตั้งค่า gmail ในธันเดอร์เบิร์ด

เรียนรู้วิธีตั้งค่า gmail ใน Thunderbird เรียนรู้เพิ่มเติมเกี่ยวกับการตั้งค่าเซิร์ฟเวอร์ smtp
คุก, ดอร์ซีย์, มัสค์, ซัคประท้วงต่อต้านการห้ามมุสลิมของทรัมป์

เมื่อวันศุกร์ที่ผ่านมาประธานาธิบดีโดนัลด์ทรัมป์ได้ออกคำสั่งผู้บริหารสั่งห้ามผู้อพยพจากเจ็ดประเทศมุสลิมส่วนใหญ่ที่เขย่าซิลิคอนแวลลีย์ ...