A web server (also known as a HTTP server) is a service that handles content (most commonly web pages, but other types of documents as well) over to a client in a network.
A FTP server is one of the oldest and most commonly used resources (even to this day) to make files available to clients on a network in cases where no authentication is necessary since FTP uses username and password without encryption.
השרת web הזמין ב- RHEL 7 הוא גרסה 2.4 של שרת HTTP Apache. بالنسبة לשרת FTP, נשתמש ב- Very Secure Ftp Daemon (aka vsftpd) כדי להגדיר חיבורים מאובטחים על ידי TLS.

במאמר זה נסביר כיצד להתקין, להגדיר ולבטח שרת אינטרנט ושרת FTP ב- RHEL 7.
התקנת אפאצ'י ושרת FTP
במדריך זה נשתמש בשרת RHEL 7 עם כתובת IP סטטית של 192.168.0.18/24. כדי להתקין את אפאצ'י ואת VSFTPD, פעלו לפי הפקודה הבאה:
# yum update && yum install httpd vsftpd
כאשר ההתקנה הושלמה, שני השירותים יהיו כבולים בתחילה, אז נצטרך להפעיל אותם באופן ידני בינתיים ולפתוח אותם באופן אוטומטי החל מה阿יתחול הבא:
# systemctl start httpd # systemctl enable httpd # systemctl start vsftpd # systemctl enable vsftpd
בנוסף, עלינו לפתוח את הנמלים 80 ו- 21, בהן מקשיבים דמונות ה- web ו- ftp, בהתאמה, על מנת לאפשר גישה לשירותים אלה מהחוץ:
# firewall-cmd --zone=public --add-port=80/tcp --permanent # firewall-cmd --zone=public --add-service=ftp --permanent # firewall-cmd --reload
על מנת לוודא ששרת ה- web פועל כראוי, פתחו את הדפדפן שלכם והקישו את כתובת ה- IP של השרת. עליכם לראות את דף הבדיקה:

באשר לשרת FTP, עלינו להגדיר אותו עוד רגע, ואז נבדוק שהוא פועל כמצופה.
הגדרת ואבטחת שרת web של אפאצ'י
קובץ ההגדרה העיקרי של אפאצ'י נמצא ב- /etc/httpd/conf/httpd.conf
, אך הוא עלול לסמוך על קובצי משנה הנמצאים בתוך /etc/httpd/conf.d
.
למרות שההגדרה המקובלת צריכה להיות מספקת עבור רוב המקרים, אדם טוב להתמודד עם כל האפשרויות הזמינות כפי שתיארה בה 文档 הרשמי.
כמו תמיד, בואו בעזרת משרד הגדרות הראשי למעשה לעותק גיבוי:
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.$(date +%Y%m%d)
ואחר כך פתחו אותו במערך טקסט המועדף עליכם וחפשו אחר המשתנים הבאים:
- ServerRoot: התוך המיקום בו שמורכבים הקבצים של ההגדרות, השגרורים והרשומים של השרת.
- Listen: מורשה לApache להקשיב על כבל הIP ו/או הפורטים הספציפיים.
- Include: מאפשר לכך שיש בינת להכנסת קבצים הגדרות אחרים, שחייבים לקיימים. אחרת, השרת יכשל, בניגוד להורדיטיבה IncludeOptional, המתעלמת בדממה אם הקבצים המסוגלים להגדירה לא קיימים.
- משתמש וקבוצה: שמות המשתמש/קבוצות של השרת httpd יורה.
- DocumentRoot: המיקום ממנו אפאפה יעשה את השרת לספק את המסמכים שלך. במונחים רגילים, כל הבקשות מוצאות במיקום זה, אך מקשורים וסימנים יכולים להיות מוצעים להצבעה למקומות אחרים.
- ServerName: ההורדיטיבה הזו מגדירה את שמות המחשב (או כבל הIP) והפורט שהשרת משתמש כדי לזהות עצמו.
הצעד הראשון באבטחת המערכת יכלול יצירת משתמש וקבוצה מוקצים (כלומר tecmint/tecmint) להפעלת שרת האינטרנט ושינוי הפורט הברירת מחדל לפורט גבוה יותר (9000 במקרה זה):
ServerRoot "/etc/httpd" Listen 192.168.0.18:9000 User tecmint Group tecmint DocumentRoot "/var/www/html" ServerName 192.168.0.18:9000
ניתן לבדוק את קובץ התצורה עם.
# apachectl configtest
ואם הכל בסדר, אז לאחר מכן לאתחל את שרת האינטרנט.
# systemctl restart httpd
ואל תשכח לאפשר את הפורט החדש (ולהשבית את הישן) בגישור:
# firewall-cmd --zone=public --remove-port=80/tcp --permanent # firewall-cmd --zone=public --add-port=9000/tcp --permanent # firewall-cmd --reload
שימו לב, עקב מדיניות SELinux, ניתן להשתמש רק בפורטים שמוחזרים על ידי
# semanage port -l | grep -w '^http_port_t'
עבור שרת האינטרנט.
אם ברצונך להשתמש בפורט אחר (כלומר פורט TCP 8100), עליך להוסיף אותו להקשר פורטים של SELinux עבור שירות httpd:
# semanage port -a -t http_port_t -p tcp 8100

