সমস্ত iptables নিয়ম সাফ করার সেরা উপায়


83

আমার কাছে বর্তমানে এই স্নিপেট রয়েছে:

# flush all chains
iptables -F
iptables -t nat -F
iptables -t mangle -F
# delete all chains
iptables -X

এটিকে চালানোর পরে কিছু অভদ্র নিয়ম বেঁচে থাকার কি কোনও সম্ভাবনা আছে?

ধারণাটি হ'ল একটি সম্পূর্ণ ক্লিন আইপটিবল কনফিগারেশন রয়েছে যা সহজেই নতুন রুলসেট (মাইন্ডমাইন্ড রুটস / ইফকনফিগের প্যারামিটার) দ্বারা প্রতিস্থাপন করা যায়।

উত্তর:


107

আপনার প্রশ্নের সুনির্দিষ্টভাবে উত্তর দেওয়ার জন্য, না: প্রতিটি টেবিল ফ্লাশ করার পরে কোনও "অবশিষ্ট" নিয়ম থাকবে না। পুঙ্খানুপুঙ্খভাবে হওয়ার স্বার্থে, আপনি বিল্ট-ইন INPUTএবং FORWARDচেইনগুলির জন্যও নীতি সেট করতে চাইতে পারেন ACCEPT:

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X

Ip6tables বিধি সাফ করুন:

ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -t nat -F
ip6tables -t mangle -F
ip6tables -F
ip6tables -X

... এবং এটি করা উচিত। iptables -nvLএই (বা খুব অনুরূপ) আউটপুট উত্পাদন করা উচিত :

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

9
আপনি 'কাঁচা' সম্পর্কে ভুলে গেছেন: iptables -t কাঁচা -F iptables -t কাঁচা
— -এক্স

there would not be any "leftover" rules after flushing every tableওপি প্রতিটি টেবিল ফ্লাশ করে না । তন্ন তন্ন আপনি না. আপনি যদি পুরোপুরি হতে চান তবে দেখতে এটির মতো দেখাচ্ছে । এবং আপনি যোগ করতে চাইতে পারেন iptables -t "$table" -Z। মনে রাখবেন যে এইভাবে আপনি টেবিলগুলি এবং তাদের চেইনের তালিকাটি হার্ডকোড করছেন। সুতরাং আমি সংরক্ষণ-পুনরুদ্ধার সমাধান গুরুত্ব সহকারে বিবেচনা করব । অথবা আপনি কেবল iptables আনলোড করতে পারেন ।
— এক্স-ইউরি

23

এটি সম্পূর্ণরূপে আপনার iptables সিস্টেমটিকে খুব প্রাথমিক অবস্থায় পুনরায় সেট করবে:

iptables-save | awk '/^[*]/ { print $1 } 
                     /^:[A-Z]+ [^-]/ { print $1 " ACCEPT" ; }
                     /COMMIT/ { print $0; }' | iptables-restore

সমস্ত নীতিগুলি এসিসিপিটিতে পুনরায় সেট করার পাশাপাশি বর্তমান ব্যবহারের প্রতিটি টেবিল ফ্লাশ করবে। অন্তর্নির্মিত চেইন ব্যতীত অন্য সমস্ত চেইনের আর অস্তিত্ব থাকবে না।


1
ঝরঝরে হ্যাক! যদিও আমি এটির উপর নির্ভর করব না, যেহেতু এটি সর্বদা সম্ভব যে সংরক্ষণ / পুনরুদ্ধার ফর্ম্যাটে সূক্ষ্ম পরিবর্তনগুলি এটি ভেঙে যেতে পারে। iptablesসরঞ্জামটি স্পষ্টতই সরবরাহ করে এমন আইপিও, আইপিওতে লেগে থাকা সম্ভবত সেরা ।
— স্টিভেন সোমবার

3
আমি আমার মন পরিবর্তন করেছি: ডেটা ফর্ম্যাটটি এত বেশি পরিবর্তিত হওয়ার সম্ভাবনা নেই, কারণ এটি এত ব্যাপকভাবে ব্যবহৃত হয়েছে। +1 টি।
— স্টিভেন সোমবার

2
+1, আকর্ষণীয় হ্যাক
— স্যাম হালিক

এটি অবশিষ্ট ইউএফডাব্লু চেইনগুলি থেকে মুক্তি পেতে পরিচালিত হয়েছে, এমন কিছু যা গ্রহণযোগ্য উত্তর দেয় নি।
— l0b0

