This site is best viewed using the updated version of Mozilla Firefox

রেড হ্যাট লিনাক্স : HTTP Server Configuration

আমরা যখন কোন Web Browser এ কোন Address লিখে এন্টার প্রেস করি তখন একটি Web Page প্রদর্শিত হয়। এই Web Page টি যে সার্ভার থেকেআসে তাকে Web Server বলে। লিনাক্সে বিভিন্ন ধরণের Web Server কনফিগার করা যায়। আজকের টিউটোরিয়ালে আমরা দেখবো কিভাবে HTTP Server কনফিগার করতে হয়।

Package Name : http
Daemon : httpd
Port : 80
Installation : yum install http* -y
Document Root : /var/www/html
Conf File : /etc/httpd/conf/httpd.conf

Installation

প্রথমেই আমরা yum এর সাহায্যে http প্যাকেজটি ইন্সটল করে নিব।

# yum install http* -y

HTTP সার্ভারের ডকুমেন্ট রুট হলো /var/www/html । অর্থাৎ আমাদের সকল Web Page, CSS file, Image ইত্যাদি এই ডাইরেক্টরীতে রাখতে হবে। এখন আমরা ডইরেক্টরীটিতে যাবো

# cd /var/www/html

এখানে একটি Sample Web Page তৈরী করবো বা অন্য কোথাও থেকে নিয়ে আসবো। Web Page কিভাবে তৈরী করতে হয় সেটা আমাদের বিবেচ্য নয়। এটা Web Developer গণ করে থাকে।

Edit Configuration File

এখন আমরা /etc/httpd/conf/httpd.conf ফাইলের একেবারে শেষে নিচের মতো করে কিছু লাইন লিখব।

# vim /etc/httpd/conf/httpd.conf

<VirtualHost www.naser.com:80>
ServerAdmin root@www.naser.com
DocumentRoot /var/www/html
DirectoryIndex index.html
ServerName www.naser.com
</VirtualHost>

Start and enable service

অতঃপর httpd সার্ভিসটি রিষ্টার্ট দিব।

# service httpd restart
# chkconfig httpd on

আমাদের সার্ভার কনফিগার করা আপাতত শেষ। এখন আমরা Web browser এ সার্ভারের আই.পি টি লিখে এন্টার প্রেস করলে আমাদের সার্ভারে রাখা Web page টি দেখতে পাবো।

Security on HTTP server (restricted directory)

একটি HTTP Server এর ডকুমেন্ট রুটে অনেকগুলো ডাইরেক্টরী থাকতে পারে। আবার প্রতিটি ডাইরেক্টরীতে একাধিক Web page বা অন্যান্য ফাইল থাকতে পারে। ধরুন আমাদের সার্ভারের ডকুমেন্ট রুটে restricted নামে একটি ডাইরেক্টরী আছে। আমরা চাচ্ছি এই restricted ডাইরেক্টরীতে রাখা ফাইলগুলো সার্ভার মেশিন ব্যতিত অন্য কোন কম্পিউটার থেকে কেউ যাতে এ্যাকসেস করতে না পারে।

এজন্য প্রথমেই আমরা আমাদের সার্ভারের ডকুমেন্ট রুটে restricted নামে একটি ডাইরেক্টরী তৈরী করে নিব। এবং সেখানে কিছু Sample ফাইল তৈরী করবো।

# cd /var/www/html
# mkdir restricted
# cd restricted
# touch song.mp3 text.txt vedio.flv

এখন আমরা /etc/httpd/conf/httpd.conf ফাইলের শেষের দিকে যে লাইনগুলো লিখেছিলাম সেই লাইনগুলো নিচের মতো এডিট করবো।

# vim /etc/httpd/conf/httpd.conf

<VirtualHost www.naser.com:80>
ServerAdmin root@www.naser.com
DocumentRoot /var/www/html
DirectoryIndex index.html
ServerName www.naser.com
<Directory /var/www/html/restricted>
Options FollowSymLinks
AllowOverride None
Deny from all
Allow from 192.168.10.2
</Directory>

ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

অতঃপর httpd সার্ভিসটি রিষ্টার্ট দিব।

# service httpd restart

এখন প্রথমে সার্ভার মেশিনের browser থেকে http://192.168.10.2/restricted এই এ্যাড্রেসটি এ্যাকসেস করে দেখুন তা এ্যাকসেস করা যাবে। কিন্তু নেটওয়ার্কের অন্য কোন কম্পিউটারের browser থেকে দেখুন তা এ্যাকসেস করা যাবে না।

