নিরাপদে ডেটাবেস (মারিয়াডিবি) সহ পোস্টফিক্স মেল সার্ভার এবং ডোভকোট কীভাবে সেটআপ করবেন - পর্ব 1


এই 3-নিবন্ধের সিরিজে আমরা কীভাবে একটি সেন্টোস 7 বাক্সে অ্যান্টিভাইরাস এবং স্প্যাম সুরক্ষা সহ একটি পোস্টফিক্স মেল সার্ভার সেটআপ করব তা নিয়ে আলোচনা করব। দয়া করে নোট করুন যে এই নির্দেশাবলী আরএইচইএল/ফেডোরা এবং ডেবিয়ান/উবুন্টুর মতো অন্যান্য বিতরণেও কাজ করে।

আমাদের পরিকল্পনাটি মারিয়াডিবি ডাটাবেসে ইমেল অ্যাকাউন্ট এবং উপাত্তগুলি সংরক্ষণ করার জন্য যা আমাদের সুবিধার জন্য, পিএইচপিএমআইএডমিনের মাধ্যমে পরিচালিত হবে।

আপনি যদি পিএইচপিএমইএডমিন ইনস্টল না করার সিদ্ধান্ত নেন বা কেবল সিএলআই-এর সার্ভার নিয়ে কাজ করছেন, আমরা এই সিরিজ জুড়ে ব্যবহার করা হবে এমন ডাটাবেস সারণি তৈরির জন্যও সমান কোড সরবরাহ করব will

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

ডিএনএসে ডোমেনের জন্য একটি এবং এমএক্স রেকর্ডস তৈরি করুন

আরও এগিয়ে যাওয়ার আগে কয়েকটি পূর্বশর্ত রয়েছে যা অবশ্যই পূরণ করতে হবে:

1. আপনার কোনও ডোমেন নিবন্ধকের মাধ্যমে নিবন্ধিত একটি বৈধ ডোমেন প্রয়োজন। এই সিরিজে আমরা www.linuxnewz.com ব্যবহার করব যা গোড্যাডির মাধ্যমে নিবন্ধিত হয়েছিল।

২. এই জাতীয় ডোমেনটি অবশ্যই আপনার ভিপিএস বা ক্লাউড হোস্টিং সরবরাহকারীর বাহ্যিক আইপিগুলিতে নির্দেশিত হতে হবে। আপনি যদি নিজের মেইল সার্ভারটি স্ব-হোস্টিং করছেন তবে আপনি ফ্রিডিএনএস দ্বারা প্রদত্ত পরিষেবাটি ব্যবহার করতে পারেন (নিবন্ধকরণের প্রয়োজন)।

যে কোনও ইভেন্টে, আপনাকে নিজের ডোমেনের জন্য এবং এমএক্স রেকর্ডও সেট আপ করতে হবে (গুগলের কাছ থেকে এই FAQ এ আপনি MX রেকর্ড সম্পর্কে আরও জানতে পারেন)।

একবার যোগ হয়ে গেলে, আপনি সেগুলি সঠিকভাবে সেট আপ করা হয়েছে তা নিশ্চিত করতে MxToolbox বা ViewDNS এর মতো কোনও অনলাইন সরঞ্জাম ব্যবহার করে তাদের সন্ধান করতে পারেন।

গুরুত্বপূর্ণ: দয়া করে নোট করুন যে ডিএনএস রেকর্ডগুলি প্রচার না করা এবং আপনার ডোমেন উপলব্ধ না হওয়া পর্যন্ত এটি কিছুটা (1-2 দিন) সময় নিতে পারে। ইতিমধ্যে আপনি নীচের নির্দেশিত কাজগুলি সম্পাদন করতে তার আইপি ঠিকানার মাধ্যমে আপনার ভিপিএস অ্যাক্সেস করতে পারবেন।

৩. আপনার ভিপিএসের এফকিউডিএন (সম্পূর্ণ যোগ্য ডোমেন নাম) কনফিগার করুন:

# hostnamectl set-hostname yourhostname

