« Home | PayPal פותחת את שעריה לישראל » | XSS באתר hadassah.ac.il » | XSS באתר information.com » | שאלת שימוש הוגן בתוכנות Freeware ( עם פרסומות ) » | MSN Messenger - Ad Block - Revisited » | IPhone Unlock - בקוד פתוח » | Security Bloggers Network » | CISCO 0-Day ללא טלאי עדיין - מסכן את הגישה שלנו לרשת » | שופץ ושוחזר - עיצוב הבלוג » | בעיות עם בלוגר »

איך להקים שרת קבצים פשוט ובטוח על Linux

בעקבות מספר בקשות ושאלות שנשאלתי בדואר אלקטרוני ועל ידי כל מיני חברים ( בעיקר בעקבות הקמת שרת הקבצים הביתי שלי ) החלטתי לבנות מעין מדריך קצר ולעניין, אשר מסביר כיצד מקימים שרת קבצים פשוט מבוסס לינוקס. שימו לב , לא שמתי יותר מידי דגשים על התממשקויות למערכות צד שלישי וכדומה, אלא בעיקר על יצירת מערכת SHARING עובדת עם רמת אבטחה סבירה.

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

חומרה נדרשת :

המפרט אשר אני ממליץ עליו לצורך הקמת שרת ביתי שכזה :

  • מחשב מדף פשוט עד 1000 ש"ח ( ניתן לקנות בכל חנות אינטרנט ) עם בקר SATA ומפרט בסיסי.
  • להוסיף הרדיסק SATA לפי הצורך - אני ממליץ 500GB של WD ( בערך 500 ש"ח ).
  • להחליף קירור בקירור שקט של 12" למאווררים - ( כ50 ש"ח ).
  • כרטיס רשת 10/100 כלשהו, עדיף Intel בגלל התמיכה ללינוקס ( כ 35 ש"ח )

החומרה שלי ( הייתה קיימת , ולכן השתמשתי ) :

אני השתמשתי ב : מחשב VIA EPIA 1200 פשוט עם 256MB זיכרון ( אולי אגדיל ) דיסק קשיח 40GB למע' הפעלה ( IDE ) בקר PCI עבור כרטיס RAID של Sweex ( בחומרה ) שאליו מחוברים 2 דיסקים של 500GB בRAID1 ( זה כי אני תמיד מגזים ) וכמובן ממשק רשתי פשוט של 10/100 של INTEL.

LINUX :

כדאי לדעת צעדי לינוקס בסיסיים בכי להשתמש במדריך הזה , בכדי להקל על עריכת קבצים וההתקנה אותה אין בכוונתי להסביר כאן. לצורך ההקמה נשתמש בCENTOS LINUX 5 אשר ניתן להוריד בחינם מהקישור הבא mirror.isoc.org.il . שימו לב , יש להוריד או DVD או 6 דיסקים , למרות שלא נצטרך את כולם. אגב, כל גרסת לינוקס תתאים. -- יש להתקין את הלינוקס נקי לחלוטין , ולדעתי אין צורך בFIREWALL עליו.

SAMBA :

בלינוקס , הגורם המקשר את סביבת פרוטוקול SMB של חלונות , לבין לינוקס - הוא פרוייקט סמבה , אשר משמש כממשק בין מערכות ההפעלה השונות. בעצם המטרה שלנו היא לקבל SHARE של מחשב הלינוקס - במחשבי החלונות שלנו.

יש להתקין את samba על המחשב , ולהקפיד על גרסה אחרונה כמובן ( בסביבת REDHAT\CENTOS\FEDORA הפקודה היא yum -y install samba )

כעת יש להוסיף משתמשים למערכת , לצורך העניין נקרא למשתמש linuxshare במדריך זה ( למי שלא זוכר , מוסיפים משתמש זה על ידי useradd -m -G users -s /bin/bash linuxshare ) אסמן את שם המשתמש עם קו תחתי מעכשיו , שיהיה קל לשים לב ולשנות בהתאם.

יש לקבוע למשתמש החדש סיסמה על ידי passwd linuxshare

כעת יש לערוך את הקובץ - etc/samba/smb.conf/ אשר מכיל את הקונפיגורציה המתאימה לאפליקציה ויש להכניס את השורות הבאות.

# general definitions
[global]

workgroup = MSHOME
server string = My File Share
log file = /var/log/samba/log.%m
max log size = 50 

# security config
security = user
hosts allow = 127.0.0.1 192.168.1.0/24
hosts deny= 0.0.0.0/0

# server password file
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd

# shares
[FileServer]
comment = File Server Share
path = /home/linuxshare
valid users = linuxshare
public = no
writable = yes
printable = no
create mask = 0765

הערה : שימו לב לשורת הhosts allow , אשר משמשת כמעין IP FILTER שמאפשר התחברות רק מכתובות הרשת הרלוונטית , יש לשנות בהתאמה , כמובן את 127. רצוי להשאיר כי מדובר בloopback

כעת עלינו להעתיק את קובץ הסיסמאות של מע' ההפעלה בכדי לשייך את המשתמשים הקיימים במערכת למערכת הSAMBA שלנו על ידי -

cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
chmod 600 /etc/samba/smbpasswd

כעת עלינו לקבוע סיסמת משתמש השיתוף על ידי הפקודה

smbpasswd linuxshare

עתה נפעיל את הישום בפעם הראשונה ואף נוסיף אותו לסקריפט העליה של המחשב ( בכדי שיעלה בכל פעם מחדש כמובן )

service smb start
/sbin/chkconfig --level 345 smb on

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

אולי הייתי מוסיף גם CLAMAV בתור אנטיוירוס שיסרוק כל העתקת קבצים לשרת ( אצלי יש AV רשתי )

אני מאמין גדול בשרתי קבצים ביתיים , אני מאמין שהם מקלים את העבודה,  לטווח ארוך חוסכים באמצעי אכסון ומשאבים - שכן אין צוך שלכל מחשב בבית ( ולי יש 8 פעילים ) יהיה  דיסק קשיח מפוצץ , אלא מספיק שיהיה משהו כמו 80GB למשתמש ממוצע ( אני לא ממוצע כנראה ) ושיהיה שרת קבצים עם רוב האכסון עליו , כך ניתן להגדיר לכל משתמש נפח משלו , או נפח אכסון כללי לכולם , אצלי למשל הMy Documents בסביבת הWindows הוא בעצם Mount לכונן רשתי מתאים.

אגב , ניתן לשלב במערכת גם CLAMAV אשר בודק את הקבצים הנכתבים לדיסק המשותף , אצלי זה מוטמע , אבל פוגע בביצועים ,כשאני אמצא איך לשפר - אני אכתוב מדריך גם לזה פה. בנתיים המחבר בין האלמנטים הוא בunstable ולכן לא רלוונטי.

בהצלחה.

Labels: , , , , , , , ,

Syndication : Digg It  Add to Technorati Favorites  Stumble It  Worth Reading 

אגב , ניתן להגדיר את תיקיות השיתוף לפי קבוצת משתמשים על ידי שינוי פרמטרים מסויים.
ראשית עלינו להוסיף קבוצה למשתמשים אשר יהיו רשאים לגשת לתקיה
groupadd sharing
יוסיף קבוצה בשם זה . ואז יש לשייך אליה משתמשים על ידי
usermod -a -G sharing USERNAME

כך בעצם משייכים משתמשים לתיקית השיתוף , כעת בכדי להגדיר את הקבוצה עבור התיקיה - יש להיכנס ל
/etc/samba/smb.conf

בקובץ הנ"ל תחת הגדרות תיקית השיתוף
יש להגדיר במקום מה שרשום לנו:
valid users = linuxshare
את הפרמטר
valid users = @sharing

ולהתחיל מחדש את האפליקציה כדי שההגדרות יכנסו לתוקף.

:)

