שאלה דחייה לעומת DROP בעת שימוש iptables


האם יש סיבה מדוע הייתי רוצה

iptables -A INPUT -j REJECT

במקום

iptables -A INPUT -j DROP

81
2017-07-04 09:49






תשובות:


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

בדרך כלל, כל הכללים עבור חיבורים בתוך LAN שלך צריך להשתמש לדחות. עבור האינטרנט, למעט זיהוי בשרתים מסוימים, חיבורים מהאינטרנט הם בדרך כלל DROPPED.

השימוש ב- DROP הופך את החיבור לכתובת IP ריקה. סורקים עשויים לבחור שלא להמשיך ולסרוק כתובות שנראות פנויות. בהתחשב בכך שניתן להשתמש ב- NAT כדי לנתב חיבור בחומת האש, קיומו של שירות ידוע אינו בהכרח מציין את קיומו של שרת בכתובת.

הזיהוי צריך להיות מועבר או נדחה על כל כתובת מתן שירות SMTP. עם זאת, השימוש במבדקי זיהוי על-ידי שירות SMTP נפגע משימוש. יש פרוטוקולי צ 'אט אשר גם להסתמך על שירות זיהוי עובד.

עריכה: בעת שימוש בכללים DROP:  - מנות UDP יופלו וההתנהגות תהיה זהה לחיבור ליציאה חסרת שירות ללא שירות.  - מנות TCP יחזירו ACK / RST שהיא תגובה זהה כי יציאת פתוח ללא שירות על זה יגיב עם. נתבים מסוימים יגיבו עם ו ACK / RST מטעם שרתים אשר למטה.

בעת שימוש בכללים REJECT נשלחת מנות ICMP המציינת שהיציאה אינה זמינה.


73
2017-07-04 16:40



זה לא נכון. גם כאשר הכלל אומר "DROP" המערכת עדיין להגיב על מנות נכנסות עם TCP SYN / ACK כאילו זה היה פתוח. כדי באמת ירידה מנות, המערכת צריכה לענות עם TCP RST / ACK - שעבורו אין כלל חומת אש. לפיכך, הגדרת חומת האש הטובה ביותר היא אחת שבה יציאות נבחרות בלבד מועברות. חוק DROP שלך יפרסם את חומת האש שלך ואת סורקי היציאות יידע שאתה firewalling משהו ולשמור hammering לך בתקווה לתפוס את חומת האש שלך למטה. - Dagelf
@Dagelf עיין בעריכה שלי. RST / ACK אינו מציין סורקים שאתה firewalling משהו. בעוד כמה האקרים עשויים להמשיך לחקור לאחר תגובה זו, זה צריך להיות מבוסס על לדעת את השירותים שלך לא את התגובה חומת אש. זה בהחלט ירד את מספר ואורך של סריקות אני חווה. - BillThor
הנקודה שלי היא, זה לזיהוי מבחוץ אם אתה חומת אש משהו או לא בגלל העובדה כי מחסנית TCP שלך מתנהג שונה כאשר אתה DROP מאשר כאשר אין לך שירות פועל מלכתחילה! - Dagelf
לא משנה את העובדה שיש botnets capitalizing על ההבדל ועל ניטור יציאות שלך כתוצאה מכך. - Dagelf
@Dagelf היכן אתה מקבל את המידע ש- DROP שולח תגובה? זה חדשות גדולות ומנוגד לכל מה שראיתי נאמר. האם יש לך קישור לתיעוד המתאר התנהגות זו? - Score_Under


ההבדל הוא שהמטרה REJECT שולחת תגובת דחייה למקור, בעוד שהיעד DROP אינו שולח דבר.

זה יכול להיות שימושי למשל עבור שירות הזהות. אם אתה משתמש REJECT אז הלקוחות לא צריך לחכות לפסק זמן.

עוד על כך: http://www.linuxtopia.org/Linux_Firewall_iptables/x4550.html


25
2017-07-04 09:59



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


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

