iptables עם מקור דומיין במקום כתובת IP
-
פתיחה נורמלית של כתובת בiptables היא לפי IP
iptables -A INPUT -s 192.168.0.0/24 -d 192.168.0.5 -p tcp -j ACCEPT
אני מעוניין לעשות פתיחה לפי דומיין, ושiptables יתרגם לבד את הכתובת (או שזה יהיה במשתנה כלשהוא ושהוא יקח משם כל פעם)
דוגמא:
iptables -A INPUT -s example.com -d 192.168.0.5 -p tcp -j ACCEPT
הסיבה שאני מנסה לעשות את זה, היא בשביל לפתוח כתובות מסויימות, ואני לא רוצה לבדוק כל פעם מה הכתובת העדכנית. אלא למשוך את הכתובת משירותים מסוג DNS דינאמי
תודה על כל רעיון...
-
מבדקה שעשיתי כעת, עולה כי הכלל
-A INPUT -s 955.co.il -j ACCEPT
תקף לחלוטין.
השאלה האם הוא בודק כל פעם או שהקאש מתעדכן פעם בכמה זמן?
האם אפשר שלוט על הזמן שלוקח לקאש להתעדכן? (נשמע לי לא נורמלי שהFW יבדוק בכל בקשה מול הDNS מה הIP. ומצד שני, אני רוצה שברגע שמתעדכן הIP, זה כבר יתפוס אותו)
הפיתרון מיועד לאנשים שעוברים עם הסמארטפון שלהם ממקום למקום, ובכל רגע יכול להתחלף להם IP (וייפי במלון, אינטרנט סלולרי וכו') -
@clickone באינטרנט כולם כותבים שזה לא נכון ואפשרי לעשות זאת באמצעות IPTABLE
לגבי למה, ומה שהצבעת בעניין הDNS, אני רואה סתירה בעניין.
אנשים באינטרנט כותבים שזה סתם כינוי לIP, כלומר מייד בהרצת הפקודה (!) זה מומר לכתובת אייפי נצחית שלא תשתנה כלל.
מאידך בתיעוד ישנה אזהרה לא לא לעשות כללים שמתבססים על DNS בגלל ביצועים, משמע שאפשר...ציטוט:
Source specification. Address can be either a network name, a hostname (please note that specifying
any name to be resolved with a remote query such as DNS is a really bad idea), a network IP address
(with /mask), or a plain IP address. The mask can be either a network mask or a plain number,
specifying the number of 1's at the left side of the network mask. Thus, a mask of 24 is equivalent
to 255.255.255.0. A "!" argument before the address specification inverts the sense of the address.
The flag --src is an alias for this option.מקור https://community.rackspace.com/products/f/public-cloud-forum/174/introduction-to-iptables
זה נראה כמו דף עזרה של man.
סליחה על המקור הלא רשמי, ככה זה בעולם הנפלא של הקוד הפתוח -
@clickone ,
לא יודע אם זה עדיין מעניין אותך,
בכל אופן, מנסיון שלי, ה IP-Tables ממיר את הדומיין ל IP ברגע החלת הכלל ותו לא.
הוא לא בודק מעצמו אף פעם האם הכתובת השתנתה.אני לצורך העניין כתבתי סקריפט קטן שמתוזמן ע"י crontab, ששומר את הכתובת הפעילה "בצד" (בקובץ או במסד נתונים), ובמידה והוא מזהה שהכתובת התחלפה, הוא מוחק את הכתובת הישנה ב IP-Tables ומוסיף במקומה את הכתובת החדשה, ואז מחליף את הכתובת הישנה שהיתה שמורה בצד.
אבל!!!
תקח בחשבון שאם אתה צריך זמינות מיידית מהלקוח אל השרת שלך לאחר שהתחלף לו ה-IP (כגון לצורך חיבור שלוחות SIP אל מרכזייה), כל פתרון מבוסס DNS דינמי יהיה בעייתי!
כי מאז ששרת ה DNS הדינמי מתעדכן בכתובת החדשה ועד שבפועל הקאש נמחק בכל השרתים שבדרך, יכול לקחת גם 20 דקות בלי בעייה!
תוכל לעשות נסיון פשוט: תעדכן DNS כלשהו שיש לך אצל No-IP וכדו', ואז תבצע שאילתא מהמחשב על ה DNS, ותראה כמה זמן לוקח עד שאתה מקבל את התשובה המעודכנת...לא יודע אם הועלתי לך, אבל אולי לבאים בתור שיקראו את זה.
-
@איש-אחד
הועלת וודאי!
אני עדיין מחפש פיתרון.
חשבתי לעשות דף שבכל קריאה אליו יעדכן את הIP החדש של המשתמש. (זה אכן לשלוחת סיפ) - ואז בכל החלפת רשת שהמשתמש יקרא לדף הזה, או קריאה מאחורי הקלעים כשמתחלפת רשת
לכאורה בפיתרון שלך (בלי להתייחס כרגע לבעיית הדיליי), למה היית צריך להחליף את הכתובת? לא יותר פשוט לעשות ריסטארט לiptables ואז הוא יקח את הכתובת הנוכחית מהDNS?
לגבי NO-IP אני מניח שאפשר לבקש את הIP הנוכחי בAPI בדרך מסויימתעריכה:
הנהטעיתי. הקוד הזה הוא לעידכון ולא לקבלת הIP החדשhttp://username:password@dynupdate.no-ip.com/nic/update?hostname=mytest.testdomain.com&myip=1.2.3.4
אפילו הם מכירים בנטפרי
מקור לקוד
https://www.noip.com/integrate/request -
@clickone אמר בiptables עם מקור דומיין במקום כתובת IP:
לכאורה בפיתרון שלך (בלי להתייחס כרגע לבעיית הדיליי), למה היית צריך להחליף את הכתובת? לא יותר פשוט לעשות ריסטארט לiptables ואז הוא יקח את הכתובת הנוכחית מהDNS?
סתם לתזמן כל דקה ריסטרט ל IP-Tables מריח לי קצת עקום.
ולתזמן סקריפט שיכנס לפעולה רק במידה והוא מזהה שהכתובת השתנתה, ורק אז הוא עושה ריסטרט ל IP-Tables, זה כמעט כמו הסקריפט שאני עשיתי, לא?
ההבדל הוא שאצלי בסקריפט יש 2 שורות, אחת שמוחקת את הכתובת הישנה והשניה שמכניסה את החדשה, ואצלך שורה אחת שעושה ריסטרט.
האם לא יותר תקני לעדכן רשמית את ה IP-Tables מאשר לעשות לו ריסטרט? -
@איש-אחד נכון, הרעיו שלך יותר נכון מלעשות סתם ריסטארט.
וכנראה אין ברירה אלא לעשות ככה או משהו דומה.
יש עוד משהו, שיכול להיות שלמשתמש מסויים הIP הזה כבר התחלף, אבל הוא נדרש עבור משתמש אחר. בזה גם אם הולכים לפי NO-IP אז לכל אחד יש כתובת משלו, אבל אצלך איך אתה מזהה את כלל המשתמשים? -
-
לכאורה אם השתנה הIP, אתה לא צריך לעדכן את הכלל.
במקום לעשות שינוי של הקובץ, אפשר פשוט לעשות לפיירוול ריסטארט והוא יטען את הכתובת הנכונה החדשה.
לא? -
מצאתי בסטאק את זה
https://unix.stackexchange.com/questions/91701/ufw-allow-traffic-only-from-a-domain-with-dynamic-ip-address
-
-
צריך לשנות את הקובץ בשביל שבתזמון הבא של הסקריפט הוא ישווה לכתובת IP המעודכנת, לא?
לכאורה מה שהבאת מסטאק מיישם בדיוק את השיטה שאני עשיתי, לא כך?
לא הבנתי מה ששאלת לגבי כמה משתמשים.
נניח לראובן יש DNS שמפנה לכתובת של נטפרי 1.2.3.4
ולשמעון יש DNS שמפנה לכתובת של גוגל 8.8.8.8
אז בקובץ / במסד נתונים שמורות שתי הכתובות הנ"ל להשוואה.בתזמון הבא של הסקריפט, נניח שהכתובת של ראובן השתנתה ל 5.6.7.8, ושל שמעון ל 1.2.3.4.
הלולאה שבסקריפט תבדוק בסיבוב הראשון האם ה DNS של ראובן מפנה עדיין ל 1.2.3.4. תשובה לא. אין בעייה. מוחקים ב IP-Tables את 1.2.3.4 ובמקומו מוסיפים 5.6.7.8.
הסיבוב השני של הלולאה בודק את ה DNS של שמעון האם הוא עדיין מפנה ל 8.8.8.8. תשובה לא. אין בעייה. מוחקים את 8.8.8.8 ובמקומו מוסיפים (חזרה) את 1.2.3.4.
פספסתי פה משהו?