উভয় সার্ভার এবং ক্লায়েন্টের জন্য নিষিদ্ধ INPUT
এবং উন্মুক্ত OUTPUT
, যেমন:
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
এবং সক্রিয় মোডে এফটিপি -র উদাহরণ দিয়ে iptables- এক্সটেনশনগুলি (8) থেকে :
1. নতুন
নতুন প্যাকেটটি একটি নতুন সংযোগ শুরু করেছে বা অন্যথায় এমন সংযোগের সাথে যুক্ত যা উভয় দিকের প্যাকেট দেখেনি।
পোর্টে থাকা ক্লায়েন্ট 50000
(যে কোনও র্যান্ডম অপ্রাইভাইল্ড পোর্ট) পোর্টের এফটিপি সার্ভারের সাথে সংযোগ স্থাপন করে 21
, ইনকামিং সংযোগটি গ্রহণ করতে সার্ভারকে কমপক্ষে এটির প্রয়োজন হবে:
iptables -A INPUT --dport 21 -m state --state NEW -j ACCEPT
2. প্রতিষ্ঠিত
প্রতিষ্ঠিত প্যাকেটটি এমন সংযোগের সাথে সম্পর্কিত যা উভয় দিকের প্যাকেট দেখেছিল।
এখন ক্লায়েন্ট সাইড উপর, তিনি একজন বিদায়ী পোর্টে সার্ভারের সাথে সংযোগ খোলা 21
একটি স্থানীয় পোর্ট ব্যবহার করে 50000
এবং তিনি নিম্নলিখিত iptables- র প্রয়োজন থেকে পৌঁছা প্রতিক্রিয়ায় করার অনুমতি server (21)
থেকে client (50000)
:
sudo iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
3. সম্পর্কিত
সম্পর্কিত প্যাকেটটি একটি নতুন সংযোগ শুরু করছে, তবে এটি একটি বিদ্যমান সংযোগের সাথে সম্পর্কিত, যেমন একটি এফটিপি ডেটা স্থানান্তর বা আইসিএমপি ত্রুটি।
এখন এফটিপি সংযোগ স্থাপনের পরে এবং একটি ডেটা সংযোগ সম্পন্ন হওয়ার পরে, ক্লায়েন্টটি একটি সার্ভার সকেট খুলবে (হ্যাঁ, সক্রিয় এফটিপি ক্লায়েন্ট ডেটা সংযোগের জন্য একটি সার্ভার হয়ে যায়) 60000
আমার বুদ্ধিমান ক্লায়েন্টের কাছে এই পোর্টটিকে চিহ্নিত করবে থেকে অন্য সংযোগ 60000
হিসাবে ) এবং এফটিপি কমান্ড ব্যবহার করে এই পোর্ট নম্বরটি সার্ভারে প্রেরণ করবে । তারপরে এফটিপি সার্ভারটি তার বন্দর থেকে ক্লায়েন্টের পোর্টে একটি নতুন সংযোগ খুলবে এবং ভাল, ক্লায়েন্টকে এখন এই নতুন সংযোগটি সফল হওয়ার জন্য নিম্নলিখিতগুলির প্রয়োজন:RELATED
50000->21
PORT
20
60000
sudo iptables -A INPUT -m state --state RELATED -j ACCEPT
পরিশেষে, এটি কাজ ip_conntrack_ftp
করার জন্য আপনার সিস্টেমকে সংযোগ / প্যাকেজগুলি চিহ্নিত করার জন্য কার্নেল মডিউল সক্ষম করতে হবে RELATED
(এটি আমার বোঝার বিষয়, আমি এটি খুব বেশি খনন করি নি):
modprobe ip_conntrack_ftp