সিস্টেমের হোস্টনামটি সেট করতে, তারপরে/ইত্যাদি/হোস্টগুলি সম্পাদনা করুন (এএএ.বি.বি.বি.সি.সি.সি.ডি.ডি, আপনার হোস্টনাম এবং আপনারডোমেনকে আপনার সার্ভারের পাবলিক আইপি, আপনার হোস্টনাম এবং আপনার নিবন্ধিত ডোমেনের সাথে প্রতিস্থাপন করুন):

AAA.BBB.CCC.DDD yourhostname.yourdomain.com       yourhostname

আপনার হোস্টনেম হল সিস্টেম হোস্টনাম যা হোস্টনামেক্টল কমান্ড ব্যবহার করে আগে সেট করা হয়েছিল।

প্রয়োজনীয় সফ্টওয়্যার প্যাকেজ ইনস্টল করা হচ্ছে

৪. প্রয়োজনীয় সফ্টওয়্যার প্যাকেজ যেমন অ্যাপাচি, পোস্টফিক্স, ডোভকোট, মারিয়াডিবি, পিএইচপিএমইএডমিন, স্প্যামাস্যাসিন, ক্ল্যামাভি, ইত্যাদি ইনস্টল করার জন্য আপনাকে ইপিইএল সংগ্রহস্থল সক্ষম করতে হবে:

# yum install epel-release

৫. উপরোক্ত পদক্ষেপগুলি অনুসরণ করার পরে প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করুন:

# yum update && yum install httpd httpd-devel postfix dovecot dovecot-mysql spamassassin clamav clamav-scanner clamav-scanner-systemd clamav-data clamav-update mariadb mariadb-server php phpMyAdmin
# aptitude update && aptitude install apache2 postfix dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql spamassassin clamav clamav-daemon clamav-base mariadb-client mariadb-server php5 phpMyAdmin

6. ওয়েব এবং ডাটাবেস সার্ভারগুলি শুরু করুন এবং সক্ষম করুন:

# systemctl enable httpd mariadb
# systemctl start httpd mariadb
# systemctl enable apache2 mariadb
# systemctl start apache2 mariadb

যখন ইনস্টলেশনটি সম্পূর্ণ হয়ে যায় এবং উপরের পরিষেবাটি সক্ষম এবং চলমান হয়, তখন আমরা পোস্টফিক্স মেল অ্যাকাউন্টগুলি সম্পর্কিত তথ্য সঞ্চয় করার জন্য ডাটাবেস এবং সারণীগুলি সেট আপ করে শুরু করব।

পোস্টফিক্স মেল অ্যাকাউন্ট ডেটাবেস তৈরি করা হচ্ছে

সরলতার জন্য, আমরা পিএইচপিএমওয়াই অ্যাডমিন ব্যবহার করব, যা একটি ওয়েব ইন্টারফেসের মাধ্যমে মাইএসকিউএল/মারিয়াডিবি ডাটাবেসগুলির পরিচালনা পরিচালনা করতে, ইমেল ডেটাবেস তৈরি এবং পরিচালনা করতে ব্যবহৃত হয়।

তবে, এই সরঞ্জামটিতে লগ ইন করতে এবং ব্যবহার করতে আমাদের এই পদক্ষেপগুলি অনুসরণ করতে হবে:

The. মারিয়াডিবি অ্যাকাউন্ট সক্ষম করুন (কমান্ড লাইন থেকে mysql_secure_installation ইউটিলিটি চালিয়ে আপনি এটি করতে পারেন, ব্যবহারকারীর রুটের জন্য একটি পাসওয়ার্ড বরাদ্দ করতে এবং সরঞ্জামের দ্বারা প্রস্তাবিত ডিফল্ট সেটিংস সেট করে EXCEPT “দূরবর্তীভাবে রুট লগইনকে অস্বীকার করুন) ? “:

অথবা অন্যথায় একটি নতুন ডাটাবেস ব্যবহারকারী তৈরি করুন:

MariaDB [(none)]> CREATE USER 'dba'@'localhost' IDENTIFIED BY 'YourPasswordHere';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON * . * TO 'dba'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;

একটি শংসাপত্র সহ অ্যাপাচি সুরক্ষিত করুন

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

