১০ ডিসেম্বর, ২০১১

উবুন্টুতে মেইল সার্ভার ইন্সটল এবং কনফিগারেশন [১ম পর্ব]

আপনি যদি এই ব্লগের নতুন পাঠক হন আর পরবর্তী সকল নতুন পোস্ট দ্রুত পেতে চান
তাহলে সাবস্ক্রাইব করুন RSS Feed !
মাঝখানে কিছুদিন ব্যস্ততার কারনে সময় করতে না পারায় ব্লগে নতুন কোন পোস্ট দিতে পারিনি। আজ কিছুটা সময় পেয়ে তাই ফিরে এলাম নতুন একটি লিনাক্স বিষয়ক টিউটোরিয়াল নিয়ে। এর আগে ব্লগে ফেডোরায় সাম্বা সার্ভার ইন্সটলেশন এবং কনফিগারেশন বিষয়ক একটি পোস্ট দিয়েছিলাম। এরই ধারাবাহিকতায় আজ আপনাদের সামনে নিয়ে এসেছি উবুন্টুতে ধাপে ধাপে মেইল সার্ভার ইন্সটলেশন ও কনফিগার বিষয়ক একটি টিউটোরিয়াল।

লিনাক্স সিস্টেমে মেইল সার্ভার ইন্সটলেশন এবং কনফিগার করা কিছুটা সময় সাপেক্ষ একটি প্রক্রিয়া। তাই আমি ধাপে ধাপে সহজ ভাষায় এই প্রক্রিয়াটি আলোচনা করার চেষ্টা করবো। পুরো বিষয়টি একটি পোস্টে আলোচনা করলে পোস্ট দীর্ঘ হওয়ার সম্ভাবনা রয়েছে, তাই আমি দুই পর্বে আলোচনাটি করার চেষ্টা করবো। আজ দিলাম ১ম পর্ব।

মেইল সার্ভার ইন্সটলের পূর্বে যেসকল বিষয় জানা দরকার তা হলো একটি মেইল সার্ভার স্থাপনে কি কি দরকার হয়, এটি কেবলমাত্র একটি সার্ভার নয় বরং বেশ কিছু উপাদানের সমন্বয়ে গড়ে উঠে একটি মেইল সার্ভার। আপনার প্রতিষ্ঠান বা ব্যক্তিগত কাজের উদ্দেশ্যে আপনার মেইল সার্ভার দরকার পড়তে পারে। তাই মেইল সার্ভারের প্রয়োজনীয় অংশগুলো জানা থাকা দরকার।


একটি মেইল সার্ভার তৈরিতে যা যা মূলত আপনার দরকার পড়বে তা হলো-


এসব উপাদানের মধ্যে MTA  এবং MDA  হচ্ছে অত্যাবশ্যকীয় দুটি উপাদান যেগুলো আপনার মেইল সার্ভারের প্রধান উপাদান বলা যায়। 
Mail filtering মূলত নিরাপত্তার উদ্দেশ্যে ব্যবহৃত হয়, এটি আপনাকে স্প্যাম মেইল বা ভাইরাসযুক্ত মেইলের হাত থেকে রক্ষা করতে সহায়তা করে থাকে।
আর Webmail হলো  আপনার মেইল সার্ভারের ইউজারদের ওয়েব  ব্রাউজার ব্যবহার করে মেইল পড়তে এবং মেইল পাঠাতে সাহায্যকারী একটি উপাদান।

উবুন্টুতে মেইল সার্ভার তৈরির জন্য উপরোক্ত কাজগুলো সম্পাদন করার জন্য বেশকিছু টুলস রিপোতে পাওয়া যায়, এগুলোর মধ্যে জনপ্রিয় কিছু টুলসের নাম হলো-

MTA= Postfix, exim4
MDA= dovecot, Courier, cyrus
Mail Filtering= EximClamAV, PostfixGreylisting, PostfixAmavisNew
Webmail= Squirrelmail, openWebmail

উপরোক্ত টুলসসমূহের মধ্যে MTA টুলস হিসাবে Postfix,  MDA এর জন্য dovecot  এবং  Webmail  এর জন্য Squirrelmail এগুলো অধিক ব্যবহৃত হয়ে থাকে, তাই আমি আমার এই টিউটোরিয়ালে এগুলো ইন্সটল এবং কনফিগারেশন নিয়ে আলোচনা করার চেষ্টা করবো।

আজকের পর্বে আলোচনা করা হবে MTA টুলস Postfix ইন্সটলেশন এবং এর বেসিক কনফিগারেশন নিয়ে। এর পরের পর্বে MDA টুলস dovecot এবং Webmail এর জন্য Squirrelmail নিয়ে আলোচনার আশা রাখি।



