תקן גישת FTP ממחשב לקוח Linux עם חומת אש מופעלת
היום, אני רוצה לחלוק את החוויה האישית שלי עם גישת FTP בלינוקס. בזכות מערכות ההפעלה החדשות מבית מיקרוסופט, שאינן מתאימות לי לשימוש יומיומי, עברתי ללינוקס לפני מספר שנים. אני מפעיל שרת FTP ברשת הביתית שלי, ולא הצלחתי לגשת אליו ממחשב הלקוח שלי לינוקס שיש לה חוקי חומת אש לחסימת חיבורים נכנסים, כלומר מדיניות ה-INPUT מוגדרת ל-REJECT ב iptables. הנה איך תיקנתי את הבעיה.
אני מניח שמדיניות ה-OUTPUT מקובלת הן במחשבי הלקוח והן בשרת.
פתרון מס' 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 אם הוא לא נטען. הפעל את הפקודה הבאה בתור root במחשב הלקוח
# modprobe nf_conntrack_ftp
אם השרת שלך משתמש ביציאה כלשהי שאינה ברירת מחדל (חוץ מיציאה 21), השתמש בפקודה הבאה:
# modprobe nf_conntrack_ftp ports=your_port
זה יספק חיבור אוטומטי עם כל היציאות הנדרשות בין שרת ה-FTP לתוכנת הלקוח שלך. זה עובד עד שאתה מאתחל את המחשב שלך.
כדי להפוך את השינוי הזה לצמיתות, עליך ליצור קובץ טקסט חדש, /etc/modules-load.d/conntrack_ftp.conf, ולהוסיף את השורה הבאה לקובץ זה:
nf_conntrack_ftp
במקרה של יציאת שרת שאינה ברירת מחדל, עליך ליצור קובץ נוסף, /etc/modprobe.d/conntrack_ftp.conf עם התוכן הבא:
אפשרויות nf_conntrack_ftp ports=
זה אמור להספיק.
פתרון מס' 2. השתמש בטווח יציאות פסיביות קבוע
אם אינך יכול להשתמש במודול nf_conntrack_ftp, תוכל להגדיר טווח יציאות קבוע עבור תוכנת שרת FTP ולפתוח אותו במחשב הלקוח. לדוגמה, הנה כיצד ניתן לעשות זאת עבור אפליקציית vsftpd.
- בקובץ התצורה של vsftpd, שהוא בדרך כלל /etc/vsftpd.conf, הוסף את השורות הבאות:
pasv_min_port=5500. pasv_max_port=6500
זה צריך להיעשות בצד השרת. לאחר מכן עליך להפעיל מחדש את vsftpd.
- בכללי iptables שלך (בדרך כלל זה /etc/iptables/iptables.rules) במחשב הלקוח, הוסף את הכלל הבא:
$IPT -A INPUT -p tcp -s
--dport 5500:6500 -j קבל - החל את כללי iptables באופן הבא:
# iptables-restore < /etc/iptables/iptables.rules
זהו זה.