ถ่ายโอนไฟล์โดยใช้ SFTP และกรงบน Debian และ Ubuntu

!สวัสดีเพื่อน! วันนี้ผมขอนำเสนอทางเลือกอื่นนอกเหนือจากการใช้ FTP Server เพื่อการถ่ายโอนไฟล์ที่ปลอดภัย เป็นเพื่อนร่วมงานแล้ว KZKG ^ กาอาระ โพสต์หนึ่งตามแพ็คเกจ เจลคิต. สิ่งที่เราจะพัฒนาขึ้นอยู่กับแพ็คเกจที่เรามีอยู่ในที่เก็บของเรา
เราจะเห็น:

  • จำเป็นต้องป้อน
  • เราจะกำหนดค่าเซิร์ฟเวอร์ Openssh ได้อย่างไร?
  • เราจะสร้างผู้ใช้ได้อย่างไร?
  • เราจะปรับเปลี่ยนโฮมไดเร็กทอรีเพื่อให้กรงทำงานได้อย่างไร?

จำเป็นต้องป้อน
เรามักจะต้องคัดลอกไฟล์จากคอมพิวเตอร์ระยะไกลไปยังเครื่องของเรา หลายคนถามฉันเกี่ยวกับเรื่องนี้ ฉันจะติดตั้ง FTP หรือไม่ฉันจะติดตั้ง SAMBA ได้อย่างไร จากง่ายไปซับซ้อน ตั้งแต่เริ่มแรกทำไมต้องทำให้ตัวเองซับซ้อนถ้าเรามี OpenSSH-เซิร์ฟเวอร์ ติดตั้ง?. และถ้าเราไม่มีให้ใช้คำสั่งง่ายๆ:

ความถนัดติดตั้ง openssh-server

ตอนนี้เรามีแล้ว! จากนั้นเราจะสามารถถ่ายโอนไฟล์ได้อย่างปลอดภัยผ่านโปรโตคอล SFTP (Secure File Transfer Protocol) ซึ่งใช้ SSH (Secure Shell) ในการเข้ารหัส

ตามค่าเริ่มต้นผู้ใช้ที่ได้รับอนุญาตให้เริ่มเซสชันระยะไกลผ่าน ผู้ใช้ ssh @ ทีมของฉันพวกเขาจะสามารถเห็นไฟล์เกือบทั้งหมดที่เก็บไว้ในระบบของเราซึ่งอาจไม่ถูกใจเราหรือด้วยเหตุผลด้านความปลอดภัยเราไม่ควรอนุญาต

บทความนี้จะช่วยเรากำหนดค่าไฟล์ OpenSSH-เซิร์ฟเวอร์ เพื่อให้ผู้ใช้ที่เราต้องการถูก จำกัด ไว้ที่ไดเรกทอรีส่วนตัวของพวกเขา / home / user. เราชี้แจงว่า ด้วยวิธีนี้ผู้ใช้ที่ประกาศจะไม่สามารถเริ่มเซสชันระยะไกลผ่านคอนโซล ssh หรือผ่าน PuTTy ได้ พวกเขาจะสามารถถ่ายโอนไฟล์ไปยังหรือจากไดเรกทอรีส่วนตัวบนคอมพิวเตอร์หรือเซิร์ฟเวอร์ของเราเท่านั้น.

วิธีการที่อธิบายไว้ที่นี่ใช้ได้กับ Debian เวอร์ชัน 5 (Lenny) หรือสูงกว่าและสำหรับ Ubuntu เวอร์ชัน 9.04 หรือสูงกว่า เวอร์ชันของแพ็คเกจ SSH ของ Hardy หรือ Ubuntu 8.04 ล้าสมัยมากและไม่รองรับการกำหนดค่าที่เราจะอธิบายด้านล่าง

เราจะกำหนดค่าเซิร์ฟเวอร์ Openssh ได้อย่างไร?
ในฐานะผู้ใช้ ราก เราแก้ไขไฟล์ / etc / SSH / sshd_config ด้วยโปรแกรมแก้ไขข้อความง่ายๆ เราขอแนะนำให้ใช้ นาโน ในโหมดคอนโซล

นาโน / etc / ssh / sshd_config

เราต้องการให้บรรทัดต่อไปนี้เป็นปัจจุบัน:

ระบบย่อย sftp

ใน Lenny และ Squeeze มี:

ระบบย่อย sftp / usr / lib / openssh / sftp-server

ในกรณีที่ไม่มีอยู่ให้เพิ่มที่ท้ายไฟล์:

ระบบย่อย sftp internal-sftp

เราดำเนินการแก้ไขไฟล์ต่อไป sshd_config และเราเพิ่มในตอนท้าย:

จับคู่ group-sftp ChrootDirectory% h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp

เราบันทึกการเปลี่ยนแปลงและเริ่มบริการใหม่:

/etc/init.d/ssh รีสตาร์ท

