Access-Lists, הקדמה

במדריך זה נלמד על Access-Lists, או בשמם המקוצר ACL.
אלו בעצם רשימות

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

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

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

לא מדובר פה על ניתוב, אלא על חסימת\אישור גישה ע"פ רשתות \ פורטים וכו'.

להלן כמה וכמה הדגשים לפני שנראה איך מיישמים ACL
על אינטרפייסים.

– רק קבוצת ACL
מותרת עבור אינטרפייס מסוים, ועבור כיוון מסוים.

כלומר, א"א את אותו ACL ליישם עבור כיוונים מנוגדים.

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

ביותר שהחוק החזק יותר ימוקם בשורה העליונה יותר.

למה הכוונה? ובכן, כשפאקט נכנס לנתב, ועובר דרך אותו אינטרפייס שעליו ישמנו

את הACL,
הנתב מבצע בדיקה ומתחיל לרוץ על רשומות החוקים על פי הסדר,

מלמעה למטה. ברגע שהוא מזהה חוק שיודע להתייחס לפאקט (ע"פ המקור, יעד,

פורט, וכו'), הוא מאשר\חוסם את הפאקט ע"פ אותו חוק שהוא רואה.

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

21, הרשומה התחתונה יותר הנוגדת את השורה הזו, כבר לא תעזור לנו.. כי ברגע

שהוא זיהה שיש כניסה בפורט 21, הנתב יאשר את הכניסה ולא ימשיך הלאה

בבדיקת הרשומות הנוספות

– חשוב לדעת שברגע שמיישמים ACL , אנחנו חייבים לתת לפחות

רשומת Permit
אחת! אחרת כל הרשת תהיה חסומה.

כלומר, ברגע שמיישמים ACL, רק מה שמוגדר לו כPERMIT,
מאושר גישה – כל היתר,

כברירת מחדל – לא מאושרים לגישה!!

– ברגע שמוחקים רשומה מסוימת מתוך הACL, כל הACL
שבאותו גרופ, נמחק!

(אלא אם כם משתמשים ב Named ip
ACL – עליו נלמד
בהמשך)

בבואנו לבנות ACL,
עלינו להבחין בין 2 סוגים.

 

Standard ip ACL

Extended ip ACL

 

ההבדלים בין Standard
ל Extended:

Standard
מתייחס אך ורק לטווחי רשתות מקור – כלומר, מאיזה רשת הגעת, ובהתייחס לה, האם

מאושרת כניסתך או לא.

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

נוספים אלה, האם מאושרת כניסתך, או לא.

 

Standard ip Lists

1-99, טווח רגיל

1300-1999, טווח מורחב

 

Extended IP Lists

100-199 , טווח רגיל

2000-2699 , טווח מורחב.

בניית ACL

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

ובכן, סדר הדברים הולך כך:

1. בניית ACL

2. שיוכו לאינטרפייס

ניגש ישר לעניינים, ונבין במה מדובר.

בניית ACL
מסוג
Standard
ושיוכו לאינטרפייס

דוגמת הרשאת גישה דו-כיוונית לרשת שלי בלבד

בדוגמא הבאה, המודגמת בעזרת תמונה:

יש לנו 2 רשתות LAN,
היושבות על 2 אינטפרפייסים (E0/E1), וברצוננו

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

תתאפשר גישה אל תוך הרשתות הפנימיות, דרך האינטפרפייס השלישי (S0)

נכתוב זאת כך:

Router# conf terminalRouter(config)# access-list 1 permit 192.168.0.0 0.0.255.255

Router(config)# interface ethernet 0

Router(config-if)# ip access-group 1 out

Router(config-if)# interface ethernet 1

Router(config-if)# ip access-group 1 out

סדר הדברים: רשמו ACL,
ומימשנו אותו על גבי 2 הממשקים , בהתייחסות לתנועה

מבחוץ (out)
אליהם פנימה.

במקרה הזה, תתאפשר תנועה דו כיוונית בין 2 הרשתות E0-E1
בלבד (להזכירכם,

כשממשים ACL,
הכל נחסם כברירת-מחדל, אלא אם כן ציינו אחרת), וכל מה שינסה

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

הסבנט-מסק ה"מוזר" שניתן לראות בשורת ה ACL,
הוא סבנט מסוג Wildcard.

 

Wildcard Mask מייצר
מסכת רשת-משנה ע"פ ההיגיון הבא:

0 = תבדוק את הביט המקביל בקלאסס

255 = אל תבדוק את הביט המקביל בקלאסס.

כלומר: 192.168.0.0 0.0.255.255 נותן לי:

192.168.0.0

מתייחס ובודק רק את 2 האוקטטות השמאליות.

דוגמת חסימת רשת מסוימת

נראה עוד דוגמת שימוש ב Standard. הפעם המטרה היא לחסום רשת מסוימת

בלבד, ולכל השאר לתת הרשאת גישה.

שרטוט הרשת:

המטרה: לחסום את רשת 192.168.20.0/24 מלעבור ולהיכנס דרך E0.

נבנה ACL,
וניישמו על E0,
מגישה חיצונית כלפיו.

Router# conf terminalRouter(config)# access-list 1 deny 192.168.20.0 0.0.0.255

Router(config)# access-list 1 permit 0.0.0.0 255.255.255.255

Router(config)# interface ethernet 0

Router(config-if)# ip access-group 1 out

הפעם חסמו רק את רשת 192.168.20.0/24. כמו כן, הפעם הינו חייבים להוסיף

גם את שורת ה permit.
בלעדיה, הגישה היתה חסומה לכולם.

שורת הpermit
מתייחסת לכל שאר הרשתות –

0.0.0.0 , אומר – לא משנה מאיזה קלאסס

255.255.255.255 , אומר – אל תבדוק סבנט מול שום אוקטטה, לא משנה מה הסבנט.

(להזכירכם – שיטת ה Wildcard mask)

בניית ACL
מסוג
Extended
ושיוכו לאינטרפייס

עתה נעבור לסוג השני של ה ACL, ה Extended
ip ACL.

מבחינת הרעיון, מדובר בדיוק באותו רעיון – בקרת גישה = מאיפה הגיע, והאם לאפשר

לו להיכנס או לא. רק שב Extended, ישנה בדיקה מול עוד פרמטרים:

המקור, היעד, ובאיזה פורט רוצה להיכנס.

כך נראית שורת סינטקס Extended
ip ACL

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

tcp/udp
וכו'. אם נרצה לציין את כל הפרוטוקולים (כלומר, לא משנה באיזה פרוטוקול)

נוכל לכתוב – Ip

דוגמת חסימת גישת FTP מרשת מסוימת אל רשת מסוימת

בדוגמא הבאה, המבוססת על שרטוט הרשת שבתמונה, ארצה למנוע גישת

FTP
מהרשת 192.168.15.0 (בלבד) אל הרשת 192.168.20.0.

כל שאר הרשתות – יוכלו להתחבר אליו בFTP.

עומדות בפניי 2 אפשרויות.

– או לבצע את החסימה בממשק E1 , בהתייחסות לתנועה המגיעה מבחוץ (output filter)

– או לבצע את החסימה בממשק E0, בהתייחסות לתנועה המגיעה מבפנים (input filter)

במקרה הזה, הגיוני ביותר לממש את הACL על E0. זאת מהסיבה הפשוטה

שאם נבצע זאת דרך ממשק E1, כל התעבורה משאר הממשקים (למשל S0)

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

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

Router# conf terminalRouter(config)# access-list 101 deny tcp 192.168.15.0 0.0.0.255 192.168.20.0
0.0.0.255 eq 20

Router(config)# access-list 101 deny tcp 192.168.15.0 0.0.0.255 192.168.20.0
0.0.0.255 eq 21

Router(config)# access-list 101 permit ip any any

Router(config)# interface ethernet 0

Router(config-if)# ip access-group 101 in

כפי שניתן לראות, בוצעה חסימה ברמת input
filter, בממשק E0,
על הפורטים המשמשים FTP

20-21. כמו כן, הוספה רשומת המציינת any
any, עבור הרשאת גישה
לכל שאר הרשתות\פורטים.

דוגמת חסימת גישה משולבת

נראה כעת דוגמא מתקדמת יותר. שרטוט הרשת לפנינו:

כפי שניתן לראות, על E1, יושבים 3 רשתות, ברשתות 192.168 יושבים Web Servers

וברשת 172.16 יושב Mail
Server.

המטרה: לאפשר כניסה אך ורק בפורט 80 ל2 רשתות ה Web Servers

וגישה אך ורק בפורט 25 לרשת 172.16.

נעשה זאת כך:

Router# conf terminalRouter(config)# access-list 102 permit tcp any 192.168.0.0 0.0.255.255 eq 80

Router(config)# access-list 102 permit tcp any 172.16.00.0 0.0.255.255 eq 25

Router(config)# interface ethernet 1

Router(config-if)# ip access-group 102 out

וזהו זה, כעת ישנה גישה אך ורק בפורט 80 ל2 שרתי הWEB,
ואך ורק בפורט 25 לשרת המייל.

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

חידוד ההבדלים בין Standard ל Extended

Standard
– בודק אך ורק מאיפה הגענו, ועל פי זה מאשר\חוסם גישה

רצוי והגיוני להשתמש במצב זה, בנקודה הקרובה ביותר לנקודת היעד!

כלומר, בממשק הקרוב ביותר ליעד.

Extended,
בודק מקור, יעד, ופורט, ועל פי זה מאשר\חוסם גישה

להשתמש בו בנקודה הקרובה ביותר לנקודת המקור.

לדוגמא, בשרטוט הבא:

ברצוננו למנוע תעבורה בפורט 25 מראוטר A לראוטר D.

במקרה הזה, אין שום טעם למקם ACL מסוג Extended
בראוטר D,
כדי שיבדוק מה המקור

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

לראוטר D,
רק בשביל לגלות שהגישה עבורם חסומה.

לכן, הרבה יותר הגיוני, למקום את ה Extended בראוטר A,
ושמה לקבוע עבורו

שבמידה ויעד הפאקט הוא ראוטר D, בפורט 25, לחסום גישה.

בניית ACL עבור vty (סשנים של Telnet)

הגדרת vty,
היא Virtual
ports.
בדיוק כמו שיש על הראוטר פורטים פיזיים, הלא

הם הממשקים (ethernet,
serial, etc..),
ישנם גם 5 פורטים וירטואליים המשמשים

עבור סשנים של telnet.

גם עליהם ניתן לבצע ACL, שימנע בכלל גישה בtelnet,
או שיאשר\ימנע גישה רק

מרשתות מסוימיות, וכו' – על פי הצורך הנתון.

מימוש ACL
עבור vty
נעשה בתצורת Standard,
ומיושם על ידי הפקודה line vty

שיוכו נעשה באמצעות הפקודה access-class

דוגמא לחסימה כללית של גישת telnet לנתב

Router# conf terminalRouter(config)# access-list 5 deny any

Router(config)# line vty 0 4

Router(config-line)# access-class 5 in

דוגמא לאישור גישת telnet לרשת מסוימת בלבד

ראשי  אודותינו  דרושים  מחירון/הזמנות  אמצעי תשלום תמיכה  נותני שרות  לקוחותינו  צור קשר  תלונות הציבור  מאמרים
Router# conf terminalRouter(config)# access-list 5 permit 192.168.10.0 0.0.0.255

Router(config)# line vty 0 4

Router(config-line)# access-class 5 in