סקירת פרויקט ממשק משתמש ל IPTables\IPChains מגישים: רוברט...

Preview:

Citation preview

סקירת פרויקט סקירת פרויקט 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בפיצול בין השרת לסוכן הוספת ניתור זמן אמת החיבורים הפעילים

ברשת

Recommended