‏הצגת רשומות עם תוויות routing. הצג את כל הרשומות
‏הצגת רשומות עם תוויות routing. הצג את כל הרשומות

יום שישי, מרץ 18, 2011

Bestfreevpn

איך להתחבר לbestfreevpn מדביאן גנו/לינוקס:

לבחור הבא שמחפש איך להתחבר לvpn מבוסס pptp שמסופק ע"י bestfreevpn.com :
הפעל מודול mppe :
modprobe ppp_mpe

הפעל תמיכה בהצפנה ב /etc/ppp/options.pptp:
הפוך את השורה require-mppe-128 לפעילה (הסר #)

הוסף שם משתמש סיסמה ל /etc/ppp/chap-secrets:
לדוגמה :
free PPTP 216351 *

את הסיסמה מקבלים מ http://bestfreevpn.com/free-vpn-service/bestfreevpn.gif?UNIX_TIME
לקבל UNIX_TIME השתמשו ב : date +%s

הוסיפו קובץ ב /etc/ppp/peers/ לדוגמה bestfreevpn עם התוכן :

pty "pptp bestfreevpn.com --nolaunchpppd"
name free
remotename PPTP
file /etc/ppp/options.pptp
ipparam free

להפעלה :

pon bestfreevpn updetach

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

עריכה : שם המתחם התחלף ל  superfreevpn.com מ bestfreevpn.com

יום שני, מרץ 14, 2011

איך לקבל מBIND9 שירות ENUM

כל מרכזיה סטאנדארטית תומכת בהיפוך מספר לכתובת URI , אבל איך מגדרים שרת במשרד ?

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

כשהגדרתי את השרת עשיתי טעות ובהתחלה שמרתי את כל הרשומות בקובץ ההגדרות של bind9 אבל לאחר קצת כאב ראש ראיתי שעדיף להשתמש ב קובץ אחר - כלומר להשתמש ב file :
file "/etc/bind/myrtfm.enum.values.conf";

כשמייצרים את ההמרה יש מספר כללים:

1. עבור כל מספר יש zone מוגדר.
2. הכתובת היא מספר הטלפון רשום במהופך ומופרד בנקודות:
עבור הטלפון:

03 - 123456789

הכתובת צריכה להיות
9.8.7.6.5.4.3.2.1.3.0

3. להוסיף את הדומיין בסוף השרת
9.8.7.6.5.4.3.2.1.3.0.e164.org

לאחר מכן נוסיף את השורה לקובץ :
9.8.7.6.5.4.3.2.1.3.0.e164.org. NAPTR 100 10 "U" "SIP+E2U" "!^.*$!sip:175@myrtfm.blogspot.com!".

אבל נניח שאנחנו רוצים להפוך את כל השיחות שיצאו לאזור חיוג מסויים דרך המכונה שמחוברת לבזק ?
במקום לשנות מסלולי הניתוב ב openser.cfg נגדיר שהשם החוזר יחזיר uri מתאים למכונה המחוברת לבזק:

*.3.0.e164.org. 10M IN NAPTR 100 10 "u" "E2U+SIP" \
"!^\\+03(.*)$!sip:\\1@gushdan.myrtfm.blogspot.com!" .

אבל בשביל להיות בטוח ב100% שאם מישהוא מתקשר בטעות לאחד העובדים למספר הנייד נמיר את המספר לכתובת הלקוח הSIP שלו.

ואכשיו נשאר רק להגדיר את שרת הSIP שלכם שיבקש את ההמרה משרת הזה.

יום רביעי, אוקטובר 20, 2010

פרוייקט בהנדסת תוכנה - רשת אוטונומית

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

הצורה הרגילה לפתור את הבעייה מערבת אנשי הנדסת חשמל (בתחום התקשורת) שנותנים מענה לבעייה ידועה (Anetena placement problem), לאחר הרמת התשתית הארעית (עד כמה שידוע לי דובר על 802.11 אבל זה לא בטוח) אנשי תשתיות פרסו רשתות תקשורת ופותרים בעיות של רשת אמינה, עמידה בהסרת קדקודים.אחת הבעיות היא שהקלים האוטומטיים סגורים הייטב בחברות (כי פריסה של רשת צריכה לדאוג לא רק להצבת צומת ברשת אלה להשפעות על כלל הרשת).

אני רוצה לפתור את הבעייה של יצרת תשתית תקשורת בזמן קצר ע"י כלי שגר - ושכח:

צוות לא הנדסי מקבל סט כלים (drones לדוגמה) ומשחרר אותם לאוויר, היחידות (מל"טים/רכבים ללא נהג וכו') ממקים את עצמם בהתאם לאוסף הבעיות [1] שהם צריכים לפתור.לאחר שינוי ברשת [2] או בתנאים הקיימים [3] היחידות ישנו את מיקומם. יש לציין שברשתות אלחוטיות הסיבה העיקרית לאיבוד מנות הינן הרשת (בשונה מרשת חוטית).

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

הפתרון שלי מתחלק לשניים :

יצרת אלגוריתם (רצויי מבוזר) שיאפשר פתרון של הבעייות [1].
מימוש האלגוריתם בקרנל לינוקס.

מה מצאתי עד היום:

קראתי מספר מאמרים מאונ' הארווארד,קימברידז ספר בנושא Manets בכולם הפתרונות הנידונים הם פתרונות של ראוטינג ברשתות בין אם מבוזרים או לא , בן אם multi hop או LCR (הזול ביותר מבחינת חשמל/ עומס/מחיר ) אבל תמיד כאשר הקמת תשתית איננה נדונה.
מצד שני קיים התחום של חשמל - הצבת האנטנות (שבתחום זה אני צריך עזרה) ותחום הנדסת תקשורת (חישוב עומסי הרשת ששם יש לי קצת ניסיון).
נקודה שכמעט ולא ראיתי אליה התייחסות היתה שרידות הרשת - היכולת של הרשת לעוד בהסרה הופסה של צמתים ונקודה הכשל שלה (חיבור לרשתות אחרות). בגלל שאנו מדברים על WMN יש לנו התייחסות לנקודות חיבור לרשתות אחרות. עד כמה שאני משער יחס של 80-20 (עקרון פרטו) יהווה יחס טוב.


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

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

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


[1] -
Maintain maximum connectivity to the other networks (if any)
Maximize the reliability of the network upon node removal.
Maximize the network area coverage.
Minimal feasible cost

[2] -
בגלל שהנקודות הבעיתיות ברשתות הינן נקודות החיבור לרשתות אחרות , יש לדאוג כי אם התווספו נקודות או הוסרו נקודת הרשת תידע להתאים את עצמה.
[3] -
לאחר הצבה ראשונית הרשת תבדוק את מצבה אחת לזמן מסויים.
WMN - Wireless mesh network


התחלתי ללמוד את המחקרים בנושא Optimal Antenna Placement Using a New Multi-Objective CHC Algorithm ו לא מזמן לכן יכול להיות שאני אמצע פתרונות טובים יותר לגישה שלי.
כמו כן רק לאחרונה נתקלתי בנושא של פתרונות של הצבת אנטנה (ומשם אני מושך את זה להצבת היחידות שלי) באמצעים של חיפוש גנטי:

LINEAR ANTENNA ARRAY DESIGN WITH USE OF
GENETIC, MEMETIC AND TABU SEARCH
OPTIMIZATION ALGORITHMS

יום שישי, אפריל 30, 2010

מסרים מיידים בחברה ו VoIP

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

המצב הקיים בהרבה מקומות הוא :
שימוש בskype לשיחות בין העובדים עם הם במדינות שונות.
שימוש msn לשיחות טקסטואליות.

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

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

דרך -

אחד מפתרונות הIM הארגוניים שאני מכיר היינו שימוש בשרתי Jabber , בשונה משירותים אחרים עבודה עם XMPP (וכך גם עם SIMPLE ו SIP) מאפשרת חיבור פשוט לרשתות בין לאומיות. יותר מזה צריך באמת להתאמץ בשביל למנוע את יכולת העבודה עם הרשתות הבין לאומיות. וכך בהשקעה של חצי שעה ניתן להרים שרת פנימי שלא ממש דורש צורך אצל אנשי הIT . כל העובדים יהיו מחוברים אחד לשני. והכי חשוב המידע נשאר אצל החברה ולא בחוץ. אם כן איך עושים את זה.

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

אם נגדיר את הדומיין של בצורה טובה, נוכל גם להגדיר את שם המשתמש ברשת הvoip של החברה והעובד ידע על דבר אחד:
foo@bar.com אותה הכתובת גם לIM גם לשיחות וגם לכל דבר אחר.

לאחר מכן אני אישית ממליץ להרים מערכת SIP שתבצע גם peering . הסיבה - ככה לא תהיה נעילה לספק כזה או אחר של חומרה ותוכנה לשימוש. בשימוש בasterisk עבור ניהול תיבות התא הקולי מקבלים פתרון voip לכל הצרכים של הארגון.
אני אישית לא רואה צורך מיידי של חברה להעביר אפשרות של PSTN ל SIP (כי זה דורש קניית חומרה נוספת) אבל הוספה של תוסף זה יהיה נקודה חשובה לחברה.

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

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

ברגע שאירגון / חברה עוברת לשימוש במערכות peerring היא למעשה מקבלת טרמינציה ללא עלות (במקומות מסויימים אפילו לשיחות לlandline וmobile): ברגע שמבצעים הזדהות אירגונית כלפי אחד מספריות הpeering בין לאומיות אתם מתחייבים לספק התחברות מבחוץ ומקבלים איפשור להוציא שיחות החוצה. הנושא איננו חינם לחלוטין (אתם משלמים על רוחב הפס), וגם לכל ספק יש את ה"חוקים" שלו. אבל בגדול יש לכם פתח להוציא שיחה למדינה שאין לכם שירות עבורם.

מפה גם שרות הלקוחות של החברה מתחיל להרוויח - כי הלקוחות של הבחרה כבר לא חייבים לשלם על השיחה כשהם מתקשרים. הם פשוט יכולים להתקשר מרשת VoIP אחרת (לדוגמה opensips.org) לחברה שלכם (bar.com) ללא עלות.
וגם נושא הIT מרוויח - פחות כאב ראש מבחינת הגדרות טרמינציה.

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

כל הפתרונות שנתתי הינן פתרונות קוד פתוח (וקיים מספר רב של חברות הנותנות תמיכה בתשלום למי שצריך) :

ejjabered
opensips
openser
asterisk

יום חמישי, אפריל 29, 2010

השוואה בין SMB ל NFS איך עושים.

האמנתי די הרבה זמן כי מכונות שמתמשות בפרוטוקול SMB עושות רעש ברשת (לא משנה עם זה סמבה או וינדוס).
לכן החלטתי לעשות מעשה ולראות בכמה באמת מדובר. בזמן ריצה של 24 שעות דובר על איבוד של כ30% מהרשת :
קרוב ל 30% מההודעות היו בנושא CIFS ו SMB. השאלה הנשאלת מה יהיו תוצאות של ניסוי זהה בשימוש של NFS.
כאשר מדובר על מכונות בidle (ללא שימוש).למעשה עסק שמסתמך על עבודה עם windows share מאבד נתח משמעותי מרוחב הפס סתם ללא סיבה.


הבעיה הגדולה ביותר הוא שימוש בNFS בוינדוס. נשאר לי רק לטפוס מישהוא שיודע לעשות השוואות כמו שצריך איך בדיוק מפרסמים איך לדגום (אני משתמש ב tcpdump). ומה היא הצורה הנכונה להראות את ההשוואה. מדובר על מכונות שמריצות vista + win7. לא על רשת מבוססת לינוקס. אני פונה ישירות לשוק שמדבר וינדוס (מה לעשות גם איתם צריך ללמוד לעבוד).

יום שבת, דצמבר 26, 2009

המחשב שלי חולה ?

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

שגיאה מוזרה שהייתה בלוג של המייל :

To: your@your_domain.org
Subject: Garbage cans out

Sunday evening, put out the garbage cans.

התנתקתי מהרשת והפעלתי אתchkrootkit ואת tiger :

לשימחתי לא נמצאו (?) שום rootkit אולם נמצאו מספר קבצים שהם suid וguid. בנוסף הוא התריע על רשימת משתמשי המערכת (bin daemon וכן הלאה..).
--WARN-- [pass014w] Login (backup) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (bin) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (games) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (irc) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (libuuid) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (list) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (lp) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (mail) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (man) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (news) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (nobody) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (oracle) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (proxy) is disabled, but has a valid shell.
--WARN-- [pass015w] Login ID sshd does not have a valid shell
(/usr/sbin/nologin).
--WARN-- [pass015w] Login ID sync does not have a valid shell (/bin/sync).
--WARN-- [pass014w] Login (sys) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (uucp) is disabled, but has a valid shell.
--WARN-- [pass014w] Login (www-data) is disabled, but has a valid shell.
--WARN-- [pass012w] Home directory /var/lib/sendmail exists multiple times (2)
in /etc/passwd.
--WARN-- [pass006w] Integrity of password files questionable (/usr/sbin/pwck
-r).

אבל אז הרצתי את rkhunter והתחלתי לפחד :

System checks summary
=====================

File properties checks...
Files checked: 135
Suspect files: 0

Rootkit checks...
Rootkits checked : 245
Possible rootkits: 5
Rootkit names : Possible Lite5-r Rootkit, Xzibit Rootkit, Xzibit Rootkit, Xzibit Rootkit, Xzibit Rootkit

Applications checks...
Applications checked: 4
Suspect applications: 2

The system checks took: 4 minutes and 56 seconds

All results have been written to the log file (/var/log/rkhunter.log)

One or more warnings have been found while checking the system.
Please check the log file (/var/log/rkhunter.log)

שיט :

Found file '/tmp/.bash_history'. Possible rootkit: Possible Lite5-r Rootkit
[07:42:46] Warning: Checking for possible rootkit strings [ Warning ]
[07:42:46] Found string 'hdparm' in file '/etc/init.d/checkroot.sh'. Possible rootkit: Xzibit Rootkit
[07:42:46] Found string 'hdparm' in file '/etc/init.d/bootlogd'. Possible rootkit: Xzibit Rootkit
[07:42:46] Found string 'hdparm' in file '/etc/init.d/hdparm'. Possible rootkit: Xzibit Rootkit
[07:42:47] Found string 'hdparm' in file '/etc/init.d/.depend.boot'. Possible rootkit: Xzibit Rootkit



פלט מקוצר מWireShark :

No. Time Source Destination Protocol Info
3 0.266937 10.0.0.77 64.235.211.233 PPTP UNKNOWN-CONTROL-TYPE

Frame 3 (460 bytes on wire, 460 bytes captured)
Arrival Time: Dec 26, 2009 01:15:30.195527000
[Time delta from previous captured frame: 0.266721000 seconds]
[Time delta from previous displayed frame: 0.266937000 seconds]
[Time since reference or first frame: 0.266937000 seconds]
Frame Number: 3
Frame Length: 460 bytes
Capture Length: 460 bytes
[Frame is marked: False]
[Protocols in frame: eth:ip:tcp:pptp:data]
[Coloring Rule Name: TCP]
[Coloring Rule String: tcp]
Ethernet II, Src: , Dst: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
Destination: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
Address: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source:
Address:
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: IP (0x0800)
Internet Protocol, Src: 10.0.0.77 (10.0.0.77), Dst: 64.235.211.233 (64.235.211.233)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 446
Identification: 0x2d7d (11645)
Flags: 0x02 (Don't Fragment)
0.. = Reserved bit: Not Set
.1. = Don't fragment: Set
..0 = More fragments: Not Set
Fragment offset: 0
Time to live: 64
Protocol: TCP (0x06)
Header checksum: 0xec9b [correct]
[Good: True]
[Bad : False]
Source: 10.0.0.77 (10.0.0.77)
Destination: 64.235.211.233 (64.235.211.233)
Transmission Control Protocol, Src Port: 42475 (42475), Dst Port: pptp (1723), Seq: 1, Ack: 1, Len: 394
Source port: 42475 (42475)
Destination port: pptp (1723)
[Stream index: 2]
Sequence number: 1 (relative sequence number)
[Next sequence number: 395 (relative sequence number)]
Acknowledgement number: 1 (relative ack number)
Header length: 32 bytes
Flags: 0x18 (PSH, ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...1 .... = Acknowledgement: Set
.... 1... = Push: Set
.... .0.. = Reset: Not set
.... ..0. = Syn: Not set
.... ...0 = Fin: Not set
Window size: 92
Checksum: 0x372a [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Options: (12 bytes)
NOP
NOP
Timestamps: TSval 35814040, TSecr 146400233
[SEQ/ACK analysis]
[Number of bytes in flight: 394]
Point-to-Point Tunnelling Protocol
Length: 10988
Message type: Unknown (57548)
Cookie: 0xc21e8e40 (incorrect)
Control type: UNKNOWN-CONTROL-TYPE (24618)
Reserved: 43063
Data (382 bytes)

0000 df f8 60 d5 03 00 7f aa ad 5a e2 7c b8 f8 22 58 ..`......Z.|.."X
0010 b0 b4 c2 3a d9 70 62 05 1d 5e 84 45 b1 4f e3 37 ...:.pb..^.E.O.7
0020 52 de f4 66 45 ce 70 bd 32 7f eb 94 c4 eb f3 8d R..fE.p.2.......
0030 1d e6 88 fa f1 2e 50 b1 c7 53 3c 7d 71 63 54 e5 ......P..S<}qcT. 0040 26 50 46 95 a5 d7 cf 0c de ee a5 16 1f 61 74 41 &PF..........atA 0050 07 80 0d 32 20 72 ad 56 ff 7f 00 00 00 00 00 00 ...2 r.V........ 0060 00 00 00 00 00 00 00 00 00 00 00 00 48 72 ad 56 ............Hr.V 0070 ff 7f 00 00 8a 76 25 98 00 00 00 00 79 b3 ae bb .....v%.....y... 0080 f3 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0090 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 ................ 00a0 00 00 00 00 01 00 00 00 ff 7f 00 00 60 0e cc b7 ............`... 00b0 f3 7f 00 00 60 72 ad 56 ff 7f 00 00 50 57 3b 03 ....`r.V....PW;. 00c0 00 00 00 00 c8 85 6c 00 00 00 00 00 a8 c9 cf bb ......l......... 00d0 f3 7f 00 00 00 00 00 00 00 00 00 00 00 cd cf bb ................ 00e0 f3 7f 00 00 d0 71 ad 56 ff 7f 00 00 e8 71 ad 56 .....q.V.....q.V 00f0 ff 7f 00 00 02 00 06 bb 01 00 00 00 71 30 5b bb ............q0[. 0100 f3 7f 00 00 f0 71 ad 56 ff 7f 00 00 08 72 ad 56 .....q.V.....r.V 0110 ff 7f 00 00 30 f4 c6 02 01 00 00 00 f7 3c 5b bb ....0........<[. 0120 f3 7f 00 00 02 00 00 00 00 00 00 00 a8 c9 cf bb ................ 0130 f3 7f 00 00 28 7b 5a bb f3 7f 00 00 a8 c9 cf bb ....({Z......... 0140 f3 7f 00 00 30 72 ad 56 ff 7f 00 00 ff ff ff ff ....0r.V........ 0150 00 00 00 00 b0 d1 5a bb f3 7f 00 00 a8 c9 cf bb ......Z......... 0160 f3 7f 00 00 c0 85 6c 00 00 00 00 00 ff ff ff ff ......l......... 0170 00 00 00 00 c0 85 6c 00 00 00 00 00 00 a0 ......l....... Data: DFF860D503007FAAAD5AE27CB8F82258B0B4C23AD9706205... [Length: 382] No. Time Source Destination Protocol Info 34 2.561218 64.235.211.233 10.0.0.77 TCP pptp > 42475 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1452 TSV=146400833 TSER=35812282

Frame 34 (70 bytes on wire, 70 bytes captured)
Arrival Time: Dec 26, 2009 01:15:32.489808000
[Time delta from previous captured frame: 0.111148000 seconds]
[Time delta from previous displayed frame: 2.294281000 seconds]
[Time since reference or first frame: 2.561218000 seconds]
Frame Number: 34
Frame Length: 70 bytes
Capture Length: 70 bytes
[Frame is marked: False]
[Protocols in frame: eth:ip:tcp]
[Coloring Rule Name: TCP SYN/FIN]
[Coloring Rule String: tcp.flags & 0x02 || tcp.flags.fin == 1]
Ethernet II, Src: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5), Dst:
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
Address: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: IP (0x0800)
Internet Protocol, Src: 64.235.211.233 (64.235.211.233), Dst: 10.0.0.77 (10.0.0.77)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 56
Identification: 0x1c99 (7321)
Flags: 0x02 (Don't Fragment)
0.. = Reserved bit: Not Set
.1. = Don't fragment: Set
..0 = More fragments: Not Set
Fragment offset: 0
Time to live: 112
Protocol: TCP (0x06)
Header checksum: 0xcf05 [correct]
[Good: True]
[Bad : False]
Source: 64.235.211.233 (64.235.211.233)
Destination: 10.0.0.77 (10.0.0.77)
Transmission Control Protocol, Src Port: pptp (1723), Dst Port: 42475 (42475), Seq: 0, Ack: 1, Len: 0
Source port: pptp (1723)
Destination port: 42475 (42475)
[Stream index: 2]
Sequence number: 0 (relative sequence number)
Acknowledgement number: 1 (relative ack number)
Header length: 36 bytes
Flags: 0x12 (SYN, ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...1 .... = Acknowledgement: Set
.... 0... = Push: Not set
.... .0.. = Reset: Not set
.... ..1. = Syn: Set
[Expert Info (Chat/Sequence): Connection establish acknowledge (SYN+ACK): server port pptp]
[Message: Connection establish acknowledge (SYN+ACK): server port pptp]
[Severity level: Chat]
[Group: Sequence]
.... ...0 = Fin: Not set
Window size: 65535
Checksum: 0x4201 [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Options: (16 bytes)
Maximum segment size: 1452 bytes
SACK permitted
Timestamps: TSval 146400833, TSecr 35812282

No. Time Source Destination Protocol Info
35 2.561282 10.0.0.77 64.235.211.233 TCP [TCP Dup ACK 3#1] 42475 > pptp [ACK] Seq=395 Ack=1 Win=92 Len=0 TSV=35814613 TSER=146400833 SLE=0 SRE=1

Frame 35 (78 bytes on wire, 78 bytes captured)
Arrival Time: Dec 26, 2009 01:15:32.489872000
[Time delta from previous captured frame: 0.000064000 seconds]
[Time delta from previous displayed frame: 0.000064000 seconds]
[Time since reference or first frame: 2.561282000 seconds]
Frame Number: 35
Frame Length: 78 bytes
Capture Length: 78 bytes
[Frame is marked: False]
[Protocols in frame: eth:ip:tcp]
[Coloring Rule Name: Bad TCP]
[Coloring Rule String: tcp.analysis.flags]
Ethernet II, Src: , Dst: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
Destination: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
Address: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source:

.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: IP (0x0800)
Internet Protocol, Src: 10.0.0.77 (10.0.0.77), Dst: 64.235.211.233 (64.235.211.233)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 64
Identification: 0x2d7e (11646)
Flags: 0x02 (Don't Fragment)
0.. = Reserved bit: Not Set
.1. = Don't fragment: Set
..0 = More fragments: Not Set
Fragment offset: 0
Time to live: 64
Protocol: TCP (0x06)
Header checksum: 0xee18 [correct]
[Good: True]
[Bad : False]
Source: 10.0.0.77 (10.0.0.77)
Destination: 64.235.211.233 (64.235.211.233)
Transmission Control Protocol, Src Port: 42475 (42475), Dst Port: pptp (1723), Seq: 395, Ack: 1, Len: 0
Source port: 42475 (42475)
Destination port: pptp (1723)
[Stream index: 2]
Sequence number: 395 (relative sequence number)
Acknowledgement number: 1 (relative ack number)
Header length: 44 bytes
Flags: 0x10 (ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...1 .... = Acknowledgement: Set
.... 0... = Push: Not set
.... .0.. = Reset: Not set
.... ..0. = Syn: Not set
.... ...0 = Fin: Not set
Window size: 92
Checksum: 0xd437 [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Options: (24 bytes)
NOP
NOP
Timestamps: TSval 35814613, TSecr 146400833
NOP
NOP
SACK: 0-1
left edge = 0 (relative)
right edge = 1 (relative)
[SEQ/ACK analysis]
[This is an ACK to the segment in frame: 34]
[The RTT to ACK the segment was: 0.000064000 seconds]
[TCP Analysis Flags]
[This is a TCP duplicate ack]
[Duplicate ACK #: 1]
[Duplicate to the ACK in frame: 3]
[Expert Info (Note/Sequence): Duplicate ACK (#1)]
[Message: Duplicate ACK (#1)]
[Severity level: Note]
[Group: Sequence]

No. Time Source Destination Protocol Info
91 7.754934 10.0.0.77 64.235.211.233 PPTP [TCP Retransmission] UNKNOWN-CONTROL-TYPE

Frame 91 (460 bytes on wire, 460 bytes captured)
Arrival Time: Dec 26, 2009 01:15:37.683524000
[Time delta from previous captured frame: 0.227992000 seconds]
[Time delta from previous displayed frame: 5.193652000 seconds]
[Time since reference or first frame: 7.754934000 seconds]
Frame Number: 91
Frame Length: 460 bytes
Capture Length: 460 bytes
[Frame is marked: False]
[Protocols in frame: eth:ip:tcp:pptp:data]
[Coloring Rule Name: Bad TCP]
[Coloring Rule String: tcp.analysis.flags]
Ethernet II, Src: , Dst: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
Destination: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
Address: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source:
Address:
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: IP (0x0800)
Internet Protocol, Src: 10.0.0.77 (10.0.0.77), Dst: 64.235.211.233 (64.235.211.233)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 446
Identification: 0x2d7f (11647)
Flags: 0x02 (Don't Fragment)
0.. = Reserved bit: Not Set
.1. = Don't fragment: Set
..0 = More fragments: Not Set
Fragment offset: 0
Time to live: 64
Protocol: TCP (0x06)
Header checksum: 0xec99 [correct]
[Good: True]
[Bad : False]
Source: 10.0.0.77 (10.0.0.77)
Destination: 64.235.211.233 (64.235.211.233)
Transmission Control Protocol, Src Port: 42475 (42475), Dst Port: pptp (1723), Seq: 1, Ack: 1, Len: 394
Source port: 42475 (42475)
Destination port: pptp (1723)
[Stream index: 2]
Sequence number: 1 (relative sequence number)
[Next sequence number: 395 (relative sequence number)]
Acknowledgement number: 1 (relative ack number)
Header length: 32 bytes
Flags: 0x18 (PSH, ACK)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...1 .... = Acknowledgement: Set
.... 1... = Push: Set
.... .0.. = Reset: Not set
.... ..0. = Syn: Not set
.... ...0 = Fin: Not set
Window size: 92
Checksum: 0x2d82 [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Options: (12 bytes)
NOP
NOP
Timestamps: TSval 35815912, TSecr 146400833
[SEQ/ACK analysis]
[Number of bytes in flight: 394]
[TCP Analysis Flags]
[This frame is a (suspected) retransmission]
[Expert Info (Note/Sequence): Retransmission (suspected)]
[Message: Retransmission (suspected)]
[Severity level: Note]
[Group: Sequence]
[The RTO for this segment was: 7.487997000 seconds]
[RTO based on delta from frame: 3]
Point-to-Point Tunnelling Protocol
Length: 10988
Message type: Unknown (57548)
Cookie: 0xc21e8e40 (incorrect)
Control type: UNKNOWN-CONTROL-TYPE (24618)
Reserved: 43063
Data (382 bytes)

0000 df f8 60 d5 03 00 7f aa ad 5a e2 7c b8 f8 22 58 ..`......Z.|.."X
0010 b0 b4 c2 3a d9 70 62 05 1d 5e 84 45 b1 4f e3 37 ...:.pb..^.E.O.7
0020 52 de f4 66 45 ce 70 bd 32 7f eb 94 c4 eb f3 8d R..fE.p.2.......
0030 1d e6 88 fa f1 2e 50 b1 c7 53 3c 7d 71 63 54 e5 ......P..S<}qcT. 0040 26 50 46 95 a5 d7 cf 0c de ee a5 16 1f 61 74 41 &PF..........atA 0050 07 80 0d 32 20 72 ad 56 ff 7f 00 00 00 00 00 00 ...2 r.V........ 0060 00 00 00 00 00 00 00 00 00 00 00 00 48 72 ad 56 ............Hr.V 0070 ff 7f 00 00 8a 76 25 98 00 00 00 00 79 b3 ae bb .....v%.....y... 0080 f3 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0090 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 ................ 00a0 00 00 00 00 01 00 00 00 ff 7f 00 00 60 0e cc b7 ............`... 00b0 f3 7f 00 00 60 72 ad 56 ff 7f 00 00 50 57 3b 03 ....`r.V....PW;. 00c0 00 00 00 00 c8 85 6c 00 00 00 00 00 a8 c9 cf bb ......l......... 00d0 f3 7f 00 00 00 00 00 00 00 00 00 00 00 cd cf bb ................ 00e0 f3 7f 00 00 d0 71 ad 56 ff 7f 00 00 e8 71 ad 56 .....q.V.....q.V 00f0 ff 7f 00 00 02 00 06 bb 01 00 00 00 71 30 5b bb ............q0[. 0100 f3 7f 00 00 f0 71 ad 56 ff 7f 00 00 08 72 ad 56 .....q.V.....r.V 0110 ff 7f 00 00 30 f4 c6 02 01 00 00 00 f7 3c 5b bb ....0........<[. 0120 f3 7f 00 00 02 00 00 00 00 00 00 00 a8 c9 cf bb ................ 0130 f3 7f 00 00 28 7b 5a bb f3 7f 00 00 a8 c9 cf bb ....({Z......... 0140 f3 7f 00 00 30 72 ad 56 ff 7f 00 00 ff ff ff ff ....0r.V........ 0150 00 00 00 00 b0 d1 5a bb f3 7f 00 00 a8 c9 cf bb ......Z......... 0160 f3 7f 00 00 c0 85 6c 00 00 00 00 00 ff ff ff ff ......l......... 0170 00 00 00 00 c0 85 6c 00 00 00 00 00 00 a0 ......l....... Data: DFF860D503007FAAAD5AE27CB8F82258B0B4C23AD9706205... [Length: 382] No. Time Source Destination Protocol Info 175 13.236182 10.0.0.77 64.235.211.233 TCP 42500 > pptp [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=35817282 TSER=0 WS=6

Frame 175 (74 bytes on wire, 74 bytes captured)
Arrival Time: Dec 26, 2009 01:15:43.164772000
[Time delta from previous captured frame: 0.000523000 seconds]
[Time delta from previous displayed frame: 5.481248000 seconds]
[Time since reference or first frame: 13.236182000 seconds]
Frame Number: 175
Frame Length: 74 bytes
Capture Length: 74 bytes
[Frame is marked: False]
[Protocols in frame: eth:ip:tcp]
[Coloring Rule Name: TCP SYN/FIN]
[Coloring Rule String: tcp.flags & 0x02 || tcp.flags.fin == 1]
Ethernet II, Src: , Dst: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
Destination: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
Address: AskeyCom_ec:c5:b5 (00:21:63:ec:c5:b5)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source:
Address:
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: IP (0x0800)
Internet Protocol, Src: 10.0.0.77 (10.0.0.77), Dst: 64.235.211.233 (64.235.211.233)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 60
Identification: 0xa39c (41884)
Flags: 0x02 (Don't Fragment)
0.. = Reserved bit: Not Set
.1. = Don't fragment: Set
..0 = More fragments: Not Set
Fragment offset: 0
Time to live: 64
Protocol: TCP (0x06)
Header checksum: 0x77fe [correct]
[Good: True]
[Bad : False]
Source: 10.0.0.77 (10.0.0.77)
Destination: 64.235.211.233 (64.235.211.233)
Transmission Control Protocol, Src Port: 42500 (42500), Dst Port: pptp (1723), Seq: 0, Len: 0
Source port: 42500 (42500)
Destination port: pptp (1723)
[Stream index: 47]
Sequence number: 0 (relative sequence number)
Header length: 40 bytes
Flags: 0x02 (SYN)
0... .... = Congestion Window Reduced (CWR): Not set
.0.. .... = ECN-Echo: Not set
..0. .... = Urgent: Not set
...0 .... = Acknowledgement: Not set
.... 0... = Push: Not set
.... .0.. = Reset: Not set
.... ..1. = Syn: Set
[Expert Info (Chat/Sequence): Connection establish request (SYN): server port pptp]
[Message: Connection establish request (SYN): server port pptp]
[Severity level: Chat]
[Group: Sequence]
.... ...0 = Fin: Not set
Window size: 5840
Checksum: 0x3d33 [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Options: (20 bytes)
Maximum segment size: 1460 bytes
SACK permitted
Timestamps: TSval 35817282, TSecr 0
NOP
Window scale: 6 (multiply by 64)

יום שלישי, נובמבר 03, 2009

מעקף צנזורה ברמה בסיסית.

מספר חברות התחילו להפעיל מערכות צנזורה על מערכות הרשת.
בן אם מדובר על Throling לפרוטוקולים ( כמו שאחד מחברי Linux-IL הראה בפרוייקט שלו) ובין עם חסימה לחלוטין של פרוטוקולים (כמו שסלקום עשו ל VoIP) .

קודם כל איך זה מתבצע ?

ישנן מספר רמות שאני מכיר והן :
  • חסימה ע"פ בסיס DNS ו ip (רשימות שחורות / לבנות).
  • חסימה באמצעות פרוקסי שקוף.
  • חסימה באמצעות מערכות זיהוי פרוטוקול (Layer 7 analysis ).

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

  2. בדקו שלא מדובר במגבלת DNS , החליפו את שרת ה DNS שלכם לשרת אחר (לדוגמה 4.2.2.2) ותראו אם הבעיה נפתרת.
    קובץ /etc/resolv.conf
  3. השתמש בשרת פרוקסי חינמי (אבל עדיף חופשי).

  4. נסו להשתמש בssh לשרת כלשהוא ומשם החוצה.
  5. צרו תעלת מידע (tunnel) באמצעות ssh , ppp , gre , ipsec וכו'
  6. השתמשו בtor

במידה ונתקלתם בפרוקסי שקוף (Squid לדוגמה) אפשר להשתמש ב ssh על מנת להצפין את התעבורה למחשב אחר ולהשתמש בו כgateway שלכם.

מפוסט בWhatsup התברר כי יש חברת אינטרנט רימון חוסמת ssh (משהוא שהוא מאוד מפתיע) לכן ניתן להשתמש בפתרון שיבצע אינקפסולציה למידע (כל פתרון ppp יתן את אותה התוצאה) - כולמר :
פתיחת pptunnel למחשב אחר ובתוכו להעביר תעבורת באמצעות ssh.

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

שימוש במזהה הפרוטוקול ב IP header (נעקף באמצעות שימוש בפיטצר הצפנת מזהה הפרוטוקול).
שימוש בזיהוי משתמש מswarm (לדוגמה סנדוין) ואז דימוי ניתוק ממנו.
שימוש בזיהוי סוג שימוש (לפי זמנים וחיבורים).

הצורות לעקוף יחסית בעייתיות (דורשות גישה לקרנל , ידע , עזרה מהצד השני).

שימוש בשרת gw שדרכו יתבצע התעבורה:

בשימוש באמצעות tun מייצרים התקן המחשב האישי שלך ובשרת (תעבורה באמצעות ssh).
הגדרת הdefault gw ככרטיס ממנו יוצא התעבורה.
הגדירו vpn למחשב ממנו רוצים לגלוש (מדריך).
הגידרו את המכונה כdefault gw באמצות טבלת הניתוב (מלאו את המשתנים לבד ... ) :
route add $serverip gw $clientnormalgwip eth0
route add default gw $serverdefaultgw tun0
route del default gw $clientnormalgwip eth0
מה שעשינו שלאחר שיצרנו את תעלת הssh באמצעות ssh -w אנו הגדרנו אצל הלקוח כי יצאת ברירת המחדל היא יצאת ברירת המחדל במחשב המארח.

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

שימוש ב NSTX :
אתם מתעלים את התקשורת בתוך בקשות DNS (שבדר"כ עוברות חלק) - אשמח עם מישהוא יבדוק עם רימון.


אפשר לבצע עטיפת פרוטוקולים :

1 ) שימוש ב - ppp
התקנת והגדרת pptpd במחשב מארח.
צור ערוץ pptp (שרת במחשב האישי שלך) והרם תקשורת עליו באמצעות pptp-client.
בצע שימוש בשרת gw רק הסירו גם את הroutים שנוספו בגלל הpptp.

2 ) שימוש ב GRE -
3) שימוש ב IPSec עם פרוטוקול אחר לדוגמה (l2tp + ipsec)
4) צור תעלת ssh לשרת כלשהוא דרך רשת tor.

ואם ממש רוצים להשתגע אפשר להוסיף עוד ערוץ ssh בפנים :-)

יום שני, אוגוסט 31, 2009

איזה פתרון מתאים לי (וירטאליזציה)

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

ישנם הרבה פתרונות אבל כרגע אני מתייחס רק לשלוש:
פאראוירטואליזציה : מה שXen עושה (הוא לא מתרגם את כל הפעולות). דורש שינוי במערכת הפעלה המתארחת. אחת הבעיות שאתה לא יכול (אני לא הצלחתי) להפעיל מערכות שלא שונו.
וירטואליזציה מלאה : מה שKVM ו Qemu עושים הם מתרגמים כל פעולה.
וירטואלזציה ברמת המערכת הפעלה: אינו באמת הדמיה אלה שימוש במערכת הפעלה בשביל להפעיל כל מני חוקים כמו למשל נעילה לעץ (chroot) נעילה לתהליכים (BSD jail) וכמובן UML (שמאפשר להריץ מערכות שלמות בUser mode .

במצב שלי אני רציתי להרוויח גם את האפשרות של מהירות (קיוויתי להגיע לתגובות של התקנה טבעית).
וגם האפשרות לבצע הפרדה מלאה בין מערכות:
כלומר ששני שירותים יהיו בהפרדה מלאה (יהיו שני שרתים עם IP ים שונים שהתהליכים שלהם לא יפריו אחד לשני) ומאוד חשוב שבקריסה שלהם כל המערכת לא תיפול (מה שקורא ב vmware ).
מה שאני בחרתי היה שימוש ב UML : הסיבה היתה יחסית פשוטה :
מאפשרת לעבוד עם rootfs ולבצע בו מגוון פעולות (בניגוד לJail).
יחסית פשוט יותר לאחזקה מjail
ומאוד חשוב התרסקות שלו לא משפיע בצורה קשה על המערכת המארחת.

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

יום שני, אוגוסט 17, 2009


בימים האחרונים חזרתי לעבוד הרבה עם ניהול שרתים (קטנים אבל עדיין שרתים).
בכל מקרה לאחר שהגדרנו את שירותי ההזדהות (ldap) וגם שירותי שיתוף הקבצים (nfs+samba+ldap) הגיעו הדברים הפשוטים יותר.
פעמים רבות יש צורך לעלות מחשב ריק ולהתקין עליו כמה שיותר מהר מערכת הפעלה.
ישנו פתרון והוא נקרא PXE.

על מנת להשתמש בזה בדביאן / אובנטו יש להתקין מספר חבילות :

שרת שיאפשר את ההורדה.
השרת הוא שירות מסוג tftpd שזה ftp רק בלי כל הסיגנאליניג ואותריזציה.



apt-get install tftp-hpa
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
tftp-hpa
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 26.5kB of archives.
After this operation, 53.2kB of additional disk space will be used.
Get:1 http://mirror.isoc.org.il unstable/main tftp-hpa 5.0-5 [26.5kB]
Fetched 10.4kB in 2s (3836B/s)
Selecting previously deselected package tftp-hpa.
(Reading database ... 132205 files and directories currently installed.)
Unpacking tftp-hpa (from .../tftp-hpa_5.0-5_amd64.deb) ...
Processing triggers for man-db ...
Setting up tftp-hpa (5.0-5) ..


לאחר מכן יש לאפשר עליית המודול בקובץ /etc/default/tftpd-hpa

לאחר מכן צריך להתקין את שירות שיאפשר את החיבור (מי שיתן את כתובת הIP למחשב שיתחברו).


apt-get install dhcp3-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
dhcp3-server-ldap
The following NEW packages will be installed:
dhcp3-server
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 358kB of archives.
After this operation, 819kB of additional disk space will be used.
Get:1 http://mirror.isoc.org.il unstable/main dhcp3-server 3.1.2p1-1 [358kB]

קובץ ההגדרות שאני משתמש הוא בהנחה שהכרטיס מוגדר כ192.168.10.5 והתקשורת מוגדרת לעבור דרכו החוצה.
במצב אחר (שיש נתב שהוא לא מחלק כתובות) הגדירו את routers כip של הנתב.



option domain-name-servers 4.2.2.2;
default-lease-time 86400;
max-lease-time 604800;
authoritative;

subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.70 192.168.10.100;
filename "pxelinux.0";
next-server 192.168.10.5;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.10.5;
}


לאחר שהכול מוגדר כמו שצריך נשאר רק להוריד את הקבצים שישלחו למחשבים.
זאת מבצעים באמצעות הורדת הקובץ netboot.tar.gz ופריסתו לתיקיה ממנה tftpd פותח את הקבצים.
כלומר :


sudo mkdir -p /var/lib/tftpboot

wget -c http://mirror.isoc.org.il/pub/debian/dists/testing/main/installer-i386/current/images/netboot/netboot.tar.gz
--2009-08-17 03:12:47-- http://mirror.isoc.org.il/pub/debian/dists/testing/main/installer-i386/current/images/netboot/netboot.tar.gz
Resolving mirror.isoc.org.il... 192.115.211.70
Connecting to mirror.isoc.org.il|192.115.211.70|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7432940 (7.1M) [application/x-gzip]
Saving to: `netboot.tar.gz'

100%[==================================================================================================>] 7,432,940 133K/s in 74s

2009-08-17 03:14:02 (98.3 KB/s) - `netboot.tar.gz' saved [7432940/7432940]

sudo tar -xvvf netboot.tar.gz -C/var/lib/tftpboot

כמובן לא לשכוח להפעיל מחדש את dhcp3-server ו tftpd-hpa
/etc/init.d/dhcp3-server restart
/etc/init.d/tftpd-hpa restart
אם יש אי אלו שגיאות צריך להתייחס אליהן ולעבוד על פי הן.
אם התקבלה שגיאה של אין האזנה על אף התקן זה אומר שאין כרטיס רשת בקבוצת הIPים שמחלקים
במילים אחרות :
ifconfig eth0 192.168.10.5

עד לפה הכל טוב ויפה. מה שצריך לעשות אכשיו זה לחבר מחשב עם קבל רשת (מוצלב או דרך נתב שלא מחלק IPים) להפעיל ולהרשות הפעלה מהרשת.

משום מה ביומים האחרונים יש לי בעיות לעבוד עם שרתי testing של mirror.isoc.org.il (יש טענה שיש בעייה בchecksum) בדקתי רק עם amd64. קפיצה לשרתי מיררור של מדינה אחרת (ניסיתי עם ארה"ב ועבר חלק).

נקודה למחשבה היא שימוש בapt-proxy או squid שיאפשר משחק בהתקנה.
למרות שאני לא יודע איך לגרום לd-i להוריד משרת אחר ניתן להגדיר פרוקסי בצורה כזאת מהירות ההורדה תעלה פלאיים.
למעשה כשאני חושב על זה פיטצר של הגדרה ידנית של מקורות apt הוא הרבה יותר מעניין (ושמיש).

נ.ב.
ניתן להתקין ככה כל מערכת (צריך רק להוריד את הnetboot המתאים למערכת).