אגב , לחברה שהם פחות הארד-קור ומחפשים פתרון פשוט ומיידי.

יש הפצה בשם FreeNas

http://www.freenas.org/index.php?option=com_content&task=view&id=15&Itemid=28

שעושה הכל , ופשוט ועם GUI

כמה מהומה על לא מאומה. בשביל הפונקציונליות שתיארת, מספיק לקחת כל מחשב שהוא שיש לך בבית (חלונות או לינוקס או אפילו חלונות 98) להגדיר Share מלא על תיקיה וזהו. יש לך "שרת קבצים" עם מלוא השימושיות ב-2 דקות עבודה.
לא הבנתי בשביל מה כל הבלגאן שתיארת פה...

מהומה ? לא חושב , - זה בא מכיוון של שאלות של אנשים שמעוניינים בידע הזה , שהוא תמיד רלוונטי.

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

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

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

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

אני אשמח אגב לקבל דעות נוספות בנושא

אני חושב שצריך ממשק גרפי על כל מחשב.
נכון שזה לא בעיה לעבוד מהטרמינל, אבל יותר נחמד ונוח לעבוד על GUI.
על שרת הקבצים שלי מותקן שרת VNC שמאפשר לי לשלוט מרחוק ובקלות על המחשב (טוב נו לא "מרחוק", מלבד היותו שרת קבצים הוא משמש גם כהדום שלי, וככזה הוא תמיד קרוב אלי כשאני מפעיל את הVNC קליינט :) ).