আপনার সার্ভারে ট্রান্সপোর্ট লেয়ার সিকিউরিটি (টিএলএস) স্থাপন করতে, আরএইচসিই সিরিজের ৮ ম খণ্ডে বর্ণিত পদক্ষেপগুলি অনুসরণ করুন: আরও এগিয়ে যাওয়ার আগে অ্যাপাচি-র জন্য নেটওয়ার্ক সুরক্ষা পরিষেবা (এনএসএস) ব্যবহার করে টিএলএসের মাধ্যমে এইচটিটিপিএস প্রয়োগ করা।

দ্রষ্টব্য: আপনার যদি সার্ভারের কনসোলে অ্যাক্সেস না থাকে তবে কী তৈরির সময় আপনাকে প্রয়োজনীয় এনট্রপি তৈরি করার জন্য অন্য কোনও উপায় খুঁজে বের করতে হবে। সেক্ষেত্রে, আপনি আরএনজি-সরঞ্জামগুলি ইনস্টল করতে এবং rngd -r/dev/urandom চালানোর বিষয়ে বিবেচনা করতে পারেন।

পিএইচপিএমআইএডমিন কনফিগার করুন এবং সুরক্ষিত করুন

9. /etc/httpd/conf.d/phpMyAdmin.conf (CentOS) বা /etc/phpmyadmin/apache.conf (দেবিয়ান এবং ডেরিভেটিভস )গুলিতে নিম্নলিখিত লাইনগুলির সমস্ত উপস্থিতি সনাক্ত করুন এবং নিশ্চিত করুন যে তারা জনসাধারণের আইপি-র প্রতি নির্দেশ করে আপনার সার্ভারের:

Require ip AAA.BBB.CCC.DDD
Allow from AAA.BBB.CCC.DDD

অতিরিক্তভাবে, ডিফল্ট এ্যালিয়াসগুলি অক্ষম করুন এবং আপনার phpMyAdmin লগইন পৃষ্ঠা অ্যাক্সেস করতে একটি নতুন তৈরি করুন। এটি সাইটটি বট এবং বহিরাগত আক্রমণকারীদের বিরুদ্ধে সুরক্ষিত করতে সহায়তা করবে যারা www.yourdomain.com/phpmyadmin বা www.yourdomain.com/phpMyAdmin লক্ষ্য করে against

#Alias /phpMyAdmin /usr/share/phpMyAdmin
#Alias /phpmyadmin /usr/share/phpMyAdmin
Alias /managedb /usr/share/phpMyAdmin

এছাড়াও এর মধ্যে নিম্নলিখিত লাইন যুক্ত করুন:

Require all granted

ডোমেনের জন্য অ্যাপাচি ভার্চুয়ালহোস্ট তৈরি করুন

10. আপনার ডোমেন সক্ষম হওয়া সাইটগুলিতে যুক্ত হয়েছে তা নিশ্চিত করুন। নিম্নলিখিত বিষয়বস্তুগুলি দিয়ে /etc/httpd/sites-available/linuxnewz.com.conf (CentOS) বা /etc/apache2/sites-available/linuxnewz.com (দেবিয়ান) তৈরি করুন (ডকুমেন্টরুট, সাইটগুলি উপলভ্য এবং সাইটগুলি নিশ্চিত করুন) - সক্ষম ডিরেক্টরি বিদ্যমান):

<VirtualHost *:80>
    ServerName www.linuxnewz.com
    ServerAlias linuxnewz.com
    DocumentRoot /var/www/linuxnewz.com/public_html
    ErrorLog /var/www/linuxnewz.com/error.log
    CustomLog /var/www/linuxnewz.com/requests.log combined
    Options Indexes FollowSymLinks
</VirtualHost>

এবং প্রতীকী লিঙ্ক:

# ln -s /etc/httpd/sites-available/linuxnewz.com.conf /etc/httpd/sites-enabled/linuxnewz.com.conf
# a2ensite linuxnewz.com

এবং তুমি করে ফেলেছ.

পোস্টফিক্স ইমেল ডাটাবেস সেটআপ করুন

