Postfix نماینده انتقال ایمیل Postfix نرم افزاری اپن سورس با عنوان mail transfer agent) MTA) و یا نماینده انتقال ایمیل است.
مسلما کاربران حرفهای گنو/لینوکس ٬ با نرم افزار Postfix آشنا بوده و در مورد عملکرد و ویژگیهای آن اطلاعاتی دارند. اما جهت آشنایی کاربران دیگر٬ توضیحاتی مختصر در مورد آن خواهم داد.
Postfix نرم افزاری اپن سورس با عنوان mail transfer agent) MTA) و یا نماینده انتقال ایمیل است. همان طور که از نام آن به نظر میرسد جهت حمل و مسیر یابی ایمیل استفاده میشود و همواره از آن به عنوان نرم افزاری سریع با مدیریت آسان و امنیت بالا یاد میگردد که با نامهای VMailer و IBM Secure Mailer نیز شناخته شده است.
● سیستم Postfix
Postfix از سیستم پیچیدهای تشکیل یافته است به نحوی که نسخه ابتدایی آن حدودا سی هزار خط کد در برنامه نویسی آن بود. قاعدتا در یک سیستم پیچیده نبایستی امنیت آن بر محور یک مکانیزم امنیتی باشد که در غیر این صورت ممکن است ایجاد یک خطا کلا سیستم پست الکترونیکی را از کار بیندازد٬ قابل ذکر است که Postfix از چندین لایه جهت کنترل آسیبهای نرم افزاری و دیگر خطاها استفاده میکند.
بیشتر پروسههای Postfix میتوانند در یک محیط chroot (محیط chroot در واقع یک محیط محدوده شده است٬ نظیر یک زندان که زندانی نمیتواند به محیط خارج دسترسی داشته باشد ٬ برنامهای که در یک فولدر با حالت chroot قرار گرفته باشد٬ نمیتواند دسترسی به محیط بیرون داشته باشد) اجرا گردند. این حالت بویژه جهت برنامههایی نظیر SMTP سرور و SMTP کلاینت که اکثرا در مقابل تهدیدات شبکه بی دفاع هستند صدق میکند.
● پروسههای مستقل
اما مکانیزم دیگری که در Postfix پیاده شده است٬ استفاده از پروسههای مستقل جهت جداسازی فعالیت پروسهها از یگدیگر است٬ بخصوص اینکه مسیر مستقیمی از شبکه به برنامههای داخلی که ساختار امنیتی حساسی دارند وجود ندارد. چنانچه شخصی بخواهد که به Postfix نفوذ کند ابتدا بایستی به پروسههای مختلف وارد شود ٬ بعضی از قسمتهای Postfix حالت Multi-Threat را دارند و از طرفی تمام برنامههایی که با دنیای بیرون در ارتباط هستند با حالت Single-Threat پیش میروند.
● کنترل برنامهها
هیچ کدام از برنامههای delivery در Postfix تحت کنترل یک user process اجرا نمیگردند. بیشتر برنامههای Postfix تحت یک دایمون (Daemon به زبان ساده پروسه ایست که در Background سیستم عامل اجرا شده و غالبا تحت کنترل کاربر نیستند) مقیم در سیستم ٬ در یک محیط کنترل شده اجرا میگردند.
● مستقل از set-uid
نکته جالب دیگر این است که هیچ کدام از برنامههای Postfix ٬ set-uid) setuid و هم خانواده آن setgid ٬ اکثرا به این دلیل به کار میرود که کاربر بتواند فایلهای باینری را با یک دسترسی موقت اجرا کند) نیستند ٬ در واقع setuid موجب پیدایش اشکالات بیشتری میشود تا اینکه بخواهد سودمند باشد! هر زمانی که یک ویژگی جدید به سیستم عامل یونیــکس اضـافه میشد ٬ set-uid باعث مشکل امنیتی میگــردیـد: shared libraries ٬ پشـتـیبانی چــند زبــانه٬ فــایـل سیستم proc/ و ... که همه این موارد نمونهای از آنها بود.
● چندی دیگر از ویژگیها
۱) حافظه جهت رشتهها و بافرها به طور دینامیک سازماندهی میشود ٬ به این دلیل که از شکلات امنیتی buffer overrun جلوگیری گردد .
۲) خطهای طولانی در پیغامها٬ به قسمتهایی با سایز منطقی تقسیم بندی شده است.
و دیگر ویژگیهای امنیتی که Postfix را در مقابل حملاتی نظیر buffer overrun مقاوم نموده است.
پی نوشتها :
[۱] http://www.postfix.org
[۲] http://en.wikipedia.org