เราจะสร้างผู้ใช้ได้อย่างไร?
ก่อนอื่นเราสร้าง«กลุ่ม»ที่เราประกาศใน sshd_config. ระวังชื่อที่เราเลือกไว้ก่อนหน้านี้จะไม่เป็นไปได้ว่ามีอยู่แล้วและเป็นกลุ่มที่อยู่ในระบบ หากเราไม่ต้องการ จำกัด ผู้ใช้ที่มีอยู่ในระบบของเราเราต้องสร้างผู้ใช้ใหม่เพื่อให้สามารถถ่ายโอนไฟล์ได้ เพื่อให้กรงใช้งานได้เราต้องทำให้พวกมันเป็นสมาชิกของกลุ่มที่มีปัญหา

addgroup group-sftp adduser user1 adduser user2 [----] usermod -G group-sftp user1 usermod -G group-sftp user2

ในการตรวจสอบการสร้างกลุ่มและผู้ใช้เราสามารถทำได้:

น้อย / etc / รหัสผ่านน้อยกว่า / etc / group ls -l / home

และผู้ใช้ควรปรากฏ ผู้ใช้ 1 y ผู้ใช้ 2เช่นเดียวกับกลุ่ม กลุ่ม -sftp และสิ่งที่สอดคล้องกับผู้ใช้ที่สร้างขึ้น นอกจากนี้เมื่อแสดงรายการไดเรกทอรี / หน้าแรกไดเรกทอรีหลักของผู้ใช้แต่ละคนที่สร้างขึ้นจะปรากฏขึ้น

เราจะปรับเปลี่ยนโฮมไดเร็กทอรีเพื่อให้กรงทำงานอย่างมีประสิทธิภาพได้อย่างไร?
เราต้องเพิ่มความปลอดภัยให้กับโฟลเดอร์ส่วนบุคคลของผู้ใช้แต่ละคนที่สร้างขึ้นเพื่อที่พวกเขาจะไม่สามารถสร้างโฟลเดอร์เพิ่มเติมภายใต้ไดเร็กทอรีส่วนบุคคลของพวกเขาและด้วยสิทธิ์ในการเขียนในที่ที่เราต้องการ (ไม่ใช่ที่ที่พวกเขาต้องการ) 🙂:

chown root: root / home / user1 / home / user2 chmod 755 / home / user1 / home / user2 cd / home / user1 เอกสาร mkdir html_public chown user1: user1 * cd / home / user2 เอกสาร mkdir html_public chown user2: user2 *

ผู้ใช้ที่อยู่ในกลุ่ม กลุ่ม -sftpจากนี้ไปพวกเขาจะสามารถเข้าสู่ระบบด้วยชื่อและรหัสผ่านผ่าน SFTP เท่านั้นและพวกเขาจะสามารถถ่ายโอนไฟล์เข้าและออกจากไดเร็กทอรีที่อยู่ด้านล่างโฟลเดอร์ส่วนตัวของพวกเขาและที่สร้างขึ้นโดยเรา แต่จะไม่เป็น สามารถดูระบบไฟล์ที่เหลือของเรา

สำหรับการถ่ายโอนไฟล์และโฟลเดอร์เราสามารถใช้ Nautilus, Konqueror, WinSCP, FileZilla และอื่น ๆ ที่รองรับโปรโตคอล SFTP ในกรณีของ Konqueror เราต้องใช้ ปลา: // user @ remotecomputer.

เราหวังว่าบทความนี้จะเป็นประโยชน์สำหรับเรา!
จนกว่าจะถึงการผจญภัยครั้งต่อไปนะเพื่อน!

