আমার পরিবর্তনগুলি সংরক্ষণ করার জন্য কেন ইপটেবলগুলি অবিরাম পরিষেবা দিচ্ছে না?


18

আমি এই টিউটোরিয়ালটি অনুসরণ করেছি ওবুন্টু 12.04 এ আইপি বিধিগুলি সেট আপ করতে। সেটআপে সবকিছু ঠিকঠাক কাজ করেছিল - তবে এখন আমি ফায়ারওয়ালে পরিবর্তন করেছি যা পুনরায় বুট করার পরেও অজানা থাকে। আমি কেন বুঝতে পারছি না। এখানে আমি কীভাবে iptables-persistance ব্যবহার করছি তার একটি প্রদর্শন রয়েছে। আমি কি ভুল করছি?

$ sudo service iptables-persistent start
 * Loading iptables rules...                                                                                             *  IPv4...                                                                                                              *  IPv6...   

$ sudo iptables -L   //shows a certain rule
$ iptables -D INPUT ... //command successfully drops the rule
$ sudo iptables -L   //shows rule has been deleted

 $ sudo service iptables-persistent restart
 * Loading iptables rules...                                                                                             *  IPv4...                                                                                                              *  IPv6...                                                                                                      [ OK ] 
 $ sudo iptables -L  //rule is back

আমি iptables -D INPUTনিয়মটি লক্ষ্য করছি না এটি sudoকি নিশ্চিত যে এটি আসলে একটি সাফল্যের খবর দিচ্ছে? আচরণটি যদি আপনি এটির মধ্যে চালিত করেন তবে কি পরিবর্তন হয় sudo?
ব্র্যাচলে

উত্তর:


41

iptables-persistentযেভাবে কাজ করে না। iptables-persistent"পরিষেবা" পুনরায় চালু করা iptables এর বর্তমান অবস্থা ক্যাপচার করে না এবং সংরক্ষণ করে না; এটি যা করে তা হ'ল iptables নিয়মগুলি পুনঃস্থাপন করা যা প্যাকেজটি শেষবার কনফিগার করা হয়েছিল।

কনফিগার করার জন্য iptables-persistent, আপনাকে এটি আপনার বর্তমান iptables রুলসেট সম্পর্কে বলতে হবে।

এটি সম্পাদন করার একটি উপায় নিম্নরূপ:

iptables-save >/etc/iptables/rules.v4
ip6tables-save >/etc/iptables/rules.v6

অথবা, সমতুল্য, iptables-persistentপ্যাকেজটি নিম্নলিখিতগুলি সরবরাহ করে:

dpkg-reconfigure iptables-persistent

(নিয়ম সংরক্ষণ করতে হবে কিনা সে সম্পর্কে আপনার প্রশ্নের উত্তর হ্যাঁ দেওয়া দরকার))

এরপরে, পরের বার iptables-persistentশুরু / পুনঃসূচনা হবে, iptables রোলসেটগুলি আপনি প্রত্যাশা করেছেন লোড হবে।


9

বর্তমান iptables নিয়মগুলি সংরক্ষণ করার খুব সহজ উপায় হ'ল কমান্ডটি ব্যবহার করা:

sudo service netfilter-persistent save

উপরেরটি ব্যবহার করে, যা netfilter-persistent(এবং iptables-persistent) প্যাকেজ ইনস্টল করার পরে কমপক্ষে উবুন্টুতে কাজ করে , iptables কমান্ডগুলি ম্যানুয়ালি চালানোর দরকার নেই বা প্যাকেজটি পুনরায় কনফিগার করার প্রয়োজন নেই (উপরের স্বীকৃত উত্তর দ্বারাও প্রস্তাবিত)।


এটা sudo service netfilter-persistent saveনাকি sudo service netfilter-persistent save .? (শেষে বিন্দু।)

এটি লক্ষ করার জন্য ধন্যবাদ, সঠিক কমান্ডটি লাইনের শেষে ডব্লু / ও ডট হয়। সেই অনুযায়ী উত্তরটি সংশোধন করেছেন।
ওপেনটিক্স

3
$ iptables ... DROP //command successfully drops the rule
$ sudo iptables -L   //shows rule has been deleted

এর DROPঅর্থ বা কী তা নয় । থেকে man iptables:

... বিশেষ মানগুলি স্বীকার করুন, ড্রপ, কোয়ে বা প্রত্যাবর্তন। এসিসিপিটি অর্থ প্যাকেটটি দিয়ে দেওয়া। DROP এর অর্থ প্যাকেটটি মেঝেতে ফেলে দেওয়া। ক্যু মানে ...

