יום שבת, 30 באוקטובר 2010

Vnc Server installation - Fedora

התקנה מהירה של VNC ע"ג Fedora.

1.התקנת ה Package - יש לבצע את התהליך כ Root.
#: yum install vnc
2.עריכת קובץ הקונפגורציה:


#: nano /etc/sysconfig/vncservers
נבטל את ההערות (#) על השורות:
VNCSERVERS="2:root"
VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"

כשה Root הוא המשתמש שאנו מעונינים שהשתמש ב Vnc

נגדיר סיסמא עבור הכניסה:
#: vncpasswd
Password:*****
Verify:*****
פתיחת פורטים ב Firewall:

#: iptables -A INPUT -p udp -m state --state NEW -m udp --dport 5900 -j ACCEPT
#: iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 5900 -j ACCEPT

הפעלת ה service:
#:service vncserver start

בהצלחה...

יום שישי, 29 באוקטובר 2010

Apache server installation - Fedora

1.התקנת ה Package
#: yum install httpd

הפעלת ה service יש להיות מחוברים כ Root :

#: su root
#: enter password:
#: service httpd start
בדיקת שה Service באמת עובד:

#: service --status-all
#: httpd (pid 20596) is running...


2.פתיחת פורט 80 ב Firewall.
#:iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

3.יצירת קובץ לבדיקה:
#: nano /var/www/html/phpinfo.php
4.נרשום:
<?php
phpinfo();
?>

נשמור את הקובץ וננסה לגשת ממחשב חיצוני.

יום שבת, 23 באוקטובר 2010

Installing BackTrack 3 on HardDrive


התקנת Backtrack ע"ג כונן קשיח הוא תהליך מסורבל, יש מספר שלבים על מנת להשלים את התהליך:

שלב א: הכנת הכונן הקשיח

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

יצירת 2 מחיצות Partitions , הראשון עבור הקבצים שלנו בכונן הקשיח והשני עובר הזיכרון Swap.
על מנת ליצור Partitions יש להשתמש ב fdisk עם מיקום של הכונן הפיזי, אצלי זה HDA , זה תלוי מי היצרן של הכונן הקשיח.

#: fdisk /dev/hda


הפקודה M מאפשרת להראות לנו את רשימה הפקודות עבור Fdisk.

הפקודה N מאפשרת יצירה של Partition חדש, תחילה יש לבחור את סוג הפעולה.

Command (m for help): n
Command action
e extended
p primary partition (1-4)







נבחר לנו את ה P  כ primary ,נגדיר את ה Partition ל 1, ונגדיר לו את הנפח ב MB, במקרה שלי היה כונן בנפח 40 GB שמתוכו הגדרתי 30 GB שזה 30000M.

על מנת לראות את הגדרות נלחץ על p:

עם 10 GB הנוספים שיש לנו נגדיר את ה Swap, הנקודה שאליה נרשם הזכרון לכונן הקשיח באותו תהליך , נריץ את הפקודה N על מנת ליצור Partition  חדש, נסמן גם אותו כ P , נגדיר אותו כ Partition  מספר 2.
בניגוד ל Partition הראשון ה Partition  הזה צריך להיות מוגד כ SWAPוזאת נעשה בעזרת הפקודה t נבחר את ה Partition  שהגדרנו כ Swap במקרה שלנו מספר 2, ונגדיר אותו כ hex code:82 שזה ה Type של linux swap

לסיום נריץ את ה פקודה W על מנת לאפשר כתיבה על ה Partition.
 
נפארמט את הכונן המרכזי שמספרו הוא 1, הוא נוסף לשם הלוגי של הכונן במקרה שלי HDA1
 
#:mkfs.ext3 /dev/hda1
 
נגדיר את מיקום ה Swapשהגדרנו:
 
#:mkswap /dev/hda2
 
נפעיל אותו:
 
#:swapon /dev/hda2
 
סיימנו את השלב הראשון.
 
שלב שני: יצירת ספריות להעתקה
ניצור את הספריות הבאות:
 
#:mkdir /mnt/backtrack
נעשה mount לכונן לספריה החדשה
#:mount /dev/hda1 /mnt/backtrack/
ניצור את ספריית ה BOOT
#:mkdir /mnt/backtrack/boot
נעתיק את הספריות מהדיסק כולל תת ספריות
#:cp --preserve -R /{bin,dev,home,pentest,root,usr,etc,lib,opt,sbin,var} /mnt/backtrack/
התהליך לוקח קצת זמן לאח"כ ניצור קבוצת תקיות חדשות:
#:mkdir /mnt/backtrack/{mnt,proc,sys,tmp}
נריץ 2 פקודות Mount על מנת להגדיר את הספריות המערכת:
#:mount --bind /dev/ mnt/backtrack/dev/
#:mount -t  proc proc /mnt/backtrack/proc/
נעתיק את ה Boot לספרית ה Boot שיצרנו לפני:
#:cp boot/vmlinuz /mnt/backtrack/boot
נשנה את ה ROOT:
#:chroot /mnt/backtrack/ /bin/bash
 
שלב שלישי: עריכת קובץ תוכנת ה  Boot
 
נערוך את קובץ Lilo.conf של התוכנה Lilo שמריצה את ה Boot.
#:nano /etc/lilo.conf
 
ניתן להוריד את השורות שמסומנות כהערה, חשוב מאוד להשים לב לפרמטרים הבאים:
ה boot צריך להצביע על הכונן פיזי במקרה של Hda
boot = /dev/hda
 ה Root צריך להצביע ל Partition הראשון שהגדרנו
root =/dev/hda1
ונשנה את ה Label ל backtrack
label = backtrack
 
נשמור את הקובץ ועל מנת שההגדרות יכנסו לתוקף נרשום:
#:lilo -v
 
נפעיל את המחשב מחדש, נוציא את הדיסק מהכונן ויעלה לנו מסך אדום של ה boot עם בחירת מערכת ההפעלה.
 
בהצלחה.

יום חמישי, 14 באוקטובר 2010

Dllimport 0x000007b

the application failed to initialize properly 0x000007b

תקלה נופצה במערכות שעברו השבה מסביבת 32BIT ל 64BIT, כאשר אנחנו מנסים להפעיל קוד בסביבת
Manage Code שקרוא לקוד בסביבה Unmanage Code נקבל הודעה: the application failed to initialize properly 0x000007b.

כשאנחנו מנסים לקרוא לפונקציה חיצונית שכתובה בשפת  (C (unmanaged code מתוך פונקציה בתוך הקוד שרשום ב  (C# (managed code הבעיה המרכזית היא ב Compiler של התוכנה ב managed code , ה Compiler ב Visual Studio מוגדר כ Any Cpu כברירת מחדל , כלומר יש התאמה למערכות 64 ו ה 32 ביט בקובץ עצמו, ובעצם הזכות למערכת הפעלה לבחור את התאמה של התוכנית לפני תחילת ריצת התוכנית.

אבל מה קורה עם הקובץ שאנחנו קוראים לו מתוך התוכנה? בניגוד ל managed code כאן מחוייב להגדיר לאיזה בדיוק מערכת הקובץ מותאם אם ל 64 או ל 32 ביט, ובעצם מכאן הבעיה, בגלל שהמערכת שומרת לה את הזכות לבחור את שיטת ההרצה היא תעדיף את ה 64 על פני ה 32 ובעצם מרחב הכתובות בזיכרון של התוכנה גדל, ואילו לקובץ שאנו קוראים מהתוכנית עובד בסביבת זיכרון מצומצמת של 32 ולכן לא ניתן לקשר בניהם אז קופצת התקלה.

אז איך ניתן לתקן?? הצורה שאני תיקנתי את זה היא פשוט ללחוץ עם הכפתור הימני על הפרויקט ולבחור Properties והיפתח לנו המסך הבא:


נבחר לנו את הפלטפורמה הרציוה x86 עבור מערכות 32 ו 64.
נעשה Build ועכשיו הפלטפורה היא 32 , ניתן לזהות שתוכנה רצה כ 32 ביט ע"י * ש ב task manager.

חשוב לציין שאם הפרויקט שלכם משולב עם Sln (solution) יש להגדיר בו את הגדרת הפלטפורמה:



 מומלץ לבנות את הקובץ ב Release.

בהצלחה...

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

Bios Commands Limits IIS 7

כונן שיתופי עבור מספר אתרי אינטרנט  הוא דבר חיוני במיוחד שמדובר בשילוב של שרתים עם מערכת Storage מרכזית , קיימים מספר אתרים שיושבים על אותו Storage ומספר שרתי אירוח (IIS) שונים שמפוזרים על שרתים נפרדים אבל שיש להם חיבור עם אותו Storage , כשיש יותר מידי קריאות ל Storage או קריאות ארוכות בסיביבת Asp.net , האתר יראה לנו את ההודעה הבאה:
 The network BIOS command limit has been reached
כלומר שלא ניתן ליצור קשר עם ה Storage כי עדיין יש קריאות שלא הסתיימו מולו.

תחילה נראה שהבעיה כנראה ב Storage אבל מסתבר שדווקא בשרתי ה IIS שמבוססים על WINDOWS 7 שבברירת מחדל שלהם חסרים 2 מפתחות חשובים ב Registry ולכן לא ניתן ליצור יותר חיבורים עם ה Storage.

 שני המפתחות החסרים:

MaxCmds - DWORD 32 BIT
MaxMpxct - DWORD 32 BIT

יש להוסיף את המפתחות האלה תחת המפתח:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters


אבל עכשיו העניין איזה ערך להשים ב Value?? ובכן ה Default של 2 המפתחות הוא אמור להיות על 50, אבל אם צריך שתהיה אפשרות לבצע יותר קריאות ניתן להעלות אותו עד 65000 ב Decimal, אבל זה עלול לגרום למערכת לא להיות יציבה!! , עם אתם בעלי מערכת הפעלה 64 BIT אז אין בעיה להעלות אותו למקסימום אך עדיין זה לא מומלץ, הערך שאני השתמשתי הוא 800 כ HexDecimal או 2048 כ Decimal.

בהצלחה...

יום שלישי, 5 באוקטובר 2010

Multi Domain with default documents pointing to one website IIS 7

מסתבר שב IIS 7 יותר מסובך להגדיר Default Document לשני דומיינים שונים שמשתמשים באותו Web.config , ב IIS 6 האפשרות היתה יותר פשוטה , ה Default Document היה קשור ל Application Directory ולא היה לו קשר עם ההגדרות ב Web.config עצמו של האפליקציה ככה היה ניתן להגדיר ל 2 דומנים שונים שמצביעים על אותה תקייה עם 2 Default Document שונים.

כאשר ננסה לעשות הגדרה של 2 Default Document  ב IIS 7 ה Web.config השתנה לפי הדומיין שבחרנו באותו רגע, יש כמה שיטות לטפל בבעיה דרך URL Rewirte כחלק מה IIS 7 , הפניות ב JAVA SCRIPT כ REDIRECT או דרך עריכה של ה  Application Host שעליו אני ירחיב.

Application Host זה קובץ הממוקם בהגדרות של ה IIS, הוא ממוקם בספרייה:
C:\Windows\System32\inetsrv\config\applicationHost.Config

יש לפתוח את הקובץ (חשוב מאוד לגבות לפני תחילת התהליך!!):
יש להוסיף את בלוק למטה לפני <configuration/ > שסוגר את בלוק המרכזי של הקובץ.

<location path="your_site_name_in_the_iis">
        <system.webserver>
           <defaultdocument>
             <files>
                  <add value="my default document.aspx">
            </files>
          </defaultdocument>
        </system.webserver>
</location>

דרך נוספת לבצע את התהליך זה דרך ה Command Line - CMD:

%windir%\system32\inetsrv\appcmd.exe set config "[your site name in the iis]" -section:system.webServer/defaultDocument -+files.[value="my default document.aspx"] -commitpath:apphost

בהצלחה...

יום ראשון, 3 באוקטובר 2010

Vmware: snapshot failure

מה עושים כאשר נמחק (באופן ידני) או שה SNAPSHOT נהרס ולא ניתן לטעינה בהעלת המכונה הוירטואלית?
לי היתה בעיה כזאת ,מסתבר כאשר נגמר המקום ב HOST ורוצים לעשות SNAPSHOT חדש מקבלים הודעה שאין מספיק מקום ב DATA CENTER עבור ה SNAPSHOT ו VMWARE במקרה שלי ESXI מוריד אוטומטי את המכונה הוירטואלית ולא ניתן להפעיל את המכונה הוירטואלית עד שמפנים מקום ב DATA STORAGE, במקרים מסויימים גם כשמנסים למחוק את ה SNAPSHOT בעזרת ה SNAPSHOT MANAGER המכונה הוירטואלית לא עולה ומקבלים ב EVENTS הודעה מסוג זה:


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

קיימים שני קבצים עיקריים שצריכים לערוך על מנת לחזור ל SNAPSHOT האחרון שעובד, קודם כל יש לפתוח את תוכנת ה VmWare- Vsphere Client לוחצים על ה HOST ובוחרים CONFIGURATION ואז STORAGE


כשנלחץ על Browse Datastore היפתח לנו מנהל קבצים עם ספריות של שמות המכונות הוירטואליות, ניכנס לספרייה של המכונה שלא עולה ונחפש את הקבצים הבאים:
[Machine_name].vmx
[Machine_name].vmsd

קובץ VMX אחראי על ההגדרות של המכונה הוירטואלית, וקובץ ה VMSD אחראי על ה SNAPSHOT עבור המכונה הוירטואלית.

תחילה נערוך את קובץ ה VMSD , עבור כל SNAPSHOT נוצר בלוק בקובץ שמתחיל ב:
snapshot0.uid = "1"
ה SNAPSHOT הראשון של המערכת SNAPSHOT0 , שווה ל 1 כלומר ה ID של ה SNAPSHOT הראשון ובעצם מאפשר לנו לשנות כבר פה מה יהיה ה SNAPSHOT הראשון שהיטען.
הבלוק נגמר עם הקישור ל HD הפיזי שעל ה HOST

snapshot0.disk0.node = "ide0:0"
במקרה שלי זה היה ה SNAPSHOT השלישי:

snapshot2.uid = "3"

נמחק את הבלוק של ה SNAPSHOT הבעייתי מהקובץ ובנוסף בראש הקובץ מופיע הפרמטר הבא:

snapshot.lastUID = "3"

ונשנה אותו ל SNAPSHOT הנבחר:
snapshot.lastUID = "2"
נשמור את הקובץ ונעלה לשרת (חשוב מאוד!!! לגבות את הקבצים).

עבור כל SNAPSHOT נוצר הקובץ שמכיל את ה DELTA שבין ה SNAPSHOT ל SNAPSHOT, נזהה את הקובץ בסיומת VMDK , השם של הקובץ מתאר את מספר ה SNAPSHOT כלומר: Machine-000003.vmdk.

נערוך את הקובץ VMX ונשנה את הפרמטר
ide0:0.fileName = Machine-00002.vmdk
נשמור את הקובץ ונעלה אותו לשרת,
נפעיל מחדש את המכונה הוירטואלית.

בהצלחה...