আরএইচসিএসএ সিরিজ: ফায়ারওয়াল প্রয়োজনীয় এবং নেটওয়ার্ক ট্র্যাফিক নিয়ন্ত্রণ ফায়ারওয়াল্ড এবং আইপটেবলগুলি ব্যবহার করে - পার্ট 11


সহজ কথায়, ফায়ারওয়াল একটি সুরক্ষা ব্যবস্থা যা পূর্বনির্ধারিত নিয়মের একটি সেট (যেমন প্যাকেটের গন্তব্য/উত্স বা ট্র্যাফিকের ধরণের উদাহরণস্বরূপ) এর উপর ভিত্তি করে কোনও নেটওয়ার্কে আগত এবং বহির্গামী ট্র্যাফিককে নিয়ন্ত্রণ করে।

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

ফায়ারওয়ালডি এবং ইপটেবলের মধ্যে একটি তুলনা

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

ফায়ারওয়াল্ড আপনার আরএইচইএল সিস্টেমে ডিফল্টরূপে ইনস্টল করা উচিত, যদিও এটি চলছে না। আপনি নিম্নলিখিত কমান্ডগুলি দিয়ে যাচাই করতে পারেন (ফায়ারওয়াল-কনফিগারেশন হল ব্যবহারকারী ইন্টারফেস কনফিগারেশন সরঞ্জাম):

# yum info firewalld firewall-config

এবং,

# systemctl status -l firewalld.service

অন্যদিকে, iptables পরিষেবাটি ডিফল্টরূপে অন্তর্ভুক্ত নয় তবে এর মাধ্যমে ইনস্টল করা যেতে পারে।

# yum update && yum install iptables-services

উভয় ডিমনগুলি সাধারণ সিস্টেমড কমান্ডের সাহায্যে বুট শুরু করতে সক্ষম করা যায়:

# systemctl start firewalld.service | iptables-service.service
# systemctl enable firewalld.service | iptables-service.service

আরও পড়ুন: সিস্টেমড পরিষেবাদি পরিচালনা করার জন্য দরকারী কমান্ডগুলি

কনফিগারেশন ফাইলগুলির ক্ষেত্রে, iptables পরিষেবা /etc/sysconfig/iptables ব্যবহার করে (যা আপনার সিস্টেমে প্যাকেজ ইনস্টল না করা থাকলে তা উপস্থিত থাকবে না)। ক্লাস্টার নোড হিসাবে ব্যবহৃত একটি RHEL 7 বাক্সে, এই ফাইলটি নীচের মত দেখাচ্ছে:

যেখানে ফায়ারওয়াল্ড দুটি কনফিগারেশন /usr/lib/firewalld এবং /ইত্যাদি/ফায়ারওয়াল্ড জুড়ে এটির কনফিগারেশন সংরক্ষণ করে:

# ls /usr/lib/firewalld /etc/firewalld

আমরা এখানে এবং সেখানে কয়েকটি নিয়ম যুক্ত করার পরে আমরা এই নিবন্ধে আরও পরে এই কনফিগারেশন ফাইলগুলি পরীক্ষা করব। এতক্ষণে এটি আপনাকে স্মরণ করিয়ে দেওয়ার পক্ষে যথেষ্ট হবে যে আপনি সর্বদা দুটি সরঞ্জামের সাথে আরও তথ্য সন্ধান করতে পারেন।

# man firewalld.conf
# man firewall-cmd
# man iptables

এগুলি ছাড়াও প্রয়োজনীয় কমান্ড ও সিস্টেম ডকুমেন্টেশন - বর্তমান সিরিজের প্রথম অংশের পর্যালোচনা একবার দেখে নিন, যেখানে আমি বেশ কয়েকটি উত্স বর্ণনা করেছি যেখানে আপনি আপনার RHEL 7 সিস্টেমে ইনস্টল হওয়া প্যাকেজগুলি সম্পর্কে তথ্য পেতে পারেন।

নেটওয়ার্ক ট্র্যাফিক নিয়ন্ত্রণ করতে Iptables ব্যবহার করা

আইপেটেবল ইন্টার্নালগুলি সম্পর্কে আরও এগিয়ে যাওয়ার আগে আপনার স্মৃতি সতেজ করার জন্য আপনি কনফিগার করতে পারেন ইপিটেবল ফায়ারওয়াল - লিনাক্স ফাউন্ডেশন সার্টিফাইড ইঞ্জিনিয়ার (এলএফসিই) সিরিজের অংশ 8 to সুতরাং, আমরা উদাহরণের মধ্যে ডান ঝাঁপ দিতে সক্ষম হবে।

টিসিপি পোর্টগুলি 80 এবং 443 অ্যাপাচি ওয়েব সার্ভার দ্বারা স্বাভাবিক (এইচটিটিপি) এবং নিরাপদ (এইচটিটিপিএস) ওয়েব ট্র্যাফিক হ্যান্ডেল করতে ব্যবহৃত ডিফল্ট পোর্ট। আপনি নিম্নলিখিতভাবে enp0s3 ইন্টারফেসে উভয় বন্দর দিয়ে আগত এবং বহির্গামী ওয়েব ট্র্যাফিকের অনুমতি দিতে পারেন:

# iptables -A INPUT -i enp0s3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -o enp0s3 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
# iptables -A INPUT -i enp0s3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -o enp0s3 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

এমন সময় থাকতে পারে যখন আপনাকে নির্দিষ্ট নেটওয়ার্ক থেকে শুরু করে সমস্ত (বা কিছু) ধরণের ট্র্যাফিক ব্লক করতে হবে, উদাহরণস্বরূপ 192.168.1.0/24 বলুন:

