Windows Tips & News

แก้ไขการเข้าถึง FTP จากพีซีไคลเอนต์ Linux โดยเปิดใช้งานไฟร์วอลล์

วันนี้ ฉันต้องการแบ่งปันประสบการณ์ส่วนตัวของฉันกับการเข้าถึง FTP ใน Linux ขอบคุณระบบปฏิบัติการใหม่จาก Microsoft ซึ่งฉันพบว่าไม่เหมาะกับการใช้งานประจำวัน ฉันจึงเปลี่ยนมาใช้ Linux เมื่อสองสามปีก่อน ฉันใช้เซิร์ฟเวอร์ FTP ในเครือข่ายในบ้านของฉัน และไม่สามารถเข้าถึงได้จากพีซีไคลเอนต์ของฉันที่ทำงานอยู่ Linux ซึ่งมีกฎไฟร์วอลล์เพื่อบล็อกการเชื่อมต่อขาเข้า เช่น นโยบาย INPUT ถูกตั้งค่าเป็น REJECT ใน iptables นี่คือวิธีที่ฉันแก้ไขปัญหา

ฉันถือว่านโยบาย OUTPUT นั้นยอมรับได้ทั้งบนเครื่องไคลเอนต์และเซิร์ฟเวอร์

ซอฟต์แวร์เซิร์ฟเวอร์ FTP จำเป็นต้องมีพอร์ตที่เปิดอยู่บนพีซีไคลเอนต์เพื่อสร้างการเชื่อมต่อแบบพาสซีฟ ในกรณีของฉัน พอร์ตทั้งหมดถูกปิด ยกเว้นพอร์ตที่เปิดไว้อย่างชัดเจนสำหรับซอฟต์แวร์ที่ต้องการการเชื่อมต่อขาเข้า เช่น ไคลเอนต์ torrent ของฉัน เซิร์ฟเวอร์สื่อ UPnP และอื่นๆ ปัญหาคือคุณไม่สามารถคาดเดาได้ว่าจะใช้พอร์ตใดในการเชื่อมต่อกับเครื่องไคลเอนต์ของคุณ เป็นพอร์ตสุ่มทุกครั้งที่คุณทำการเชื่อมต่อ ฉันค้นพบสองวิธีแก้ไข

โซลูชัน # 1 ใช้โมดูลเคอร์เนล nf_conntrack_ftp
โมดูลเคอร์เนล nf_conntrack_ftp อนุญาตให้คุณปลดบล็อกการเข้าถึงพอร์ตที่จำเป็นสำหรับเซิร์ฟเวอร์ FTP โดยอัตโนมัติทุกครั้งที่คุณทำการเชื่อมต่อ ข้อกำหนดเพียงอย่างเดียวสำหรับโมดูลนี้คือบรรทัดต่อไปนี้ในกฎ iptables ของคุณ (โดยปกติคือ /etc/iptables/iptables.rules) บนพีซีไคลเอนต์:

$IPT -A INPUT -i eth0 -m state --state RELATED, ESTABLISHED -j ACCEPT

มี eth0 คือชื่ออุปกรณ์เครือข่ายของคุณ

ถัดไป คุณต้องโหลด nf_conntrack_ftp หากยังไม่ได้โหลด เรียกใช้คำสั่งต่อไปนี้ในฐานะรูทบนพีซีไคลเอนต์

# modprobe nf_conntrack_ftp

หากเซิร์ฟเวอร์ของคุณใช้พอร์ตที่ไม่ใช่ค่าเริ่มต้น (นอกเหนือจากพอร์ต 21) ให้ใช้คำสั่งต่อไปนี้:

# modprobe nf_conntrack_ftp พอร์ต=your_port

สิ่งนี้จะให้การเชื่อมต่ออัตโนมัติกับพอร์ตที่จำเป็นทั้งหมดระหว่างเซิร์ฟเวอร์ FTP และซอฟต์แวร์ไคลเอนต์ของคุณ ใช้งานได้จนกว่าคุณจะรีบูทพีซีของคุณ

ในการทำการเปลี่ยนแปลงนี้อย่างถาวร คุณต้องสร้างไฟล์ข้อความใหม่ /etc/modules-load.d/conntrack_ftp.conf และเพิ่มบรรทัดต่อไปนี้ในไฟล์นี้:

nf_conntrack_ftp

ในกรณีของพอร์ตเซิร์ฟเวอร์ที่ไม่ใช่ค่าเริ่มต้น คุณต้องสร้างไฟล์เพิ่มเติม /etc/modprobe.d/conntrack_ftp.conf ด้วยเนื้อหาต่อไปนี้:

ตัวเลือก nf_conntrack_ftp พอร์ต=

นี้ควรจะเพียงพอ

โซลูชัน # 2 ใช้ช่วงพอร์ตแบบพาสซีฟคงที่
หากคุณไม่สามารถใช้โมดูล nf_conntrack_ftp ได้ คุณสามารถตั้งค่าช่วงพอร์ตคงที่สำหรับซอฟต์แวร์เซิร์ฟเวอร์ FTP และเปิดบนไคลเอ็นต์พีซี ตัวอย่างเช่น นี่คือวิธีการสำหรับแอป vsftpd

  1. ในไฟล์คอนฟิกูเรชันของ vsftpd ซึ่งโดยปกติคือ /etc/vsftpd.conf ให้เพิ่มบรรทัดต่อไปนี้:
    pasv_min_port=5500. pasv_max_port=6500

    ควรทำบนฝั่งเซิร์ฟเวอร์ หลังจากนั้นคุณควรรีสตาร์ท vsftpd

  2. ในกฎ iptables ของคุณ (โดยปกติคือ /etc/iptables/iptables.rules) บนพีซีไคลเอนต์ ให้เพิ่มกฎต่อไปนี้:
     $IPT -A อินพุต -p tcp -s  --dport 5500:6500 -j ยอมรับ
  3. ใช้กฎ iptables ดังนี้:
    # iptables-restore < /etc/iptables/iptables.rules

แค่นั้นแหละ.

วิธีสำรองข้อมูลโฟลเดอร์ Quick Access ใน Windows 10

วิธีสำรองข้อมูลโฟลเดอร์ Quick Access ใน Windows 10

ที่แนะนำ: คลิกที่นี่เพื่อแก้ไขปัญหา Windows และเพิ่มประสิทธิภาพระบบต่อไปนี้คือวิธีสำรองข้อมูลโฟลเ...

อ่านเพิ่มเติม

Project Latte จะนำแอพ Android ดั้งเดิมมาสู่ Windows 10 Desktop

Project Latte จะนำแอพ Android ดั้งเดิมมาสู่ Windows 10 Desktop

ที่แนะนำ: คลิกที่นี่เพื่อแก้ไขปัญหา Windows และเพิ่มประสิทธิภาพระบบMicrosoft กำลังทำงานในเลเยอร์ซ...

อ่านเพิ่มเติม

Microsoft ได้เปิดตัวแอพ Bing Wallpapers สำหรับ Android

Microsoft ได้เปิดตัวแอพ Bing Wallpapers สำหรับ Android

ที่แนะนำ: คลิกที่นี่เพื่อแก้ไขปัญหา Windows และเพิ่มประสิทธิภาพระบบMicrosoft ได้เปิดตัวแอพใหม่สำห...

อ่านเพิ่มเติม