১১. এখন আপনি https://www.yourdomain.com/managedb এ আপনার পিএইচপিএমআইএডমিন ইন্টারফেসটি খুলতে পারেন (নোট করুন যে ম্যানেজডবইএইফটি হ'ল আমরা পিএইচপিএমএইডমিন ডেটা ডিরেক্টরিতে আগে সেট করেছিলাম)।

যদি এটি কাজ না করে (যা ডিএনএস রেকর্ডগুলির প্রচারে বিলম্ব বা কনফিগারেশনের অভাবে হতে পারে) যদি আপনি আপাতত www.yourdomain.com এর পরিবর্তে আপনার সার্ভারের সর্বজনীন আইপি ঠিকানা ব্যবহার করার চেষ্টা করতে পারেন:

যে কোনও ইভেন্টে, আপনি পিএইচপিএমএইডমিনে লগ ইন করার পরে আপনি নীচের ইন্টারফেসটি দেখতে পাবেন। বাম বিভাগে নতুন ক্লিক করুন:

ডাটাবেসটির জন্য একটি নাম প্রবেশ করান (এই ক্ষেত্রে ইমেল সার্ভার_ডিবি, কোনও কলেজ নির্বাচন করার প্রয়োজন নেই) এবং তৈরি ক্লিক করুন:

12. পরবর্তী স্ক্রিনে, প্রথম টেবিলের জন্য একটি নাম চয়ন করুন (যেখানে আমরা এই মেইল সার্ভারটি পরিচালনা করবে এমন ডোমেনগুলি সংরক্ষণ করব।

দয়া করে মনে রাখবেন যে এই সিরিজের পরেও আমরা কেবল একটি ডোমেন পরিচালনা করব, আপনি আরও পরে যুক্ত করতে পারেন) এবং এতে আপনি যে ক্ষেত্রগুলি চান তার সংখ্যা, তারপরে যান ক্লিক করুন। আপনাকে সেই দুটি ক্ষেত্রের নাম ও কনফিগার করার অনুরোধ জানানো হবে, যেখানে আপনি নিম্নলিখিত চিত্রগুলিতে নির্দেশিত হিসাবে নিরাপদে এগিয়ে যেতে পারেন:

আপনি যখন ডোমেনআইডির সূচির আওতায় প্রাথমিক নির্বাচন করেন, ডিফল্ট মানগুলি গ্রহণ করুন এবং যান:

বিকল্পভাবে, হুডের নীচে কোডটি দেখতে আপনি পূর্বরূপ এসকিউএল ক্লিক করতে পারেন:

CREATE TABLE `EmailServer_db`.`Domains_tbl` ( `DomainId` INT NOT NULL AUTO_INCREMENT , `DomainName` VARCHAR(50) NOT NULL , PRIMARY KEY (`DomainId`)) ENGINE = InnoDB;

আপনি প্রস্তুত থাকলে, পরিবর্তনগুলি নিশ্চিত করতে সংরক্ষণ ক্লিক করুন। তারপরে আপনি টেবিলগুলি তৈরি করতে চালিয়ে যেতে ইমেল সার্ভার_ডিবি এর অধীনে নতুন ক্লিক করতে সক্ষম হবেন:

13. এখন বাকি টেবিলগুলি তৈরি করতে এই পদক্ষেপগুলি অনুসরণ করুন। এসকিউএল ট্যাবে ক্লিক করুন এবং প্রতিটি ডাটাবেস অবজেক্টের জন্য নির্দেশিত কোড দিন।

নোট করুন যে এক্ষেত্রে আমরা একটি এসকিউএল কোয়েরি ব্যবহার করে টেবিলটি তৈরি করতে বেছে নিয়েছি কারণ বিভিন্ন টেবিলের মধ্যে অবশ্যই সম্পর্ক স্থাপন করা উচিত:

CREATE TABLE `Users_tbl` ( 
    `UserId` INT NOT NULL AUTO_INCREMENT,  
    `DomainId` INT NOT NULL,  
    `password` VARCHAR(100) NOT NULL,  
    `Email` VARCHAR(100) NOT NULL,  
    PRIMARY KEY (`UserId`),  
    UNIQUE KEY `Email` (`Email`),  
    FOREIGN KEY (DomainId) REFERENCES Domains_tbl(DomainId) ON DELETE CASCADE 
) ENGINE = InnoDB; 