כשאני צריך לשנות הגדרה או למחוק קובץ שנמצא באמצע העלאה אני מוצא שזה יותר נוח לי מSSH, כי אני יכול להשתמש בכלים הגרפיים שאני רגיל אליהם מהמחשבים האחרים שלי.

(על השרת מותקנת מנדריבה לינוקס שאני משתמש בה כמערכת הראשית שלי)

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

שוב ,דעתי כמובן.

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

עוד דבר, שלא כל כך קשור אליך או אלי אבל כן מכריע שכמדובר בהדיוטות הוא קלות השימוש.

ללמוד לעבוד עם הטרמינל זה יותר מלהקליד את הפקודות שנתת פה.

התקנה בסיסית של מנדריבה לינוקס שדרושה לשרת קבצים (בלי כלי המולטימדיה, האופיס, וכל השאר) תיקח בערך רבע שעה על מחשב כזה, שום השקעת זמן גדולה מידי.
אבל הדיוט שאח"כ ינסה להגדיר את השיתופים מהטרמינל ויתחיל להסתבך יבזבז מספר שעות טובות על הגדרת הסמבה, כשבממשק הגרפי יקח לו כמה דקות להגדיר את הכל, ואין סיכוי שהוא ישכח משהו כי אשף ההגדרות (לפחות במנדריבה) הוא "זורם" בסגנון חלונות, המסכים עוברים אחד אחרי השני עם כל ההגדרות הדרושות, כולל משתמשים והרשאות, בדיקה של השרת (ממחשב מרוחק) ואפשרויות שונות שלא יהיו ידועות למשתמש שלא קרא את הman של סמבה. אני חושב שזה עדיף בהרבה.


ואתה מדבר על מערכות שמתוחזקות על ידי אנשים לינוקס: כמובן שסיסאדמין שמתקין מספר שרתי פרודקשין בשבוע "שוחה בחומר", יודע איך לקנפג הכל ומסתדר בלי GUI. אנחנו מדברים פה על שרת קבצים ביתי שאמור להיות מתוחזק על ידי משתמשים רגילים, ולזה עדיף להשתמש בGUI.

למרות שאני חובב של CentOS, עקב קשיי הגדרות וביטול שירותים (המותקנים כברירת מחדל), אני יכול להוסיף המלצה למשתמשים פחות מיומנים על openfiler הפצת NAS/SAN הדומה ל - freeNAS אך מבוססת על לינוקס ולא על freeBSD/m0n0wall ובעלת מערכת ניהול מבוססת ווב חביבה למדי.

רק הערה ברשותך:

זה אולי טריוויאלי, אבל ללא מעט משתמשי חלונות זה לא: לינוקס היא Case Sensitive.

בזמנו עבדתי על קוד ששימש ASP.net עם mysql על חלונות (אותה מכונה) בפיתוח כשבחי בחרנו שרת נפרד מבוסס Debian.

הכל עבד יפה, רק שזה חייב אותי לעבור על כל האפליקציה ולהקפיד על Case אחיד.



ומעבר לזה - מאוד אהבתי את הממשקים הגרפיים שהוצעו כאן.
בהחלט מתאים להדיוטות בעלי שליטה סבירה בהגדרות רשת וחומרה בסיסייים.


משה
Samba על VPN על מודם סלולארי זה צולע, אבל עובד.

Post a Comment

About

    My Name is Barry Shteiman, im a devoted tech junkie, and this is my blog.
    E: barry.shteiman -at- gmail.com
    Twitter : bshteiman

Tags & Categories

Mailing List & RSS

Stay Updated  
Add to Technorati Favorites