Postfix (MTA) ইন্সটলেশন
Postfix হলো উবুন্টুর জন্য ডিফল্ট mail transfer agent (MTA). এটি অফিসিয়াল রিপোতে রয়েছে এবং এটি দ্বারা সিকিউরড কানেকশানের SMTP (simple mail transfer protocol) সার্ভার তৈরি করা যায়।

এটি ইন্সটলের জন্য নিচের কমান্ডটি টার্মিনালে লিখুন-

sudo apt-get install postfix  mailutils

এর ফলে Postfix এবং কমান্ডলাইন মেইল ইউটিলিটি ইন্সটল হবে।

ইন্সটলেশন সম্পন্ন হওয়ার পর আপনার MTA টুলসটি কাজ করছে কিনা সেটি পরীক্ষা করে দেখতে পারেন, এজন্য টার্মিনালে লিখুন-

sudo telnet localhost 25

এর ফলে যদি নিচের মত প্রম্পট দেখতে পান-


Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 Abhi-Linux ESMTP Postfix (Ubuntu)


তাহলে বুঝবেন যে Postfix ইন্সটলেশন কাজ করছে  :)

এরপর আপনি একটি টেস্ট মেইল পাঠিয়ে SMTP সার্ভিসটি পরীক্ষা করে দেখতে পারেন, এজন্য নিচের মেইল কোডটুকু টার্মিনালে দেখানো MTA প্রম্পটে লিখুন ধারাবাহিকভাবে-

ehlo localhost
mail from: root@localhost
rcpt to: username@localhost
data
subject: test mail

Hi,
this is a test mail
.
quit


এরপর আপনি উক্ত ইউজারের মেইলবক্স  চেক করে দেখুন এই টেস্ট মেইলটি সফলভাবে প্রেরণ করা হয়েছে কি না, এজন্য ধারাবাহিকভাবে  টার্মিনালে লিখুন-

su - username
mail



এরপর আপনাকে উক্ত ইউজারের মেইলবক্সের (/var/mail/username) আনরিড মেইলগুলো কমান্ডলাইনে শো করবে, প্রতিটা মেইলের পাশে নাম্বার দেওয়া থাকবে, আপনি কমান্ডলাইনে উক্ত নাম্বার টাইপ করে এন্টার প্রেস করলে ঐ মেইলটি পড়তে পারবেন।
মেইল পড়া শেষ হলে Q প্রেস করে আপনি বেরিয়ে যেতে পারবেন। কোন মেইল পড়া শেষ হওয়ার পর উক্ত মেইলটি /home/username/mbox এ গিয়ে জমা হবে। এটি হলো Postfix এর জন্য ডিফল্ট মেইলবক্স।

উপরোক্ত ধাপগুলো সম্পন্ন করার পর যদি সব ঠিকভাবে কাজ করে তাহলে বুঝে নিবেন আপনার Postfix ইন্সটলেশন সফল হয়েছে এবং SMTP সার্ভার কাজ করার জন্য উপযুক্ত হয়েছে।



Postfix কনফিগারেশন
সাধারনত ডিফল্ট কনফিগারেশনেই আপনি বেসিক টেস্টগুলো সেরে নিতে পারবেন। কিন্তু relayhost, আপনার ডোমেইন সেট-আপ ইত্যাদির জন্য আপনাকে  postfix এর কনফিগারেশনে কিছু পরিবর্তন করতে হবে। postfix  এর কনফিগারেশন ফাইলটি আপনি পাবেন /etc/postfix/main.cf লোকেশানে।

এই ফাইলটি ম্যানুয়ালি এডিট করে আপনি কনফিগারেশন করতে পারেন, এছাড়া টার্মিনালে নিচের কমান্ডটি দিলে Postfix কনফিগারেশন উইন্ডো ওপেন হবে এবং সেখানে সেটিংস চেঞ্জ করা যাবে-

sudo dpkg-reconfigure postfix


কনফিগারেশন চেঞ্জ করার পর postfix রিস্টার্ট করতে হবে নিচের কমান্ডটি দিয়ে-

sudo /etc/init.d/postfix restart




Postfix কে ইন্টারনেট রিলে হোস্ট হিসাবে কনফিগার করা
এখন আমি আপনাদের দেখাবো কিভাবে আপনি আপনার লোকাল Postfix ইন্সটলেশনটিকে ইন্টারনেট রিলে হোস্ট হিসাবে সেট করতে পারেন, এজন্য আপনার ডিফল্ট কনফিগারেশনে কিছু চেঞ্জ আনতে হবে।
ইন্টারনেট রিলে হোস্ট হিসাবে Postfix কনফিগার করে নিলে আপনি লোকাল সার্ভারটিকে কোন রিমোট SMTP সার্ভারের মাধ্যমে রিলে করতে পারবেন এবং আপনার লোকাল সার্ভার থেকেই যেকোন মেইল এড্রেসে (যেমন- gmail, yahoo ইত্যাদি) মেইল পাঠাতে পারবেন।

