সমস্ত 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.