# iptables -I INPUT -s 192.168.1.0/24 -j DROP

192.168.1.0/24 নেটওয়ার্ক থেকে আসা সমস্ত প্যাকেজ ফেলে দেবে, যদিও,

# iptables -A INPUT -s 192.168.1.0/24 --dport 22 -j ACCEPT

শুধুমাত্র 22 বন্দর দিয়ে আগত ট্র্যাফিকের অনুমতি দেবে।

আপনি যদি নিজের আরএইচএল 7 বাক্সটি কেবল একটি সফটওয়্যার ফায়ারওয়াল হিসাবেই ব্যবহার করেন না, তবে আসল হার্ডওয়্যার-ভিত্তিক হিসাবেও ব্যবহার করেন, যাতে এটি দুটি স্বতন্ত্র নেটওয়ার্কের মধ্যে বসে থাকে, আইপি ফরোয়ার্ডিং অবশ্যই আপনার সিস্টেমে সক্ষম হয়ে থাকতে পারে। যদি তা না হয় তবে আপনার /etc/sysctl.conf সম্পাদনা করতে হবে এবং নেট.ipv4.ip_ এর মানকে 1 তে নির্ধারণ করতে হবে:

net.ipv4.ip_forward = 1

তারপরে পরিবর্তনটি সংরক্ষণ করুন, আপনার পাঠ্য সম্পাদকটি বন্ধ করুন এবং পরিশেষে পরিবর্তনটি প্রয়োগ করতে নিম্নলিখিত কমান্ডটি চালান:

# sysctl -p /etc/sysctl.conf

উদাহরণস্বরূপ, আপনার আইপি 192.168.0.10 এর সাথে একটি অভ্যন্তরীণ বাক্সে একটি প্রিন্টার ইনস্টল থাকতে পারে, সিপিএস পরিষেবাটি পোর্ট 1৩১ (প্রিন্ট সার্ভারে এবং আপনার ফায়ারওয়ালে উভয়) শুনছে with ফায়ারওয়ালের অন্য দিকে ক্লায়েন্টদের মুদ্রণ অনুরোধগুলি ফরোয়ার্ড করার জন্য, আপনাকে নিম্নলিখিত আইপটিবল বিধি যুক্ত করতে হবে:

# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 631 -j DNAT --to 192.168.0.10:631

দয়া করে মনে রাখবেন iptables এর নিয়মগুলি ক্রমানুসারে পড়ে, তাই নিশ্চিত হয়ে নিন যে ডিফল্ট নীতিগুলি বা পরবর্তী নিয়মগুলি উপরের উদাহরণগুলিতে বর্ণিত রূপগুলিকে ওভাররাইড করে না।

ফায়ারওয়াল্ড দিয়ে শুরু করা

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

সক্রিয় অঞ্চলগুলি তালিকাভুক্ত করতে:

# firewall-cmd --get-active-zones

নীচের উদাহরণে, সর্বজনীন অঞ্চলটি সক্রিয় রয়েছে, এবং enp0s3 ইন্টারফেসটি স্বয়ংক্রিয়ভাবে এটিকে নির্ধারিত করা হয়েছে। একটি নির্দিষ্ট অঞ্চল সম্পর্কে সমস্ত তথ্য দেখতে:

# firewall-cmd --zone=public --list-all

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

সমর্থিত পরিষেবাদির একটি তালিকা পেতে, ব্যবহার করুন।

# firewall-cmd --get-services

ফায়ারওয়ালের মাধ্যমে HTTP এবং https ওয়েব ট্র্যাফিকের অনুমতি দেওয়ার জন্য, অবিলম্বে এবং পরবর্তী বুটগুলিতে কার্যকর:

# firewall-cmd --zone=MyZone --add-service=http
# firewall-cmd --zone=MyZone --permanent --add-service=http
# firewall-cmd --zone=MyZone --add-service=https
# firewall-cmd --zone=MyZone --permanent --add-service=https
# firewall-cmd --reload

যদি কোড> –zone বাদ দেওয়া হয়, তবে ডিফল্ট অঞ্চল (আপনি ফায়ারওয়াল-সেমিডি –get-default- জোন দিয়ে পরীক্ষা করতে পারেন) ব্যবহৃত হয়।

নিয়মটি সরাতে উপরের কমান্ডগুলিতে অপসারণ যুক্ত শব্দটি প্রতিস্থাপন করুন।

প্রথমে, আপনার পছন্দসই জোনের জন্য মাস্ক্রেডিং সক্ষম করা হয়েছে কিনা তা খুঁজে বের করতে হবে:

# firewall-cmd --zone=MyZone --query-masquerade

নীচের চিত্রটিতে আমরা দেখতে পাচ্ছি যে বাহ্যিক অঞ্চলের জন্য মাস্ক্রেডিং সক্ষম করা হয়েছে তবে জনসাধারণের জন্য নয়:

আপনি হয় পাবলিকের জন্য মাস্ক্রেডিং সক্ষম করতে পারেন:

# firewall-cmd --zone=public --add-masquerade

বা বাহ্যিক ক্ষেত্রে মাস্ক্রেডিং ব্যবহার করুন। ফায়ারওয়াল্ডের সাথে উদাহরণ 3 নকল করতে আমরা এখানে যা করব:

# firewall-cmd --zone=external --add-forward-port=port=631:proto=tcp:toport=631:toaddr=192.168.0.10

এবং ফায়ারওয়াল পুনরায় লোড করতে ভুলবেন না।

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

আরও পড়ুন: RHEL 7 এ ফায়ারওয়াল কনফিগার করার জন্য দরকারী ফায়ারওয়ালডি উদাহরণ

উপসংহার

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