এজন্য প্রথমে আপনাকে /etc/postfix/password নামে একটি ফাইল তৈরি করতে হবে.

উক্ত ফাইলে নিচের মত করে লাইন যোগ করুন-

smtp.servername.com   username:password

এখানে সার্ভারনেমের জায়গায় আপনার রিমোট SMTP সার্ভারের নাম দিন এবং উক্ত সার্ভারের জন্য ইউজারনেম ও পাসওয়ার্ড দিন।

এবার ফাইলটি সেভ করুন।

এরপর নিচের কমান্ডগুলো টার্মিনালে ধারাবাহিকভাবে দিন-

sudo chown root:root /etc/postfix/password
sudo chmod 600 /etc/postfix/password
sudo postmap  /etc/postfix/password


এবার পরের ধাপে যেতে হবে, অর্থাৎ postfix ডিফল্ট কনফিগারেশন ফাইলে কিছু চেঞ্জ আনতে হবে, এজন্য /etc/postfix/main.cf ফাইলটির কিছু স্থানে ম্যানুয়ালি এডিট করতে হবে, কোন কোন স্থানে এডিট করতে হবে সেটা বোঝার সুবিধার্থে আমি আমার কনফিগার করা postfix কনফিগারেশন ফাইলটি তুলে দিলাম-



# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
# myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = Abhi-Linux
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = Abhi-Linux,localhost.localdomain,localhost,*
relayhost = smtp.gmail.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
default_transport = smtp
relay_transport = smtp

#SASL Settings
smtp_use_tls=yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/password
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous



এই ফাইলটির সাথে মিলিয়ে আপনি নিজের কনফিগারেশন ফাইলটি এডিট করতে পারেন। এখানে খেয়াল করুন- relayhost এর জায়গায় আপনার নিজের পছন্দমত রিমোট SMTP সার্ভারের লোকেশন দিবেন যেটি আপনি password ফাইলে সেট করেছেন।
আর এভাবে এডিট করার আগে আপনার মূল main.cf ফাইলটি ব্যাক-আপ রাখতে ভুলবেন না, এতে কোন সমস্যা হলে আপনি আবার ডিফল্ট সেটিংসে ফিরে যেতে পারবেন।

এবার ফাইলটি সেভ করুন ও postfix রিস্টার্ট করুন।

এবার আপনি রিলে হোস্ট ঠিকভাবে কাজ করছে কি না সেটি টেস্ট করতে পারেন, ইন্সটলেশন ধাপে উল্লেখিত নিয়মে আপনি টার্মিনাল থেকে একটি টেস্ট মেইল পাঠিয়ে এটি পরীক্ষা করতে পারেন। এজন্য শুধু একটি চেঞ্জ দরকার-

rcpt to: username@mail.com

অর্থাৎ প্রাপকের ঠিকানার জায়গায় কোন নির্দিষ্ট ইউজারের মেইল এড্রেসে মেইল পাঠাতে হবে। এখানে আপনি নিজের কোন মেইল এড্রেসে মেইল পাঠাতে পারেন।

এবার উক্ত প্রাপকের মেইল এড্রেসে গিয়ে ইনবক্স চেক করলে যদি দেখেন যে আপনার লোকাল সার্ভার থেকে পাঠানো মেইলটি পৌঁছেছে তাহলে বুঝতে হবে ইন্টারনেট রিলে হোস্ট কনফিগারেশন সঠিকভাবে কাজ করছে।


* যারা সিস্টেমে LAMP ইন্সটল করে php শিখছেন তারা এভাবে  Postfix ইন্সটল করার মাধ্যমে লোকালহোস্টে php এর mail()  ফাংশন টেস্ট করতে পারবেন।



আজ তাহলে এখানেই শেষ করছি...
আগামী পর্বে মেইল সার্ভার ইন্সটলেশন এবং কনফিগারেশন প্রক্রিয়ার পরবর্তী ধাপগুলো নিয়ে আলোচনা করা হবে।
ততদিন পর্যন্ত সুস্থ থাকুন সবাই, হ্যাপি লিনাক্সিং!

1 মন্তব্য:

alex বলেছেন...

:))

মন্তব্যে ইমোটিকন ব্যবহারের জন্য ইমোটিকনের পাশের কোডটি আপনার কি-বোর্ডের সাহায্যে টাইপ করুনঃ
:)) ;)) ;;) :D ;) :p :(( :) :( :X =(( :-o :-/ :-* :| 8-} :)] ~x( :-t b-( :-L x( =))

একটি মন্তব্য পোস্ট করুন