כדי להבטיח את ההתקנה של Apache שלך נוסף, עקוב אחר השלבים האלה:
1. המשתמש שבו מריץ Apache לא צריך לקבל גישה לשל פקודות:
# usermod -s /sbin/nologin tecmint
2. השבת את רשימת הספריות כדי למנוע מהדפדפן להציג את תוכן הספרייה אם אין index.html בספרייה זו.
ערוך את /etc/httpd/conf/httpd.conf
(ואת קבצי התצורה עבור מארחים וירטואליים, אם יש) וודא שההוראה Options, גם ברמות העליונות וברמות הבלוקים של הספרייה, מוגדרת ל None:
Options None
3. הסתר מידע על שרת האינטרנט והמערכת הפעלה בתגובות HTTP. ערוך את /etc/httpd/conf/httpd.conf
כדלקמן:
ServerTokens Prod ServerSignature Off
עכשיו אתה מוכן להתחיל לספק תוכן מהתיקייה שלך /var/www/html.
הגדרת ואבטחת שרת FTP
כמו במקרה של Apache, קובץ ההגדרות העיקרי עבור Vsftpd (/etc/vsftpd/vsftpd.conf)
מסומן היטב ועל אף שההגדרות ברירת המחדל צריכות להתאים לרוב היישומים, עליך להכיר את התיעוד ואת דף הרווח (man vsftpd.conf)
כדי להפעיל את שרת ה-ftp ביעילות יותר (אני לא יכול להדגיש זאת מספיק!).
במקרה שלנו, אלה הן ההוראות המשמשות:
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES allow_writeable_chroot=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
על ידי שימוש ב- chroot_local_user=YES
, משתמשים מקומיים יינחסו (ברירת המחדל) לכלא chroot בתיקיית הבית שלהם ישירות לאחר התחברות. זה אומר שמשתמשים מקומיים לא יוכלו לגשת לקבצים מחוץ לתיקיות הבית המתאימות שלהם.
לבסוף, כדי לאפשר ל-ftp לקרוא קבצים בתיקיית הבית של המשתמש, הגדר את הבוליאני של SELinux הבא:
# setsebool -P ftp_home_dir on
כעת תוכל להתחבר לשרת ה-ftp באמצעות לקוח כגון Filezilla:

שים לב ש- /var/log/xferlog
רשומות יורדות ומעלות, שמותאמות לרשימת התיקיות לעיל:

קרא גם: הגבלת רוחב פס של רשת FTP המשמש יישומים במערכת Linux עם Trickle
סיכום
במדריך זה הסברנו כיצד להגדיר שרת רשת ו-FTP. עקב הרחבות הנושא, אין אפשרות לכסות את כל הנושאים הנלמדים (כגון שרתי אינטרנט וירטואליים). לכן, אני ממליץ גם לבדוק מאמרים נוספים מצוינים באתר זה על Apache.
Source:
https://www.tecmint.com/rhcsa-series-install-and-secure-apache-web-server-and-ftp-in-rhel/