আমি কীভাবে নির্দিষ্ট আইপিসকে অনুমতি দেব এবং আইপিটিবেলে সমস্ত অন্যান্য সংযোগ ব্লক করব?
আমি কীভাবে নির্দিষ্ট আইপিসকে অনুমতি দেব এবং আইপিটিবেলে সমস্ত অন্যান্য সংযোগ ব্লক করব?
উত্তর:
আমি ডেস্কটপ ব্যবহারকারীর জন্য প্রাথমিক Iptables নিয়মে একটি ব্লগ পোস্ট অনেক আগে লিখেছিলাম এবং আপনার সম্ভবত এটি পড়া উচিত, এবং স্টেটফুল ফায়ারওয়াল ডিজাইনের সাথে সম্পর্কিত লিঙ্কটি । তবে প্রাক কার্নেল ২.6.৩৯ (এতে অন্তর্ভুক্ত রয়েছে ipset
এবং আপনি যদি হোয়াইটলিস্টে 10 এর বেশি থাকতে পারেন (যেখানে 10 নির্বিচারে থাকে) তবে আপনি এটি ব্যবহার করতে পারেন আইপি'র সাদা অংশীদারি করার জন্য।
প্রথম হ্যান্ডেল রাষ্ট্রটির যা আমরা জানি আমরা গ্রহণ করতে বা ছাড়তে চাই এবং ইন্টারফেসগুলি।
iptables -P FORWARD DROP # we aren't a router
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP # Drop everything we don't accept
আপনি যদি কেবল রাষ্ট্র ব্যতীত কেবল আইপি দ্বারা অনুমতি করতে চান
iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP
আপনি যদিও এটি করতে সমস্যা হতে চলেছেন এবং আমি আপনার জীবনকে আরও সহজ করার জন্য রাষ্ট্রকে ব্যবহার করার পরামর্শ দিচ্ছি। উদাহরণস্বরূপ, অনুমতি না দেওয়া -i lo
এবং -o lo
অবশ্যই কিছু অ্যাপ্লিকেশনগুলির জন্য সমস্যা সৃষ্টি করবে।
iptables -F
এটি সমস্ত নিয়ম মুছে
এখানে একটি (অনির্ধারিত!) উদাহরণ রয়েছে যা কেবলমাত্র আগত সংযোগগুলি অবরুদ্ধ করে । লুপব্যাক ইন্টারফেসের মাধ্যমে 192.168.3.x, আইসিএমপি, বা এসএসএইচ বন্দরের সাথে সংযোগগুলি অনুমোদিত। অন্যান্য সমস্ত সংযোগ প্রত্যাখ্যান করা হয়।
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.3.0/24 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT
lo
উপরের উদাহরণে রাষ্ট্রের মিল থেকে বাদ দেওয়া হয়েছে এবং সর্বদা অনুমোদিত।
নীচের নিয়মটি কেবলমাত্র আপনার আইপিটিকে অনুমতি দেবে এবং 22 বা ssh বন্দর দিয়ে অন্য সমস্ত আইপি ব্লক করবে। সংযোগ বিচ্ছিন্ন করার আগে একটি নতুন টার্মিনাল দিয়ে পরীক্ষা করুন।
iptables -I INPUT -p tcp ! -s yourIPaddress --dport 22 -j DROP
yourIPaddress
আমি কয়েকটি আইপি ঠিকানা এবং ব্যাপ্তি যুক্ত করতে পারি? এবং যদি আমি 2888 এর মতো একটি অ-মানক পোর্টে এসএসএইচ ব্যবহার করি, তবে কমান্ডটি 22
আপনার উদাহরণটিতে পরিবর্তন করবে 2288
? এছাড়াও, এটি অনুমোদিত আইটেমগুলি বাদ দিয়ে সমস্ত আইপি থেকে এই সার্ভারে আরএসসিএন, এসএফটিপি ইত্যাদি ব্লক করবে?
-p tcp
এখানে গুরুত্বপূর্ণ কারণ --dport
এটি ছাড়া কাজ করে না। আমি এর -j REJECT
পরিবর্তে ব্যবহারের পরামর্শ দেব DROP
কারণ REJECT
বন্দরটি বন্ধ বন্দরের সাথে DROP
সাদৃশ্যযুক্ত করে এবং প্যাকেটগুলি কালো বন্দরে বন্দী করে রাখে । অনুশীলনে, রিমোট আক্রমণকারী DROP
প্রকৃত বন্ধ বন্দরগুলি থেকে কনফিগার করা পোর্টগুলি সনাক্ত করতে পারে ।
এখানে পুরো কাজের উদাহরণ।
অ্যাপ্লিকেশনগুলিকেও কাজ করে তোলে (পুনরায়: কীপাস সম্পর্কে আমার মন্তব্য শুরু হচ্ছে না)