Security on HTTP server (password protection)

ধরুন আমাদের সার্ভারের ডকুমেন্ট রুটে restricted নামে যে ডাইরেক্টরী আছে আমরা চাচ্ছি তা এ্যাকসেস করা যাবে কিন্তু পাওয়ার্ড দিয়ে এ্যাকসেস করতে হবে। অর্থাৎ শুধুমাত্র যারা পাসওয়ার্ড জানে কেবল তারাই এ্যাকসেস করতে পারবে। এজন্য আমাদেরকে সার্ভারে একটি ইউজার তৈরী করে ঐ ইউজারকে htaccess দিতে হবে।

এজন্য আমরা /etc/httpd/conf/httpd.conf ফাইলের শেষের দিকে যে লাইনগুলো লিখেছিলাম সেই লাইনগুলো নিচের মতো এডিট করবো।

# vim /etc/httpd/conf/httpd.conf

<VirtualHost www.example.com:80>
ServerAdmin root@www.naser.com
DocumentRoot /var/www/html
ServerName www.example.com
DirectoryIndex index.html
<Directory /var/www/html/restricted>
Options Indexes
Order Allow,Deny
Allow from all
AllowOverride AuthConfig
</Directory>
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

অতঃপর /var/www/html/restricted ডাইরেক্টরীতে .htaccess নামে একটি ফাইল তৈরী করবো এবং ফাইলটিতে নিচের মতো করে কিছু লাইন লিখব।

# vim /var/www/html/restricted/.htaccess

AuthName “Secure Site”
AuthType basic
AuthUserFile /etc/httpd/htpass
Require valid-user

অতঃপর একটি ইউজার তৈরী করবো যেই ইউজারনেম দিয়ে আমরা ডাইরেক্টরীটি এ্যাকসেস করতে চাই।

# useradd asgar

অতঃপর ইউজার asgar কে htaccess দিব।

# htpasswd –c /etc/httpd/htpass asgar
কমান্ডটি দেওয়ার পর পাসওয়ার্ডের প্রম্প্ট দিবে। তখন আমরা নিজেদের পছন্দ মতো একটি পাসওয়ার্ড দিব। পরবর্তীতে ডাইরেক্টরীটি এ্যাকসেস করার সময় ইউজার asgar এর সাথে এই পাসওয়ার্ডটি ব্যবহার করতে হবে।

সবশেষে httpd সার্ভিসটি রিষ্টার্ট দিব।

# service httpd restart

এরপর নেওয়ার্কের যেকোন মেশিনের browser থেকে http://192.168.10.2/restricted এই এ্যাড্রেসটি এ্যাকসেস করে দেখুন তা এ্যাকসেস করার সময় ইউজার নেম এবং পাসওয়ার্ড চাচ্ছে। এখন আমরা ইউজার asgar এর সাথে এই পাসওয়ার্ডটি ব্যবহার করলে ডাইরেক্টরীটিতে এ্যাকসেস করতে পারবো।

DNS Resolve

এতক্ষন আমরা HTTP Server টি ব্রাউজ করলাম আই.পি এ্যাড্রেসের মাধ্যমে। কিন্তু আমরা যদি ডোমেইন নেম এর মাধ্যমে ব্রাউজ করতে চাই তাহলে আমাদের DNS Server এর Zone ফাইলে এন্ট্রি দিতে হবে।

# vim /var/named/naser.fz

$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS masterdns.naser.com.
IN NS slavedns.naser.com.
IN A 192.168.10.1
IN A 192.168.10.2
masterdns IN A 192.168.10.1
slavedns IN A 192.168.10.2
server1 IN A 192.168.10.2
www IN CNAME server1

অতঃপর DNS Server এর named সার্ভিসটি রিষ্টার্ট দিব।

# service named restart

এরপর নেওয়ার্কের যেকোন মেশিনের browser থেকে http://www.naser.com এই এ্যাড্রেসটি এ্যাকসেস করা যাবে।

আশাকরি এই টিউটোরিয়ালটি দেখে আপনারা নিজে নিজেই এখন HTTP Server কনফিগার করতে পারবেন। ভাল থাকবেন। আল্লাহ হাফেজ।