פעיל ו- FTP פסיבי / שירותי TFTP לטעון איזון וזמינות גבוהה

פורסם על ידי זאבנט | 16 באוגוסט 2017

סקירה כללית

fTP or פרוטוקול העברת קבצים הוא פרוטוקול שכבת יישומים שנמצא בשימוש נרחב להעברת קבצים בתכנון ארכיטקטורת שרת לקוח המסתמך על שכבות רשת TCP / IP. FTP הוא פרוטוקול מורכב וברור (ללא מודעות לאבטחה), על יציאות המשמשות משא ומתן בשכבת היישום בין הלקוח לשרת, כך שקצת קשה לטעון איזון או ליצור כללי חומת אש. בנוסף, שרת FTP ולקוח יכולים להתנהג במצבים פעילים או פסיביים, שניתן לתאר להלן.

כמה תכונות המספקות FTP הן: 2 יציאות TCP (20, 21 כברירת מחדל) משמשות עבור פקודות בקרה ועוד עבור נתונים, תמיכה במנגנון אימות, ללא תמיכה בהצפנה, העברת ASCII ובינארי, פקודות רחבות זמינות (רשימת ספריות, להעלות קבצים, להוריד קבצים, וכו ') ואת הטמון החוסן TCP.

TFTP or טריוויאלי FTP היא גרסה עם העברת קבצים מהירה יותר ועיצוב ארכיטקטורה פשוט יותר המשתמשת ביציאת UDP אחת בלבד (69 כברירת מחדל), ללא מנגנון אימות תמיכה או הצפנה, שלושה מצבי העברה זמינים (netascii, octet ודואר) ורק פקודות בסיסיות כגון טעינה והורדה קבצים.

שניהם FTP ו- TFTP שירותי יכול להיות מאוזן מאוזנת בקלות עם זאובנט. תמשיכו לקרוא כדי לדעת איך להשיג את זה.

סביבת איזון עומס ה- FTP

התרחיש שאנו רוצים להשיג במאמר זה מוצג בתרשים שלהלן.

או שיש מקביליות גבוהה של משתמשים וזה נדרש להגדלת השירות או שמדובר בשירות קריטי שצריך להיות זמין גבוה, יהיה צורך באיזון עומסים בשירות FTP.

תצורת מצב FTP פעילה

An FTP פעיל ההתקנה תחייב להשתמש ביציאות 20 ו 21 בצד השרתים או בצד האחורי. התמונה הבאה מראה כיצד החיבור זורם כאשר נתונים נדרשים להעברה בין לקוח לשרת FTP.

Active_ftp_client_server

ברצף המוצג לעיל:
1. הלקוח מבקש לשרת דרך היציאה 21 הפקודה.
2. השרת מאשר ללקוח.
3. אל האני שרת יוזם חיבור הנתונים באמצעות יציאת הנתונים 20.
4. הלקוח מאשר לשרת כשתסיים.

בשלב זה עלינו להגדיר איזון עומסים בין הלקוח לשרת, ואז לדאוג לתזרימי התעבורה, אתחול החיבורים והסכמי הנמלים בין הלקוח לשרת.

עם Zevenet Load Balancer, עלינו להשיג תצורה מסוג זה ליצירת פרופיל חווה LSLB L4xNAT עם יציאות 20,21 ו fTP פרוטוקול, כפי שהוא מוצג בתמונה למטה, ולבסוף מגדירים את הגבולות (לא נדרש להגדרת היציאות).

zevenet_adc_lb_active_ftp_configuration

על הלקוחות להתחבר לכתובת ה- VIP של חוות ה- FTP החדשה.

הערה: תצורה זו נשמרת לשימוש הן במצבי לקוח / שרת פעילים ופסיביים.

תצורת מצב FTP פסיבית

A FTP פסיבי ההתקנה משתמשת רק ביציאה 21 בצד השרתים או בצד האחורי. התמונה הבאה מראה כיצד החיבור זורם כאשר נתונים נדרשים להעברה בין לקוח לשרת FTP.

passive_ftp_client_server

ברצף המוצג לעיל:
1. הלקוח מבקש לשרת דרך היציאה 21 הפקודה.
2. השרת מאשר ללקוח.
3. אל האני הלקוח יוזם את חיבור הנתונים באמצעות יציאת נתונים גבוהה ליישום שכבת יישום הסכים בצד השרת.
4. השרת מאשר ללקוח לאחר סיום.

בשלב זה עלינו להגדיר איזון עומסים בין הלקוח לשרת, ואז לדאוג לתזרימי התעבורה, אתחול החיבורים והסכמי הנמלים בין הלקוח לשרת.

עם Zevenet Load Balancer, עלינו להשיג תצורה מסוג זה ליצירת פרופיל חווה LSLB L4xNAT עם היציאה 21 ו fTP פרוטוקול, כפי שהוא מוצג בתמונה למטה, ולבסוף מגדירים את הגבולות (לא נדרש להגדרת היציאות).

zevenet_adc_lb_passive_ftp_configuration

על הלקוחות להתחבר לכתובת ה- VIP של חוות ה- FTP החדשה.

תצורת TFTP

טריוויאלי FTP פרוטוקולים משמשים בעיקר במהלך PXE (Preboot eXecution Environment) בסביבות המורכבות משילוב של שירותי DHCP ו- TFTP, שבהם ניתן לפרוס עשרות, מאות ואף אלפי מחשבים באמצעות הרשת.

ההתנהגות פרוטוקול הראשי יהיה:
1. הלקוח מבקש לשרת דרך היציאה 69 בקשת קריאה (RRQ) או בקשת בקשה (WRQ) כולל את הקובץ ואת מצב ההעברה.
2. השרת מאשר ללקוח ומודיע ליציאת הנתונים החדשה שיש להשתמש בה.
3. אל האני הלקוח יוזם את חיבור הנתונים ליישום שכבת יציאת הסכים בצד השרת.
4. השרת מאשר ללקוח כאשר נותרו בו עדכוני ה- 512 האחרונים.

בסביבה בה שירות TFTP צריך להתמקד, התצורה עם Zevenet 5 היא קלה מאוד. נדרש ליצור פרופיל חווה LSLB L4xNAT עם הנמל 69 ו TFTP פרוטוקול, כפי שהוא מוצג בתמונה למטה, ולבסוף מגדירים את הגבולות (לא נדרש להגדרת היציאות).

zevenet_adc_lb_tftp_configuration

על הלקוחות להתחבר לכתובת ה- VIP של חוות TFTP החדשה.

Secure FTP

כדי לפתור את האבטחה המשופרת של פרוטוקול FTP, פרוטוקול העברת קבצים SSH או הידועה יותר SFTP נועד לספק שכבת אבטחה. בתרחיש זה, שרתי ה- FTP צריך להיות מוגדר כמו SFTP ואת איזון העומס של אלה יהיה קל כמו יצירת LSLB עם חוות פרופיל L4xNAT מעל יציאת ברירת המחדל 22 ופרוטוקול TCP כפי שמוצג בצילום המסך למטה. לבסוף, פשוט הוסף את שירותי ה- SFTP שלך.

zevenet_adc_lb_secure_ftp_sftp_configuration

על הלקוחות להתחבר לכתובת ה- VIP של חוות ה- TCP החדשה, המשרתת שירות SFTP.

בדיקות בריאות מתקדמות

בדיקת בריאות ה- FTP

מכשירי Zevenet כבר כוללים את check_ftp בדיקה רפואית עבור שירותי ה- FTP, כך שנוכל לבדוק את בדיקת הבריאות עם backend למעלה:

root@zevenet:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org
FTP OK - 0.262 second response time on ftp.debian.org port 21 [220 ftp.debian.org FTP server]|time=0.262090s;;;0.000000;10.000000 

מצד שני, עם backend למטה נקבל את התפוקה הבאה:

root@zevenet:/usr/local/zenloadbalancer/app/libexec# ./check_ftp -H ftp.debian.org
CRITICAL - Socket timeout after 10 seconds

אז פקודת שומר החווה כדי להגדיר בחוות ה- FTP יהיה:

check_ftp -H HOST

בכרטיסייה שירותים, ודא את תצורת Farm Guardian כפי שמוצג להלן. פסק זמן של 60 שניות יהיה מספיק כדי להבטיח את ההתנהגות הנכונה של backend.

zevenet_active_passive_ftp_farm_guardian_advanced_health_check_config

בדיקת בריאות TFTP

אם check_tftp בדיקה מתקדמת עדיין לא קיימת במכשיר Zevenet, אנו יכולים ליצור סקריפט קל לבדיקת בריאות כפי שמתואר להלן עבור שירותי TFTP שלנו.

ראשית, ליצור קובץ דמה בספריית TFTP backends שלך, לדוגמה tftp_zevenet_check.txt, והוסף תוכן, למשל "אישור".

לאחר מכן, במכשיר ה- Zevenet, התקן את לקוח ה- tftp באמצעות ביצוע הפקודה הבאה:

apt-get install tftp

ואז, ליצור קובץ Script חדש בספריית ברירת המחדל של Zevenet Health Check, לדוגמה /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh עם קוד ה- Script הבא:

#!/bin/bash
###
### Check TFTP services
### Copyright 2017-now Zevenet SL
###
### $1 : Host to be checked
CRITICAL=1
OK=0
RESULT=$(echo get tftp_zevenet_check.txt | tftp $1 2>&1 | head -n 1)

echo "TFTP health check status for $1 is $RESULT"

if [ "`echo $RESULT | grep Received`" != "" ]; then
        exit $OK
else
        exit $CRITICAL
fi

לאחר מכן, הקצה הרשאות ביצוע עם הפקודה:

root@zevenet:/# chmod 755 /usr/local/zenloadbalancer/app/libexec/check_mytftp.sh

אם ננסה לבצע את התסריט נקבל הודעה מוצלחת כאשר ה- backend מוגדר ומוגדר היטב:

root@zevenet:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250
TFTP health check status for 192.168.101.250 is tftp> Received 4 bytes in 0.0 seconds

או שגיאה כאשר backend הוא למטה:

root@zevenet:/usr/local/zenloadbalancer/app/libexec# ./tftp_check.sh 192.168.101.250
TFTP health check status for 192.168.101.254 is tftp> Transfer timed out.

לבסוף, הגדר את בדיקת הבריאות בחוות TFTP, כולל בפקודה אסימון HOST.

check_mytftp.sh HOST

בכרטיסייה שירותים, ודא את תצורת Farm Guardian כפי שמוצג להלן. פסק זמן של 60 שניות יהיה מספיק כדי להבטיח את ההתנהגות הנכונה של backend.

zevenet_tftp_farm_guardian_advanced_health_check_config

בדיקת בריאות SFTP

כפי שכבר קיים לבדוק את הבריאות check_ssh, אנו יכולים להשתמש בו ישירות. אז פקודת שומר החווה כדי להגדיר בחוות SFTP יהיה כדלקמן:

check_ssh HOST

לאחר מכן, התצורה תוצג כפי שהיא מוצגת בצילום המסך הבא.

zevenet_ssh_sftp_farm_guardian_advanced_health_check_config

ליהנות העברת קבצים גבוהה שלך מדרגי!

תשתף:

תיעוד על פי תנאי הרישיון לשימוש חופשי במסמכים של גנו.

האם המאמר הזה היה מועיל?

מאמרים נוספים