এটা একটা ছোটখাট বিস্তারিত, কিন্তু আপনাকে প্রথমে প্রতিস্থাপন করতে চান পারে print $1সঙ্গে print $0সামঞ্জস্যপূর্ণ হতে :)
— এক্স-ইউরি

2

আমার যখনই ফায়ারওয়াল অক্ষম করা দরকার তখন এমন কিছু হয়:

  • iptables-save > iptables.bak
  • service iptables stop (আমি ফেডোরায় আছি)

1

আপনি কেবল iptablesকার্নেল থেকে মডিউলগুলি আনলোড করতে পারেন :

modprobe -r iptable_raw iptable_mangle iptable_security iptable_nat iptable_filter

দুর্ভাগ্যক্রমে, ইউপিডি সত্য হতে পারে না। যতক্ষণ না কোনও সারণীতে কোনও নিয়ম বা ব্যবহারকারী-সংজ্ঞায়িত চেইন থাকে, ততক্ষণ মডিউলটির রেফারেন্স গণনা 1 হয় এবং modprobe -rব্যর্থ হয়। আপনি এর মতো নিয়ম এবং ব্যবহারকারী-সংজ্ঞায়িত চেইনগুলি মুছতে পারেন:

echo $'*raw\nCOMMIT\n*mangle\nCOMMIT\n*security\nCOMMIT\n*nat\nCOMMIT\n*filter\nCOMMIT' | iptables-restore

বা:

iptables-save | awk '/^[*]/ { print $1 "\nCOMMIT" }' | iptables-restore

এছাড়াও, আপনি এইভাবে মডিউলগুলি আনলোড করতে চাইতে পারেন (কোনও হার্ডকডিং মডিউল নাম নেই):

lsmod | egrep ^iptable_ | awk '{print $1}' | xargs -rd\\n modprobe -r

উজ্জ্বল দিকে, এর পরে এটি দুর্দান্ত iptables-saveখালি আউটপুট উত্পাদন করে :)


এটি এখানে হাতুড়ি হতে পারে। ধন্যবাদ.
— কনরাড গাজেউস্কি

0

1 বা 2 কমান্ডের মাধ্যমে কেউ এটি করতে পারে:

 $ sudo iptables-save > iptables.bak
 $ sudo iptables -F

ফলাফল:

$ sudo iptables -nvL
Chain INPUT (policy ACCEPT 3138 packets, 5567K bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 3602 packets, 6547K bytes)
pkts bytes target     prot opt in     out     source               destination         

5
যদি ডিফল্ট নীতিগুলি বর্তমানে ডিআরপি-তে সেট করা থাকে তবে সার্ভার থেকে লক হয়ে যাওয়ার এটি একটি দ্রুত উপায়। সুতরাং, না, এটি 1 বা 2 কমান্ড প্রক্রিয়া নয়। এটি বর্তমানে না থাকলে আপনাকে প্রথমে এসিসিপিটিতে সেট করতে হবে।
— RyanH

0

আমি যা করতে শেষ করেছি তা সম্প্রতি আমার সমস্ত সংযোগগুলি ব্লক করতে হয়েছিল

iptables-policy INPUT DROP
iptables-policy OUTPUT DROP
iptables-policy FORWARD DROP

সংরক্ষণ হিসাবে হিসাবে আমি নিম্নলিখিত সুপারিশ করব

উবুন্টু:

/etc/init.d/iptables save
/sbin/service iptables save

তাহলে RedHat / সেন্টওএস:

/etc/init.d/iptables save
/sbin/iptables-save

অতীতে ব্যবহৃত সমস্ত বর্তমান ufw বিধি ব্যাকআপ ছাড়াও

cp /lib/ufw/{user.rules,user6.rules} /<BACKUP LOCATION> 
cp /lib/ufw/{user.rules,user6.rules} ./

আমি মনে করি এটি ভবিষ্যতের রেফারেন্সের জন্য দরকারী হতে পারে। ভেবেছিলাম ভাগ করে নেব।


0

Iptables_backup.conf এ ব্যাকআপ কনফিগারেশন এবং সমস্ত নিয়ম পরিষ্কার করুন।

iptables-save | tee iptables_backup.conf | grep -v '\-A' | iptables-restore

পূর্ববর্তী কনফিগারেশন পুনরুদ্ধার করতে:

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