এই বিস্তারিত টিউটোরিয়াল আপনাকে Linux-এ iptables ফায়ারওয়াল ব্যবহার শুরু করতে সাহায্য করবে—যা পরীক্ষিত, বিশ্বস্ত এবং সত্যিকারী।
Linux মেশিনগুলো 상당한 নিরাপদ হিসেবে পরিচিত। গবেষণা দেখিয়েছে যে Linux নিরাপদভাবে ডিজাইন করা হয়েছে। তবুও, Linux ইনস্টলেশনের সাথে বান্ডেল থাকা সকল নিরাপত্তা ফিচারগুলো সঠিকভাবে কনফিগার না করা পর্যন্ত সেগুলো আপনার জন্য কাজ করবে না। আমি আপনাকে আপনার মেশিন সিকিউর করতে সাহায্য করে এমন একটি টুল সেট আপ করার প্রক্রিয়ায় গাইড করব—ফায়ারওয়াল। এখানে আমরা Linux-এ iptables ফায়ারওয়াল ব্যবহার করব। আমি অনুমান করছি আপনি Red Hat Enterprise Linux 4 বা অনুরূপ একটি সার্ভার ব্যবহার করছেন। তবে, অধিকাংশ ধাপ অন্যান্য Linux ডিস্ট্রিবিউশনেও কাজ করবে। এই আর্টিকেলে আমরা Apache Web Server, FTP, এবং SSH চলে এমন একটি Linux সার্ভারে ফায়ারওয়াল সেট আপ করব।
প্রথমে দেখা যাক এই অ্যাপ্লিকেশনগুলো কোন পোর্টগুলো ব্যবহার করে এবং কোন পোর্টগুলো ফায়ারওয়ালে খোলা রাখতে হবে।
Apache ওয়েব সার্ভার ডিফল্টভাবে পোর্ট ৮০-এ চলে। Apache আমাদের সকল ওয়েব কন্টেন্ট এই পোর্টে সার্ভ করবে, তাই ফায়ারওয়ালে এই পোর্টটি খোলা রাখতে হবে। SSH সার্ভিস পোর্ট ২২-এ চলে। আমাদের রিমোটলি সার্ভারে কানেক্ট হয়ে কাজ করতে হবে, তাই এটি খোলা রাখতে হবে। FTP পোর্ট ২১-এ চলে এবং এটি যোগাযোগের জন্য পোর্টটি খোলা রাখতে চায়।
এরপর, নিশ্চিত করুন iptables ইনস্টল আছে। রুট ইউজার হিসেবে এই কমান্ডটি চালান:
# rpm -qa | grep iptables
যদি iptables ইনস্টল থাকে তবে সিস্টেম আপনাকে ইনস্টল করা ভার্সনটি দেখাবে। যদি না থাকে তবে নিচের কমান্ডগুলো চেষ্টা করুন:
# yum install iptables
# /etc/init.d/iptables start
iptables বর্তমানে কোন কনফিগারেশনে চলছে তা চেক করতে:
# iptables –list
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
এই কমান্ডটি বর্তমানে সেট করা সকল ফায়ারওয়াল রুল লিস্ট করবে। আমি ধরে নিচ্ছি আপনার Linux বক্সের iptables কনফিগারেশনে কোনো ফায়ারওয়াল রুল নেই। চলুন এখন ফায়ারওয়াল কনফিগার করি যাতে পোর্ট ৮০ (ওয়েব সার্ভার), ২২ (SSH), এবং ২১ (FTP)-এ খোলা যোগাযোগ থাকে। আমরা এছাড়া অন্য সকল পোর্টে যোগাযোগ ব্লক করব।
এখানে একটি ফায়ারওয়াল স্ক্রিপ্ট কনফিগারেশন দেওয়া হলো। একটি নতুন ফাইল তৈরি করুন এবং নাম দিন iptable-firewall.sh। নিচের টেক্সটটি সেটিতে কপি করুন:
#!/bin/sh
ANY=”0/0″
OPEN_PORTS=”21 22 80″iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT# Flush (-F) all specific rules
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUTfor port in $OPEN_PORTS
do
iptables -A INPUT -i eth0 -p tcp -s $ANY -d $ANY –destination-port $port –syn -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -s $ANY -d $ANY –destination-port $port –syn -j ACCEPT
doneiptables -A INPUT -i eth1 -p icmp -s $ANY -d $ANY -j ACCEPT
#Allow any related/established connections
iptables -A INPUT -i eth0 -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -m state –state ESTABLISHED,RELATED -j ACCEPT#Kill everything else
iptables -A INPUT -i eth0 -j DROP
iptables -A INPUT -i eth1 -j DROP#write for boot
iptables-save > /etc/sysconfig/iptables
এখন ফাইলটি সংরক্ষণ করুন, এক্সিকিউটেবল পারমিশন দিন এবং চালান:
# chmod +x iptable-firewall.sh
# ./iptable-firewall.sh
এখন আপনার ফায়ারওয়াল রুল চেক করুন:
# iptables –list
আপনার সকল ফায়ারওয়াল রুল এখন সেট হয়ে গেছে। আপনার সার্ভার এখন নিরাপদ। এই রুল সেটে যেকোনো পরিবর্তন বা যোগ করার জন্য OPEN_PORTS প্যারামিটার ডিফাইন করা লাইনটি এডিট করুন এবং লিস্ট থেকে পোর্ট যোগ বা বাদ দিন। যেকোনো পরিবর্তন করার পর স্ক্রিপ্টটি আবার চালাতে ভুলবেন না।
যদি এই কমান্ড লাইন জিনিসগুলো আপনাকে কিছুটা ভয়ংকর লাগে, তবে How to setup Firestarter – an easy to use Linux Firewall টিউটোরিয়াল দেখুন—যেখানে সহজ গ্রাফিক্যাল ইন্টারফেস আছে।