ฉันจะสร้างผู้ใช้สำหรับ sftp ได้อย่างไร?


15

ฉันได้เพิ่มผู้ใช้ในระบบผ่านadduserเครื่องมือ จากนั้นใน/etc/passwdฉันพยายามเปลี่ยน/bin/bashไป/sbin/nologinหรือไป/dev/nullแต่ไม่ทำงานเหล่านี้

sftpฉันต้องการผู้ใช้ที่ไม่ได้มีตัวเลือกที่จะได้รับเปลือกโต้ตอบและเพียงกับการใช้งาน มีวิธีหรือไม่?

ฉันรู้ว่ามันถูกถามที่นี่มาก่อน แต่ดูเหมือนว่าไม่มีใครให้คำตอบที่น่าพอใจ


คุณหมายถึงอะไรโดย "ไม่มีโชค"
Paweł Brodacki

ฉันหมายความว่า scp / sftp ระยะไกลไม่ทำงาน ฉันแก้ไขมันโดยใช้เปลือก scponly ตามที่แนะนำโดย Iain
Toni Rosa

คำตอบ:


9

คำสั่งที่คุณควรจะใช้เพื่อเปลี่ยนเปลือกเป็น chsh เปลือก nologin สามารถเป็น/sbin/nologinหรือ/usr/sbin/nologin(ตรวจสอบสิ่งที่คุณมีโดยดูใน/etc/shells) แต่/bin/falseอาจจะเป็นทางเลือกที่ดีกว่า

chsh -s /bin/false user

คุณควรพิจารณาตั้งค่าบางอย่างเช่นscponlyซึ่งจะทำสิ่งที่คุณต้องการ


ขอบคุณสำหรับคำตอบ. ฉันลองกับ shells ภายใน / etc / shell โดยไม่มีโชค ... / bin / false ให้ "การเชื่อมต่อที่หายไป" และ / sbin / nologin ส่งคืน "บัญชีนี้ไม่สามารถใช้งานได้ในขณะนี้" ฉันจะลอง scponly นี้
Toni Rosa

ฉันแก้ไขมันโดยใช้เชลล์ scponly! ไชโย
โทนีโรซ่า

3
คำตอบนี้คือเข็มในหญ้าแห้ง! ตรวจสอบให้แน่ใจ/bin/falseและ/bin/nologinพร้อมใช้งานจริงใน/etc/shells!
Afr

@Afri วิจิตร แต่ ... คุณจะต้องการที่จะอ่านserverfault.com/questions/328395/... นี่เป็นข้อห้ามอย่างยิ่งสวย
Reinderien

@Afr ไม่ได้ใส่nologinใน/etc/shells! serverfault.com/a/328424
RobAu

9

คุณควรจะสามารถใช้ OpenSSH 4.9 ขึ้นไปซึ่งคุณสามารถ chroot ผู้ใช้เพื่อความปลอดภัยที่เพิ่มขึ้น

ใน/etc/ssh/sshd_config:

Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no

จากนั้นเรียกใช้:

chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads

ผู้ใช้จะสามารถเขียนได้เฉพาะ / home / user / uploads เท่านั้น

https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory


+1 ฉันใส่สิ่งนี้ลงในรายการเพื่อตรวจสอบ
user9517

1
ฉันใช้มันและมันใช้งานได้ดี - คุณสามารถให้ผู้ใช้มีทางเลือกในการเข้าสู่ระบบ chroot ด้วยเชลล์ แต่ในกรณีนี้คุณต้องคัดลอกไลบรารีขั้นต่ำและยูทิลิตี้อื่น ๆ ตามที่คาดไว้ Jailkit ( olivier.sessink.nl/jailkit ) มาในสะดวกสำหรับการที่
Eduardo Ivanec

ขอบคุณ ForceCommand เป็นคำใบ้ ฉันไม่ต้องการ chroot แต่ฉันต้องการเข้าสู่ระบบ SFTP ด้วยบัญชีบริการ
AnrDaemon

2

ฉันคิดว่าวิธีที่ดีที่สุดคือกับ mysecureshell

http://mysecureshell.sourceforge.net/en/index.html

คุณสามารถ chroot ผู้ใช้ด้วยวิธีนี้ได้อย่างง่ายดายและ จำกัด แบนด์วิดท์หากจำเป็น


ฉันแก้ไขโดยใช้เชลล์ scponly แต่มันไม่หยุดหย่อนที่จะรู้ว่า mysecureshell นี้
Toni Rosa

1

คุณสามารถเพิ่มผู้ใช้ด้วย-s /bin/falseเพื่อปิดการใช้งานเชลล์ของพวกเขา แต่สิ่งที่คุณควรพิจารณาในการตั้งค่าคือ sftp acccount chrooted วิธีนี้จะ "คุก" ผู้ใช้ลงในไดเรกทอรีของตนเองและป้องกันไม่ให้ผู้ใช้สามารถเข้าถึงหรือแก้ไขไฟล์หรือไดเรกทอรีใด ๆ นอกไดเรกทอรี chroot


ขอบคุณสำหรับคำตอบของคุณ แต่ดูเหมือนจะไม่ทำงาน ฉันได้รับ "การเชื่อมต่อที่หายไป" เมื่อใดก็ตามที่ฉันลองใช้งานโดยใช้ shell / bin / false
Toni Rosa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.