সুতরাং আপনি যা করেছেন তা একটি নতুন নিয়ম যুক্ত করুন। এটি কার্যকরভাবে অন্যান্য যে কোনও নিয়মকে ছাড়িয়ে যেতে পারে, কিন্তু এই বিধিগুলি এখনও বিদ্যমান।

এই জাতীয় জিনিসগুলি পরীক্ষা করার সময় (আপনার iptables -Lআউটপুট), আমি grep "string unique to this rule"আপনার চোখ ব্যবহার না করেই এটি খাওয়াত । এটি করা সহজ এবং দ্রুত এবং কম ত্রুটির প্রবণ।

iptables -L | grep "some unique string"

আপনি যদি কোনও নিয়ম মুছতে চান তবে -Dস্যুইচটি ব্যবহার করুন ; ম্যান পৃষ্ঠাটি এর দুটি রূপ বর্ণনা করে:

-ডি, --ডিলেট চেইন রুল-স্পেসিফিকেশন

-ড, - ডিলিট চেইন রজননাম

নির্বাচিত চেইন থেকে এক বা একাধিক নিয়ম মুছুন। এই কমান্ডের দুটি সংস্করণ রয়েছে: শৃঙ্খলে একটি সংখ্যা হিসাবে নিয়মটি নির্দিষ্ট করা যেতে পারে (প্রথম নিয়মের জন্য 1 থেকে শুরু) বা মিলের নিয়ম।


দুঃখিত যে অস্পষ্ট ছিল। একটি নিয়ম DROP করতে আমি -D বিকল্পটি ব্যবহার করছি। উপরের পরিবর্তনটি দেখুন
bernie2436

3
-Dহ'ল "মুছে ফেলুন" নয় "ড্রপ" শব্দটির অর্থ "ড্রপ" শব্দটি ব্যবহার করা লাফ লক্ষ্য ব্যতীত অন্য কিছু বোঝার জন্য যখন iptablesনরক হিসাবে বিভ্রান্তিকর হয়।
ব্র্যাচলে

1

@ স্টিভেন-সোমবার দ্বারা ব্যাখ্যা হিসাবে , আপনি নিজের দ্বারা নির্ধারিত নিয়মটি যথাযথ ডিরেক্টরিতে (যথা /etc/iptables/rules.v{4,6}:) সংরক্ষণ করতে পারেন ।

তবে, @ ওপেনআইটেক্স সঠিক: এর saveক্রিয়াটি কল service netfilter-persistentকরা ভাল।

(18.10) এর নিচে iptables- র সংরক্ষণ builtin করা হয়, কিন্তু iptables-persistentকরা হয় না ইনস্টল করা নেই। সুতরাং, দ্বারা প্লাগ ইন করা ডিরেক্টরিটি service netfilter-persistentখালি এবং পরিষেবাটি প্রিন্ট করে যে রুলসেটটি সংরক্ষণ করা হয়েছে, যদিও এটি ছিল না।

টিএলডিআর: ইনস্টল করে দেখুন iptables-persistentএবং দেখুন যে প্লাগইন ডিরেক্টরিতে প্লাগইন /usr/share/netfilter-persistent/plugins.dরয়েছে।


এখানে আমি বুঝতে পেরেছি যে:

$ cat /etc/init.d/netfilter-persistent 
...
case "$1" in
...
save)
    log_action_begin_msg "Saving netfilter rules"
    /usr/sbin/netfilter-persistent save
    log_action_end_msg $?
    ;;

তারপরে /usr/sbin/netfilter-persistentস্ক্রিপ্টটি পরীক্ষা করুন , লক্ষ্য করুন এটি বাহ্যিক স্ক্রিপ্টগুলি আহ্বান করে:

$ cat /usr/sbin/netfilter-persistent
...
PLUGINS=/usr/share/netfilter-persistent/plugins.d
...
run_plugins () {
    if [ -d ${PLUGINS} ]; then
        run-parts -v -a ${1} ${PLUGINS}
    fi
}

case $1 in
start|save|flush)
    run_plugins ${1}
    ;;

তখন আমি লক্ষ্য করলাম যে /usr/share/netfilter-persistent/plugins.dখালি ছিল।


1

ইনস্টল করুন iptables- স্থির:

sudo apt install iptables-persistent

পছন্দসই পরিবর্তনগুলি করার পরে নিয়মগুলি সংরক্ষণ করুন:

sudo netfilter-persistent save
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.