আপনার একটি নিশ্চিতকরণ বার্তা পাওয়া উচিত (যদি তা না হয় তবে phpMyAdmin সিনট্যাক্স ত্রুটির জন্য অনুরোধ করবে):

CREATE TABLE `Alias_tbl` (
    `AliasId` INT NOT NULL AUTO_INCREMENT, 
    `DomainId` INT NOT NULL, 
    `Source` varchar(100) NOT NULL, 
    `Destination` varchar(100) NOT NULL, 
    PRIMARY KEY (`AliasId`), 
    FOREIGN KEY (DomainId) REFERENCES Domains_tbl(DomainId) ON DELETE CASCADE
) ENGINE = InnoDB;

(টেবিলটি তৈরিতে এগিয়ে যেতে নীচে যান ক্লিক করুন)।

এই অবধি, আপনার নিম্নলিখিত ডাটাবেস কাঠামো থাকা উচিত:

যার অর্থ আপনি পরবর্তী বিভাগে কিছু রেকর্ড যুক্ত করা শুরু করতে প্রস্তুত।

একটি পোস্টফিক্স ডোমেন তৈরি করা হচ্ছে, ব্যবহারকারী এবং উপস্ব

14. আমরা এখন তিনটি টেবিলের মধ্যে নিম্নলিখিত রেকর্ডগুলি সন্নিবেশ করব। [ইমেল সুরক্ষিত] এর জন্য পাসওয়ার্ডগুলি এনক্রিপ্ট করা হবে এবং ব্যবহারকারীদের_বিজ্ঞানের বিবৃতিতে INSERT INTOL করা হবে।

এছাড়াও, দয়া করে নোট করুন যে ইমেলগুলি [ইমেল সুরক্ষিত] এ পাঠানো হয়েছে:

INSERT INTO Domains_tbl (DomainName) VALUES ('linuxnewz.com');  
INSERT INTO Users_tbl (DomainId, password, Email) VALUES (1, ENCRYPT('PasswordForFirstEmailAccount', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[email ');  
INSERT INTO Users_tbl (DomainId, password, Email) VALUES (1, ENCRYPT('PasswordForSecondEmailAccount', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), '[email ');  
INSERT INTO Alias_tbl (DomainId, Source, Destination) VALUES (1, '[email ', '[email ');

আমাদের ডোমেন, দুটি ব্যবহারকারীর অ্যাকাউন্ট এবং একটি ইমেল ওরফে যুক্ত করার পরে আমরা এই সিরিজের পরবর্তী নিবন্ধে আমাদের ইমেল সার্ভারটি সেট আপ করতে প্রস্তুত, যেখানে আমরা ডোভকোট এবং পোস্টফিক্স কনফিগার করব।

সারসংক্ষেপ

এই নিবন্ধে আমরা একটি CentOS 7 ভিপিএসে একটি পোস্টফিক্স ইমেল সার্ভার ইনস্টল করার জন্য প্রয়োজনীয় প্যাকেজগুলি তালিকাভুক্ত করেছি এবং কীভাবে পিএইচপিএমইএডমিন ব্যবহার করে অন্তর্নিহিত ডাটাবেস পরিচালনা করবেন তা ব্যাখ্যা করেছি।

পরবর্তী দুটি নিবন্ধে আমরা দুটি ডোমেনের ইমেল বিতরণের যত্ন নেবে এমন দুটি প্রোগ্রামের কনফিগারেশন পর্যালোচনা করব (পার্ট 2) এবং আপনার সার্ভারের জন্য কীভাবে স্প্যাম এবং ভাইরাস (পার্ট 3) এর বিরুদ্ধে সুরক্ষা যুক্ত করতে হবে তা আপনাকে দেখাব।

ততক্ষণ পর্যন্ত যদি আপনার কোনও প্রশ্ন বা মন্তব্য থাকে তবে নীচের ফর্মটি ব্যবহার করে আমাদের সাথে নির্দ্বিধায় যোগাযোগ করুন।