מקרה מבחן: כיצד Canonical מעצימה את ניהול הדוא"ל של אובונטו עם פתרון הקוד הפתוח הארגוני של Forward Email
גלה כיצד Canonical ייעלה את ניהול הדוא"ל בדומיינים של אובונטו, קובונטו, לובונטו ו-Edubuntu באמצעות הפתרון הארגוני הפתוח והעמיד קוונטי של Forward Email עם שילוב SSO חלק.
בעולם של תוכנות קוד פתוח, מעטים השמות נושאים משקל כמו קנונית, החברה שמאחוריה אובונטו, אחת מהפצות לינוקס הפופולריות ביותר בעולם. עם מערכת אקולוגית עצומה המשתרעת על הפצות מרובות כולל אובונטו, קובונטו, לובונטו, אדובונטוואחרים, Canonical התמודדה עם אתגרים ייחודיים בניהול כתובות דוא"ל על פני התחומים הרבים שלהם. תיאור מקרה זה בוחן כיצד Canonical שיתפה פעולה עם Forward Email כדי ליצור פתרון חלק, מאובטח וממוקד פרטיות לניהול דוא"ל ארגוני שמתיישר בצורה מושלמת עם ערכי הקוד הפתוח שלהם.
האתגר: ניהול מערכת אקולוגית מורכבת של דואר אלקטרוני
המערכת האקולוגית של קנוניקל מגוונת ומרחיבה. עם מיליוני משתמשים ברחבי העולם ואלפי תורמים בפרויקטים שונים, ניהול כתובות דוא"ל על פני מספר דומיינים הציג אתגרים משמעותיים. התורמים המרכזיים היו זקוקים לכתובות דוא"ל רשמיות (@ubuntu.com, @kubuntu.org, וכו') ששיקפו את מעורבותם בפרויקט תוך שמירה על אבטחה וקלות שימוש באמצעות מערכת חזקה לניהול דומיינים של אובונטו.
לפני הטמעת Forward Email, Canonical נאבקה עם:
- ניהול כתובות דוא"ל על פני מספר דומיינים (@ubuntu.com, @kubuntu.org, @lubuntu.me, @edubuntu.org ו-@ubuntu.net)
- מתן חווית דוא"ל עקבית לתורמי הליבה
- שילוב שירותי דואר אלקטרוני עם הקיימים שלהם אובונטו אחת מערכת כניסה יחידה (SSO).
- מציאת פתרון המתאים למחויבותם לפרטיות, אבטחה ואבטחת דוא"ל בקוד פתוח
- קנה מידה חסכוני של תשתית הדוא"ל המאובטחת שלהם
טייק אווי מפתח
- Canonical הטמיעה בהצלחה פתרון ניהול דוא"ל מאוחד על פני מספר דומיינים של אובונטו
- גישת 100% הקוד הפתוח של Forward Email תאמה בצורה מושלמת את הערכים של Canonical
- שילוב SSO עם Ubuntu One מספק אימות חלק לתורמים
- הצפנה עמידה קוונטית מבטיחה אבטחה ארוכת טווח עבור כל תקשורת הדוא"ל
- הפתרון מתרחב בצורה חסכונית כדי לתמוך בבסיס התורמים ההולך וגדל של Canonical
למה להעביר אימייל
בתור ספקית שירותי הדוא"ל היחידה ב-100% קוד פתוח עם התמקדות בפרטיות ואבטחה, Forward Email התאים באופן טבעי לצרכי העברת הדוא"ל הארגוניים של Canonical. הערכים שלנו תאמו בצורה מושלמת את המחויבות של Canonical לתוכנות קוד פתוח ולפרטיות.
גורמים מרכזיים שהפכו את Forward Email לבחירה האידיאלית כללו:
-
בסיס קוד פתוח מלא: כל הפלטפורמה שלנו היא בקוד פתוח וזמינה ב GitHub, המאפשר שקיפות ותרומות לקהילה. בניגוד לספקי דוא"ל "ממוקדי פרטיות" רבים שרק פותחים את ה-frontend שלהם תוך שמירה על הקצה האחורי שלהם סגור, הפכנו את כל בסיס הקוד שלנו - הן החזית והן האחורי - זמין עבור כל אחד לבדיקה ב- GitHub.
-
גישה ממוקדת פרטיות: בניגוד לספקים אחרים, אנחנו לא מאחסנים הודעות דוא"ל במסדי נתונים משותפים, ואנחנו משתמשים בהצפנה חזקה עם TLS. פילוסופיית הפרטיות הבסיסית שלנו פשוטה: המיילים שלך שייכים לך ורק לך. עיקרון זה מנחה כל החלטה טכנית שאנו מקבלים, מהאופן שבו אנו מטפלים בהעברת אימייל ועד לאופן שבו אנו מיישמים הצפנה.
-
אין הסתמכות על צדדים שלישיים: אנחנו לא משתמשים ב-Amazon SES או בשירותי צד שלישי אחרים, מה שנותן לנו שליטה מלאה על תשתית האימייל ומבטל דליפות פרטיות פוטנציאליות באמצעות שירותי צד שלישי.
-
קנה מידה חסכוני: מודל התמחור שלנו מאפשר לארגונים לבצע קנה מידה מבלי לשלם לכל משתמש, מה שהופך אותו לאידיאלי עבור בסיס התורמים הגדול של Canonical.
-
הצפנה עמידה קוונטית: אנו משתמשים בתיבות דואר של SQLite מוצפנות בנפרד עם ChaCha20-Poly1305 בתור הצופן עבור הצפנה בטוחה קוונטית. כל תיבת דואר היא קובץ מוצפן נפרד, כלומר גישה לנתונים של משתמש אחד לא מעניקה גישה לאחרים.
היישום: שילוב SSO חלק
אחד ההיבטים הקריטיים ביותר של ההטמעה היה שילוב עם מערכת Ubuntu One SSO הקיימת של Canonical. אינטגרציה זו תאפשר לתורמים הליבה לנהל את כתובות הדוא"ל שלהם ב-@ubuntu.com באמצעות האישורים הקיימים של Ubuntu One.
הצגת זרימת אימות
התרשים הבא ממחיש את זרימת האימות והקצאת הדוא"ל המלאה:
flowchart TD
A[User visits forwardemail.net/ubuntu] --> B[User clicks 'Log in with Ubuntu One']
B --> C[Redirect to Ubuntu SSO service]
C --> D[User authenticates with Ubuntu One credentials]
D --> E[Redirect back to Forward Email with authenticated profile]
E --> F[Forward Email verifies user]
subgraph "User Verification Process"
F --> G{Is user banned?}
G -->|Yes| H[Error: User is banned]
G -->|No| I[Query Launchpad API]
I --> J{Is user valid?}
J -->|No| K[Error: User is not valid]
J -->|Yes| L{Has signed Ubuntu CoC?}
L -->|No| M[Error: User has not signed CoC]
L -->|Yes| N[Fetch Ubuntu team membership]
end
subgraph "Email Provisioning Process"
N --> O[Get Ubuntu members map]
O --> P{Is user in team?}
P -->|Yes| Q[Check for existing alias]
Q --> R{Alias exists?}
R -->|No| S[Create new email alias]
R -->|Yes| T[Update existing alias]
S --> U[Send notification email]
T --> U
P -->|No| V[No email provisioned]
end
subgraph "Error Handling"
H --> W[Log error with user details]
K --> W
M --> W
W --> X[Email team at Ubuntu]
X --> Y[Store error in cache to prevent duplicates]
end
פרטי יישום טכניים
האינטגרציה בין Forward Email ו-Ubuntu One SSO הושגה באמצעות יישום מותאם אישית של אסטרטגיית האימות של דרכון-ubuntu. זה אפשר זרימת אימות חלקה בין המערכות של Ubuntu One ו-Forward Email.
זרימת האימות
תהליך האימות פועל באופן הבא:
- משתמשים מבקרים בדף ניהול הדוא"ל הייעודי של אובונטו בכתובת forwardemail.net/ubuntu
- הם לוחצים על "התחבר עם Ubuntu One" ומופנים לשירות Ubuntu SSO
- לאחר אימות עם האישורים של Ubuntu One שלהם, הם מנותבים בחזרה אל העבר דוא"ל עם הפרופיל המאומת שלהם
- העבר דוא"ל מאמת את סטטוס התורם ואת הוראותיהם או מנהל את כתובת הדוא"ל שלהם בהתאם
היישום הטכני מינף את passport-ubuntu
חבילה, שהיא א דַרכּוֹן אסטרטגיה לאימות באמצעות אובונטו OpenID. התצורה כללה:
passport.use(new UbuntuStrategy({
returnURL: process.env.UBUNTU_CALLBACK_URL,
realm: process.env.UBUNTU_REALM,
stateless: true
}, function(identifier, profile, done) {
// User verification and email provisioning logic
}));
אינטגרציה ואימות של Launchpad API
מרכיב קריטי ביישום שלנו הוא האינטגרציה עם לוח השקהה-API של לאמת משתמשי אובונטו וחברות הצוות שלהם. יצרנו פונקציות מסייעות לשימוש חוזר כדי לטפל באינטגרציה זו ביעילות ובאמינות.
ה sync-ubuntu-user.js
פונקציית העזר אחראית לאימות משתמשים דרך ה-API של Launchpad ולניהול כתובות האימייל שלהם. הנה גרסה פשוטה של איך זה עובד:
async function syncUbuntuUser(user, map) {
try {
// Validate user object
if (!_.isObject(user) ||
!isSANB(user[fields.ubuntuUsername]) ||
!isSANB(user[fields.ubuntuProfileID]) ||
!isEmail(user.email))
throw new TypeError('Invalid user object');
// Get Ubuntu members map if not provided
if (!(map instanceof Map))
map = await getUbuntuMembersMap(resolver);
// Check if user is banned
if (user[config.userFields.isBanned]) {
throw new InvalidUbuntuUserError('User was banned', { ignoreHook: true });
}
// Query Launchpad API to validate user
const url = `https://api.launchpad.net/1.0/~${user[fields.ubuntuUsername]}`;
const response = await retryRequest(url, { resolver });
const json = await response.body.json();
// Validate required boolean properties
if (!json.is_valid)
throw new InvalidUbuntuUserError('Property "is_valid" was false');
if (!json.is_ubuntu_coc_signer)
throw new InvalidUbuntuUserError('Property "is_ubuntu_coc_signer" was false');
// Process each domain for the user
await pMap([...map.keys()], async (name) => {
// Find domain in database
const domain = await Domains.findOne({
name,
plan: 'team',
has_txt_record: true
}).populate('members.user');
// Process user's email alias for this domain
if (map.get(name).has(user[fields.ubuntuUsername])) {
// User is a member of this team, create or update alias
let alias = await Aliases.findOne({
user: user._id,
domain: domain._id,
name: user[fields.ubuntuUsername].toLowerCase()
});
if (!alias) {
// Create new alias with appropriate error handling
alias = await Aliases.create({
user: user._id,
domain: domain._id,
name: user[fields.ubuntuUsername].toLowerCase(),
recipients: [user.email],
locale: user[config.lastLocaleField],
is_enabled: true
});
// Notify admins about new alias creation
await emailHelper({
template: 'alert',
message: {
to: adminEmailsForDomain,
subject: `New @${domain.name} email address created`
},
locals: {
message: `A new email address ${user[fields.ubuntuUsername].toLowerCase()}@${domain.name} was created for ${user.email}`
}
});
}
}
});
return true;
} catch (err) {
// Handle and log errors
await logErrorWithUser(err, user);
throw err;
}
}
כדי לפשט את ניהול החברות בצוות בדומיינים שונים של אובונטו, יצרנו מיפוי פשוט בין שמות דומיינים וצוותי Launchpad התואמים להם:
ubuntuTeamMapping: {
'ubuntu.com': '~ubuntumembers',
'kubuntu.org': '~kubuntu-members',
'lubuntu.me': '~lubuntu-members',
'edubuntu.org': '~edubuntu-members',
'ubuntustudio.com': '~ubuntustudio-core',
'ubuntu.net': '~ubuntu-smtp-test'
},
מיפוי פשוט זה מאפשר לנו להפוך את תהליך בדיקת החברות בצוות והקצאת כתובות דוא"ל לאוטומטיות, מה שהופך את המערכת לקלה לתחזוקה והרחבה עם הוספת דומיינים חדשים.
טיפול בשגיאות והודעות
הטמענו מערכת חזקה לטיפול בשגיאות ש:
- רושם את כל השגיאות עם מידע משתמש מפורט
- שולח דוא"ל לצוות אובונטו כאשר מתגלות בעיות
- מודיע למנהלי מערכת כאשר תורמים חדשים נרשמים ויצרו כתובות דוא"ל
- מטפל במקרים קצה כגון משתמשים שלא חתמו על קוד ההתנהגות של אובונטו
זה מבטיח שכל בעיה מזוהה ומטופלת במהירות, תוך שמירה על שלמות מערכת הדואר האלקטרוני.
תצורת DNS וניתוב דואר אלקטרוני
עבור כל דומיין המנוהל באמצעות Forward Email, Canonical הוסיפה רשומת DNS TXT פשוטה לאימות:
❯ dig ubuntu.com txt
ubuntu.com. 600 IN TXT "forward-email-site-verification=6IsURgl2t7"
רשומת אימות זו מאשרת בעלות על דומיין ומאפשרת למערכת שלנו לנהל בצורה מאובטחת דוא"ל עבור הדומיינים הללו. Canonical מנתב דואר דרך השירות שלנו באמצעות Postfix, המספק תשתית אמינה ומאובטחת למשלוח דואר אלקטרוני.
תוצאות: ניהול דוא"ל יעיל ואבטחה משופרת
הטמעת הפתרון הארגוני של Forward Email סיפקה יתרונות משמעותיים לניהול הדוא"ל של Canonical בכל התחומים שלהם:
יעילות תפעולית
- ניהול מרכזי: כל הדומיינים הקשורים לאובונטו מנוהלים כעת באמצעות ממשק יחיד
- תקורה אדמיניסטרטיבית מופחתת: הקצאה אוטומטית וניהול שירות עצמי עבור תורמים
- קליטה פשוטה למטוס: תורמים חדשים יכולים לקבל במהירות את כתובות האימייל הרשמיות שלהם
אבטחה ופרטיות משופרים
- הצפנה מקצה לקצה: כל המיילים מוצפנים באמצעות תקנים מתקדמים
- אין מסדי נתונים משותפים: הודעות הדוא"ל של כל משתמש מאוחסנות במסדי נתונים בודדים של SQLite מוצפנים, ומספקות גישת הצפנה בארגז חול שבבסיסה בטוחה יותר מבסיסי נתונים יחסיים משותפים מסורתיים
- אבטחה בקוד פתוח: בסיס הקוד השקוף מאפשר סקירות אבטחה קהילתיות
- עיבוד בזיכרון: אנחנו לא מאחסנים הודעות דוא"ל שהועברו לדיסק, מה שמשפר את הגנת הפרטיות
- אין אחסון מטא נתונים: אנחנו לא שומרים תיעוד של מי שולח למייל, בניגוד לספקי דוא"ל רבים
חיסכון בעלויות
- מודל תמחור ניתן להרחבה: ללא עמלות למשתמש, מה שמאפשר לקנוניקל להוסיף תורמים מבלי להגדיל את העלויות
- צרכי תשתית מופחתים: אין צורך להחזיק שרתי דוא"ל נפרדים עבור דומיינים שונים
- דרישות תמיכה נמוכות יותר: ניהול שירות עצמי מצמצם כרטיסי תמיכה ב-IT
חווית תורם משופרת
- אימות חלק: כניסה יחידה עם אישורי Ubuntu One קיימים
- מיתוג עקבי: חוויה מאוחדת בכל השירותים הקשורים לאובנטו
- משלוח דוא"ל אמין: מוניטין IP איכותי מבטיח שהודעות דוא"ל יגיעו ליעדן
השילוב עם Forward Email ייעל משמעותית את תהליך ניהול האימייל של Canonical. לתורמים יש כעת חוויה חלקה בניהול כתובות הדוא"ל שלהם ב-@ubuntu.com, עם תקורה ניהולית מופחתת ואבטחה משופרת.
מבט קדימה: המשך שיתוף הפעולה
השותפות בין Canonical ו-Forward Email ממשיכה להתפתח. אנו עובדים יחד על מספר יוזמות:
- הרחבת שירותי דוא"ל לדומיינים נוספים הקשורים לאובנטו
- שיפור ממשק המשתמש בהתבסס על משוב התורמים
- הטמעת תכונות אבטחה נוספות
- בחינת דרכים חדשות למנף את שיתוף הפעולה שלנו בקוד פתוח
מסקנה: שותפות מושלמת בקוד פתוח
שיתוף הפעולה בין Canonical ו-Forward Email מדגים את הכוח של שותפויות הבנויות על ערכים משותפים. על ידי בחירת Forward Email כספק שירותי הדוא"ל שלהם, Canonical מצאה פתרון שלא רק עמד בדרישות הטכניות שלהם אלא גם תואם באופן מושלם עם המחויבות שלהם לתוכנות קוד פתוח, פרטיות ואבטחה.
עבור ארגונים המנהלים מספר דומיינים ודורשים אימות חלק עם מערכות קיימות, Forward Email מציעה פתרון גמיש, מאובטח וממוקד פרטיות. שֶׁלָנוּ גישת קוד פתוח מבטיח שקיפות ומאפשר תרומות לקהילה, מה שהופך אותה לבחירה אידיאלית עבור ארגונים שמעריכים עקרונות אלה.
מכיוון שגם Canonical וגם Forward Email ממשיכים לחדש בתחומם, שותפות זו עומדת כעדות לכוחם של שיתוף פעולה בקוד פתוח וערכים משותפים ביצירת פתרונות יעילים.
אתה יכול לבדוק שלנו מצב שירות בזמן אמת לראות את ביצועי מסירת הדואר האלקטרוני הנוכחיים שלנו, שאנו עוקבים אחריהם באופן רציף כדי להבטיח מוניטין IP איכותי ויכולת מסירת דוא"ל.
תמיכה בלקוחות ארגוניים
בעוד המקרה הזה מתמקד בשותפות שלנו עם Canonical, Forward Email תומך בגאווה במספר לקוחות ארגוניים בתעשיות שונות, אשר מעריכים את המחויבות שלנו לפרטיות, אבטחה ועקרונות קוד פתוח.
הפתרונות הארגוניים שלנו מותאמים לצרכים הספציפיים של ארגונים בכל הגדלים, ומציעים:
- דומיין מותאם אישית ניהול אימייל על פני מספר תחומים
- אינטגרציה חלקה עם מערכות אימות קיימות
- ערוץ תמיכה ייעודי לצ'אט מטריקס
- תכונות אבטחה משופרות כולל הצפנה עמידה קוונטית
- ניידות נתונים ובעלות מלאה
- תשתית 100% קוד פתוח לשקיפות ואמון
לְהִתְקַשֵׁר
אם לארגון שלך יש צורכי דוא"ל ארגוניים או שאתה מעוניין ללמוד עוד על האופן שבו Forward Email יכול לעזור לייעל את ניהול הדוא"ל שלך תוך שיפור הפרטיות והאבטחה, נשמח לשמוע ממך:
- שלח לנו דוא"ל ישירות בכתובת
support@forwardemail.net
- שלח בקשת עזרה אצלנו דף עזרה
- בדוק שלנו עמוד תמחור עבור תוכניות ארגוניות
הצוות שלנו מוכן לדון בדרישות הספציפיות שלך ולפתח פתרון מותאם המתאים לערכים ולצרכים הטכניים של הארגון שלך.
לגבי העבר דוא"ל
Forward Email is the 100% open-source and privacy-focused email service. We provide custom domain email forwarding, SMTP, IMAP, and POP3 services with a focus on security, privacy, and transparency. Our entire codebase is available on GitHub, ואנו מחויבים לספק שירותי דואר אלקטרוני המכבדים את פרטיות המשתמש ואבטחתו. למידע נוסף על מדוע דוא"ל קוד פתוח הוא העתיד, כיצד פועל העברת הדוא"ל שלנו, ו הגישה שלנו להגנת הפרטיות בדוא"ל.