האמור לעיל היא אחת הסיבות העיקריות להשתמש DROP במקום לדחות.


8
2017-07-04 13:09



ללא כללי iptables, יציאה סגורה ברירת המחדל היא לדחות. אם אתה DROP כל יציאה זה חלופה בסדר (המארח שלך מופיע למטה), אבל אם DROP רק יציאות ספציפיות אתה בעצם נותן להם מידע נוסף מאשר לדחות. אם מישהו משתמש בבדיקת שמיכה כמו nmap, יציאות ספציפיות שמופיעות מנות יופיעו כ"מסוננות ", כלומר, הן יודעות שיש לך שם שירות שאתה מסתיר. - Raptor007


אני רואה כאן המון תשובות סותרות, ובהינתן המאמר הראשון ב- Google עם מילות המפתח הנכונות; הנה ההסבר הנכון.
זה פשוט:

DROP עושה כלום עם החבילה. זה לא מועבר למארח, זה לא מקבל ענה. את הדף של iptables אומר שזה טיפות את החבילה על הרצפה, כלומר לא עושה כלום עם המנה.

REJECT שונה ל- DROP שהוא שולח מנות חזרה, אך התשובה היא כאילו שרת נמצא ב- IP, אך אין לו את היציאה במצב הקשבה. IPtables ישלח RST / ACK במקרה של TCP או עם UDP יציאת יעד ICMP בלתי נגיש.


6
2018-01-11 12:29



+1 ממני, אבל התשובות לא ממש לא מסכים. כולם מסכימים, עד כמה שאני רואה, חוץ מדגאלף - מי טועה. - MadHatter
אוקיי, הנה טריק קטן בשבילך אז: לעשות "nmap localhost". עכשיו לבחור כל נמל זה לא "פתוח" ... ולהוסיף כלל כי "לא עושה כלום", למשל: "iptables -I INPUT -P tCP - dport 888-DROP". עכשיו "nmap localhost" שוב. מה אתה רואה? ... - Dagelf


אם אתה מנסה להסתיר את הקיום של המכשיר שלך לגמרי, -j DROPזה הולם. לדוגמה, תוכל להשתמש בו כדי ליישם רשימה שחורה.

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

  • TCP: -p tcp -j REJECT --reject-with tcp-reset
  • UDP: -p udp -j REJECT --reject-with icmp-port-unreachable

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


3
2017-08-13 01:29



מה אם אתה פותח כמה יציאות (למשל 22, 25, 53, 80, 443) ולאחר מכן DROP כל דבר אחר? עכשיו אם יש לי MySQL, PostgreSQL, SQLite, או קסנדרה פועל ... הסורק לא יכול להגיד, נכון? - Alexis Wilke
@ AllexisWilke במקרה זה, המידע הנוסף היחיד שאתה נותן לסורק הנמל הוא שיש לך איזה חומת אש במקום עם מדיניות ברירת המחדל של DROP. - Raptor007


למרות הרבה תשובות נכונות, רק שני סנט שלי:

הנה PoC קצר FW.IDS-DROP-vs-reject של לי לגבי הנושא לגבי הכללים של איסור המערכת (חומת אש, IDS, וכו ').

זמן קצר:

  • DROP ניתן להשתמש עבור פולשים recidive, אם לאסור את כל היציאות (כך נראה כמו השרת הוא על הצד הפולש)
  • REJECT --reject-with tcp-reset היא הבחירה הטובה ביותר עבור איסור מרובה יציאות, כי זה נראה מתנהג כמו נמל סגור אמיתי
  • אם כמה יציאות עונות (פולש יודע כי המארח הוא חי), DROP ו REJECT (ללא tcp-reset) ייתן את הפולש "אות" כי משהו חוסם יש (כך יכול לעורר אותו להמשיך את "התקפה" בתקווה לספק נתונים הנדרשים בשלב כלשהו)

0
2017-09-20 16:49





כן, השימוש ב- DROP הוא חסר טעם. השתמש ב- REJECT.

גם כאשר הכלל אומר "DROP" המערכת עדיין עונה על SYN נכנס עם TCP RST / ACK - המהווה את התנהגות ברירת המחדל עבור יציאות ללא שירותים פועל. (tcpdump et al אינו מתחבר לזה).

אם שירות פועל, SYN הוא נפגש עם TCP SYN / ACK.

כי DROP אינו מגיב על פי נורמלי עם TCP SYN / ACK, אבל עם RST / ACK במקום זאת, הכלל DROP שלך יפרסם את חומת האש שלך ואת סורקי הנמל יידע שאתה firewalling משהו עשוי לשמור hammering לך בתקווה של תולעת חומת האש שלך למטה.

זה עכשיו nmap יכול לדווח "מסונן" במקום "סגור" למשל:

$ nmap localhost

Starting Nmap 6.40 ( http://nmap.org ) at 2018-03-14 00:21 SAST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000060s latency).
Not shown: 986 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
53/tcp   open  domain
80/tcp   open  http

Nmap done: 1 IP address (1 host up) scanned in 1.60 seconds

$ iptables -I INPUT -p tcp --dport 1111 -j DROP
$ nmap localhost

Starting Nmap 6.40 ( http://nmap.org ) at 2018-03-14 00:21 SAST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000060s latency).
Not shown: 986 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
53/tcp   open  domain
80/tcp   open  http
1111/tcp filtered lmsocialserver

Nmap done: 1 IP address (1 host up) scanned in 1.60 seconds

$ iptables -D INPUT 1

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

אם אתה באמת רוצה להתעסק עם סורקים בסיסיים, אתה יכול TARPIT חיבורי tcp, אשר קובע את חלון TCP ל 0 כך לא ניתן להעביר נתונים לאחר פתיחת החיבור, התעלמות בקשות לסגור את החיבור, כלומר לסורק יש לחכות עבור הזמן הקצוב להתרחש, אם הוא רוצה להיות בטוח. אבל זה טריוויאלי עבור התוקף לזהות את זה ולהפוך את הזמן הקצוב שלו קצר מאוד.

כל הדברים נחשב, אתה כנראה הטוב ביותר רק באמצעות שימוש חוזר - או לשים ייעודי הנמל העברת המכשיר בין השרת שלך לאינטרנט.

או פשוט פועל על שירותי האינטרנט שלך מול מכונות שאינן דורשות firewalling.

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


-3



תשובה זו אינה נכונה. זה יכול להיות מוצג בקלות עם tcpdump כי DROP הכלל יביא את המערכת לא שולח שום תשובה - כפי שניתן היה לצפות. ואת ההצהרה שלך "כדי באמת ירידה החבילה, המערכת צריכה לענות עם TCP RST / ACK" לא הגיוני כמו לענות על כל דבר הוא כמובן לא "נשירה באמת מנות". אם אתה "באמת ירידה" מנות, אתה פשוט לא עונה וזה הוכיח את ההשפעה של הכלל DROP. - Juliane Holzt
האם אתה יכול לספק מקור לטענה כי DROP תנפיק א SYN/ACK? מעולם לא ראיתי את זה על המכונות שלי. - motobói
@Dagelf המאמר שלך אומר "DROP (aka DENY, BLACKHOLE) לאסור על מנות מהמעבר, שלח תגובה". - JeanT
זה לא שולח את התגובה הרגילה, אבל זה שולח אחד כפי שהוסבר, ללא קשר. - Dagelf
המסמך שאתה מקשר אומר "DROP ... שלח תגובה", ולא, עד כמה שאני רואה, תומכים בטענה שלך DROP מחזירה א SYN/ACK. גם אני לא ראיתי את ההתנהגות הזאת בשום גירסה של iptables. אם יש לך מקור התומך בטענה שלך, זה יהיה שימושי ביותר כדי לראות את זה; בהחלט, מזבלות מנות עשיתי רק לא תומכים בטענה שלך. - MadHatter