סקירת פרויקט ממשק משתמש ל iptables\ipchains מגישים: רוברט...
Post on 22-Dec-2015
232 views
TRANSCRIPT
סקירת פרויקט סקירת פרויקט IPTables\IPChainsIPTables\IPChains ממשק משתמש לממשק משתמש ל
מגישים: רוברט ביטרפלד
ואוהד רוטביין-שר
מטרות הפרויקטמטרות הפרויקט
בניית ממשק אינטרנטי לIPtablesלימוד יסודות של תקשורת נתונים הכרתIPTables\IPChainsושימושיו
–Firewall–NAT
הכרת מערכותUI:אינטרנטיות –PHP–Java Applet + Servlet
מוטיבציה:מוטיבציה:IPTablesIPTables היא מערכת מסובכת להפעלה.)והנה המדריך היא מערכת מסובכת להפעלה.)והנה המדריך למערכת(.למערכת(.
במערכת שאותה בנינו ניתן לשלוט בעזרת מספר במערכת שאותה בנינו ניתן לשלוט בעזרת מספר לחיצות עכבר.לחיצות עכבר.
בכלל? בכלל?IPTablesIPTablesמה עושים עם מה עושים עם
Firewall כלי לשמירה על הרשת הפנימית – לפי חוקיות מסויימת.IPע"י סינון חבילות ה
NAT כלי למימוש רשת שלמה תחת כתובת – IP אחת ע"י החלפה בין ריבוי כתובות IP בתוך(
-ים Port אחת עם הרבה IPהרשת( לכתובת )מחוץ לרשת(
כל רעיון נוסף שניתן לממש ע"י משחק בחבילותIP.על פי חוקיות מתאימה
מבנה הפרויקט:מבנה הפרויקט:
חלקים:2הפרויקט מתחלק ל JAVA Applet/Servletממשק משתמש ב–
tomcatהרץ על שרת עם הרשאות cron ומורץ ע"י Cסוכן הכתוב ב–
root
clientserveragent
סביבת העבודהסביבת העבודה
• back to back fire wall
נמצא במקום הבטוח ביותר )הגישה היחידה agent ה •(tomcatהמותרת היא מהא
נמצא באזור החיץ,קיימת אליו גישה tomcatשרת ה•מהאינטרנט
agentאין גישה ישירה מהאינטרנט ל•
הלקוחהלקוח
הUI מבוסס על applet שהלקוח מקבל משרת .servlet ומתקשר עם ה webה
applet היא תכנית java קטנה הרצה על הדפדפן של הלקוח.
בפרויקט שלנו רץ על דפדפן הלקוחclass באמצעות UI ויוצר את מבנה הappletהיורש מ Swingהספריה
client
השרתהשרת
העבודה בצד השרת מבוססת עלservlet- תוכניתjava הרצה בצד השרת ומממשת DoGetו DoPost
.CGI scriptבדומה ל הservlet מנתח בקשות של הלקוח ומחזיר נתונים
בהתאם או משנה את מבנה הנתוניםלפי בקשת הלקוח הservlet מתקשר עם ה Agent
באופן מסונכרן ומושך את מצב החוקים הנוכחי או דוחף מצב חוקים חדש ודורס את הקיים.
התקשורת בין השרת והagent.מבוססת על קבצים
server
Java Javaחלוקת המחלקות בין השרת והלקוח )חלוקת המחלקות בין השרת והלקוח )classesclasses))
Serverside
common
GUI
המניע העיקרי לבחירת צורת החלוקה 1.היה העברת מינימום מחלקות בין
השרת ללקוח.
כדי שהשרת והלקוח יוכלו להעביר 2.מידע ביניהם עליהם להכיר מספר
מחלקות משותפות
חבילות 3הפתרון הוא הפרדה ל•(package )
שרת•
לקוח•
משותף•
בשרת יש את כל המחלקות המטפלות •agentבקבצים ובתקשורת עם ה
בלקוח יהיו כל המחלקות המגדירות את •ממשק המשתמש
במחלקה המשותפת תהינה מחלקות •המחזיקות את המידע על החוקים
וקבועים נוספים.
קבצים להעברהמהשרת
הסוכן: כל דקה מופעל הסוכן ובודק האם התקבל סימן הסוכן: כל דקה מופעל הסוכן ובודק האם התקבל סימן מהשרת. גם אם לא, מתבצע עדכון של הקבצים אל מהשרת. גם אם לא, מתבצע עדכון של הקבצים אל
IPTableIPTableהשרת על פי הנתונים המתקבלים מהשרת על פי הנתונים המתקבלים מ
טבלתfilter
טבלתnat
טבלתmangle
agentהסוכן -
Cתכנית טבלאותiptables
IPTABLES
Iptables-save
קבצים להעברה אל השרת
טבלתfilter
טבלתnat
טבלתmangle
קובץ הגדרות
קבצים להעברהמהשרת
הסוכן: כאשר מתקבל איתות מהשרת מתבצעת השמה הסוכן: כאשר מתקבל איתות מהשרת מתבצעת השמה ואחר כך מעודכנים ואחר כך מעודכנים IPTablesIPTablesשל הנתונים מהשרת לתוך של הנתונים מהשרת לתוך
הקבצים אל השרת.הקבצים אל השרת.
טבלתfilter
טבלתnat
טבלתmangle
agentהסוכן -
Cתכנית טבלאותiptables
IPTABLES
Iptables-save
קבצים להעברה אל השרת
טבלתfilter
טבלתnat
טבלתmangle
קובץ הגדרות
התקשורת בין השרת והסוכן:התקשורת בין השרת והסוכן:
קבצי טבלאות שמספר 3העברת הנתונים נעשית ב מוגדר מראש, והתו המפריד בין שדה Nהעמודות בהם
שורות הן N. בקבצים אלה כל Newlineלשדה הוא שורה בטבלה.
דגלים 3הסנכרון בין השרת לסוכן נעשה באמצעות (. דגל לכל אחד 0 או 1)קבצים המכילים את הספרה
מהצדדים המורם כשאותו צד מתחיל לעבוד ומורד כשהוא מסיים ודגל נוסף שבאמצעותו מסמן השרת
IPTablesלסוכן כי יש לבצע השמה של חוקים ל
DemoDemo
מה למדנומה למדנו
Serverעבודה מול שרת –
tomcat
webserverעבודה עם –servlet conteinerו
PHP השתמשנו בשפה בכדי –
מקביל לקייםUIלבנות
למדנו את מגבלות –השפה
Networking–ipTables השכבות7מודל –ניתוב ברשת–הגנה–
Java–Servlet–Applet–UI-swing–RMI
בעיות שעברנובעיות שעברנו
התחלנו במימוש הUI בטכנולוגית CGI בשפת PHP
נחיתות מבחינה גרפית–out of the boxמעט מדי –
בעיות מעבר מסביבתwindows ל Linux windows היה בסביבת UIעיקר פיתוח ה –
בעיותsecurity של java–Applet לא assigned לא יכול לבצע בקשה
לתקשורת ללא אישורBugs
כליםכלים
Intellij כלי פיתוח ל - java אשר נותן גם , מצוינותUIיכולות
Zend כלי לפיתוח – phpDreamweaver כלי לעיצוב ופיתוח אתרי –
איטרנטVisual studio כלי פיתוח ל – C\C++
אפשרויות לפיתוח נוסףאפשרויות לפיתוח נוסף
הצפנה בתקשורת ביןserverל סוכן ניצול אפשרויות רבות נוספות הקיימות
IPTablesבפיצול בין השרת לסוכן הוספת ניתור זמן אמת החיבורים הפעילים
ברשת