sza 04.03.1918:21

שועלי הסיסטם, אשמח לעזרתכם- התחברות מאובטחת לDB על שרת חיצוני



יש לי אפליקציה עובדת על שרת א' יש עליה שרת mysql לוקאלי שאיתו היא עובדת.
אני צריך ש2 טבלאות מאותו שרת (שנוצרות מחדש אוטומטית כל 20 דק') יסונכרנו לשרת ב' שעליו יש אפליקציה חדשה שצריכה לקבל רק את 2 הטבלאות האלה (מתוך DB גדול מאד).

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

2 שאלות:
האחת, האם הדרך הגיונית? יש דרך טובה יותר?
השניה, אז נכון שהחיבור לשרת MYSQL בפורט 3306 יכול להגיע רק מIP של שרת א' בצורה חיצונית, השאלה היא האם יש דרך לוודא שהנתונים לא יכולים להיקרא ע"י MITM וכדו, (הצפנה וכו')? מדובר במידע רגיש, רוצה שיהיה בנוי כמה שיותר נכון.
MYSQL לא מצפין את המידע בינו לבין הלקוח ביי דיפולט, נכון?

תודה רבה

@autogun@



צחי.




kobe229 04.03.1918:52
1. לא חושב שיש דרך לסנכרן רק שני טבלאות בתגובה להודעה מספר 0

ערכתי לאחרונה בתאריך 04.03.19 בשעה 19:10 בברכה, kobe229

אלא אם תעשה משהו כמו לעשות דאמפ אם mysqldump רק לטבלאות האלה כל כמה דקות, ואז להשתמש בסקרטיפים לעלות ולעדכן בשרת השני. יש דרך אבל לסנכרן באופן שוטף את כל הDB וזה להשתמש ברקפליקציה (MYSQL REPLICATION) שיכול להיות או MASTER-MASTER או MASTER-SLAVE (האופציה של MASTER-SLAVE יותר נועדה לגיבויים כי היא רק בכיוון אחד). ובשביל חיבור מאובטח, תוכל להשתמש בSSH TUNNELING, יש לך כאן דוגמא:
https://www.digitalocean.com/commun?...
sza 04.03.1923:18
3. תודה, ראיתי רפליקציה והבנתי שזה לא מתאים בתגובה להודעה מספר 1

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

צחי.




kobe229 04.03.1923:32
5. אתה מבין אבל את הצורה העקרונית של איך שזה הולך לעבוד, נכון? בתגובה להודעה מספר 3
ברגע שיש רפליקציה עובדת, כל שינוי יסונכרן אוטומטית (ורק השינויים)
אז זה לא באמת צורך הרבה תעבורה (לפחות אחרי הגיבוי והשחזור הראשוני)
וגם, ניתן להפחית משמעותית את הגודל של גיבוי sql אם משתמשים בדחיסה של tar+gzip (tar.gz/tgz), וכמובן שניתן להעביר את הגיבוי בין שני השרתים באופן ישיר.
sza 04.03.1923:37
6. כן, אתה צודק, אבל 2 הערות בתגובה להודעה מספר 5

1. הdb בשרת א' גדול מאד ומשרת אפליקציה חיה עם הרבה משתמשים.

2. הטבלאות שנחוצות לי הן 2 טבלאות שבכל 20 דק' כל תוכנן נמחק ונוצר מחדש.(משמע, בכל מקרה יסונכרנו לגמרי מחדש כל פעם גם ברפליקציה) ומדובר בסה"כ כ6000 רשומות ב2 הטבלאות יחדיו. (בdb כולו יש עוד כ20 טבלאות, חלקן עצומות).
בכל מקרה תודה על הכיוונים המעניינים

צחי.




כובען 04.03.1919:34
2. אפשר להתחבר ל-MySQL מעל TLS ולוודא שהמידע יהיה מוצפן בתווך ולא יוכלו לקרוא אותו בתגובה להודעה מספר 0
ולא לשנות איתו.
sza 04.03.1923:20
4. תודה, אבדוק בתגובה להודעה מספר 2



צחי.




Locutus 04.03.1923:43
7. אפשר גם SSL CA, תלוי כמה מאובטח אתה רוצה. בתגובה להודעה מספר 4
The Boss 09.03.1917:29
8. מכתב בתגובה להודעה מספר 0
בשרת א'
אתה יכול ליצור משימה מתוזמנת שתייצא את 2 הטבלאות לקובץ. לאחר מכן לדחוס אותו עם הצפנה (סיסמה של 30 תווים) בכל 20 דקות.
את הקובץ אתה יכול להעביר ב FTPS לשרת ב' ולמחוק אותו משרת א' לאחר מכן.

בשרת ב'
אתה צריך משימה מתוזמנת שתוריד מ FTPS את הקובץ ולאחר מכן תייבא את הקובץ במקום הטבלאות הקיימות בכל 20 דק.

@sza@
מיטוכונדריה 11.05.1923:58
9. תעשה טריגר על הטבלאות שברגע שיש אינסרט הם ישלחו את הנתונים לdb השני. בתגובה להודעה מספר 0


נשלח ע"י הסלולרי
העבר לפורום אחר
העבר לפורום:
סיבה:
תגובה חדשה
כותרת:
תוכן:
סמיילים:
הצג
עריכת אשכול
כותרת:
תוכן:
סמיילים:
הצג