sftp_nautilus


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   ฐานสิบหก dijo

    บทความที่ดี วิธีแชร์ไฟล์ที่ปลอดภัยมาก ขอบคุณมากสำหรับคำอธิบาย 🙂

  2.   การสงครามฟ้าแลบ dijo

    Excelente

  3.   โลโล dijo

    และไม่สะดวกสบายในการใช้ sshfs?

    สำหรับทีมของเราโฟลเดอร์ระยะไกลจะปรากฏเป็นอีกหนึ่งโฟลเดอร์ที่มีลักษณะเดียวกัน

  4.   จาโคโบอีดัลโก dijo

    สวัสดี Federico เป็นบทความที่ยอดเยี่ยมเสมอ ฉันดีใจมากที่สามารถอ่านโพสต์ของคุณจากอินเทอร์เน็ตได้ในขณะนี้
    กอด
    Jako

    1.    นักล่า dijo

      Jacobo ไม่มี Federico คนไหนที่ไม่เห็นด้วยโดยตรง เฮ้เมื่อคุณกลับมาไม่มีอูบุนตูอีกต่อไปคุณจะวาดสีเขียวของมนุษย์และเปิดใช้งานเต็มรูปแบบ กอด. 😉

  5.   KZKG ^ กาอาระ dijo

    คุณทำผลงานได้อย่างยอดเยี่ยมติดตามต่อไป😀

    1.    เฟเดริโก้ dijo

      ขอบคุณ KZKG ^ Gaara หนึ่งพันและขอบคุณทุกคนสำหรับความคิดเห็นของคุณ

  6.   Jaenense dijo

    ผู้ใช้สามารถถูกขังในโฟลเดอร์อื่นที่ไม่ใช่ / home / user / … .. ?

    สิ่งที่ฉันต้องการทำคือกักขังผู้ใช้ในโฟลเดอร์ / media / hdd / …
    ฉันต้องทำแบบนี้เนื่องจากเซิร์ฟเวอร์เป็น Raspberry Pi พร้อม Raspbian และมีโฟลเดอร์ / home / … / ในการ์ด sd ซึ่งจะเติมในเวลาไม่นาน

    ฉันได้ลองใช้หลายวิธีและผลลัพธ์ในไคลเอนต์คือ«ท่อแตก»เสมอและผลลัพธ์ในเซิร์ฟเวอร์ที่ร้ายแรง: การเป็นเจ้าของที่ไม่ดีหรือโหมดสำหรับคอมโพเนนต์ไดเรกทอรี chroot « / media / HDD / »

    ขอบคุณมากทุกคน

    1.    เฟเดริโก้ dijo

      ฉันคิดว่าคุณจะต้องบอกระบบว่าโฮมโฟลเดอร์ของผู้ใช้นั้นคือ / home / HDD ตราบใดที่พาร์ติชันนั้นมีรูปแบบ linux ดั้งเดิมนั่นคือ ext4; ต่อ 3; เป็นต้น ตัวอย่างเช่นหากผู้ใช้เป็น jae - สำหรับระยะสั้นคุณต้องดำเนินการดังนี้:

      : ~ # usermod –move-home –home / home / HDD jae

      นอกจากนี้ยังเห็นคนใช้หุ่น ไชโย

  7.   เออร์วิงเฮอนันเดซ dijo

    ฉันมีปัญหาหรือฉันมีบริการใน amazon กับเพื่อนสาธารณะและฉันต้องเข้า sftp เพื่อวางหรือลบไฟล์
    ฉันเคยทำมาก่อนและทุกอย่างเรียบร้อยดี แต่วันนี้เขาทำบางอย่างกับฉันที่ไม่เคยเกิดขึ้นกับฉัน
    ภายใน ami มีโฟลเดอร์จำนวนหนึ่งและหนึ่งในนั้นคือพอร์ทัลอินเทอร์เน็ตแบบแคปทีฟ (เพจสำหรับผู้ใช้ของฉัน) ปรากฎว่าที่นั่นฉันทำโปรโมชั่นและประชาสัมพันธ์สำหรับผู้ใช้ของฉันและฉันทำการแก้ไขและอัปโหลดผ่าน sftp (ด้วย winscp ). สิทธิ์ root และ root pass
    ฉันให้ chmod 777 สำหรับสิทธิ์ในการเขียนและทุกอย่างก็เป็นไปด้วยดี
    แต่วันนี้เมื่ออัปเดตเว็บและอัปโหลด index.html และไฟล์อื่น ๆ มันตั้งชื่อให้ฉัน แต่มันไม่เหลือไบต์ที่บอกว่าเป็นศูนย์ (ว่าง) ตอนนี้คุณไม่เห็นอะไรบนเว็บของฉัน
    ฉันปิดเซสชันแล้วเข้าอีกครั้งให้สิทธิ์อีกครั้งเปลี่ยนผู้ใช้อัปเดตพยายามใส่ไฟล์อื่นสร้างไฟล์ใหม่และมันก็ยังคงเหมือนเดิมเสมอ
    มันให้ไฟล์แก่ฉัน แต่ไม่มีข้อมูล
    ใครช่วยได้บ้าง ???
    ฉันขอขอบคุณสำหรับคำตอบของคุณ
    ก่อนอื่นขอขอบคุณ
    atte
    ลิชเออร์วิงเฮอร์นันเดซ

  8.   FCC dijo

    สวัสดีวิธีใช้ filezilla ฉันเห็นหลายโหมดแล้วและยังไม่สามารถเชื่อมต่อได้
    มันผิด.

  9.   เปโดร dijo

    สวัสดีตอนบ่าย,

    ทำตามขั้นตอนและ caged ทำงานได้อย่างสมบูรณ์อย่างไรก็ตามเมื่อพยายามเขียนลงในโฟลเดอร์«เอกสาร»หรือ« html_publico »มันทำให้ฉันถูกปฏิเสธการเข้าถึง มีสิทธิ์ที่กล่าวถึงและไม่มีสิ่งใดที่อนุญาต

    drwxr-xr-x 2 ผู้ใช้ 1 ผู้ใช้ 1 4096 11 มีนาคม 13:16 น. เอกสาร
    drwxr-xr-x 2 user2 user2 4096 11 มีนาคม 13:16 html_publico

    ผลลัพธ์คือการเข้าถึงถูกปฏิเสธเมื่อพยายามเขียนลงในโฟลเดอร์ใด ๆ อย่างไรก็ตามการดำเนินการรับจะอนุญาตให้ทำได้

    ฉันหวังว่าคุณจะสามารถช่วยฉันได้โดยเร็วที่สุด

    อาศิรพจน์