Sysctl.conf এবং sysctl.d সম্পর্কিত কার্নেল বিকল্পগুলির মানগুলি সন্ধান করা হচ্ছে


20

আমার উবুন্টু মেশিনে, /etc/sysctl.confফাইলটিতে, আমি বিপরীত পাথ ফিল্টারিংয়ের বিকল্পগুলি ডিফল্টরূপে মন্তব্য করেছি:

#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1

তবে /etc/sysctl.d/10-network-security.confসেগুলিতে (আবার পূর্বনির্ধারিতভাবে) কোনও মন্তব্য করা হয়নি:

net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1

তাহলে কি বিপরীত পাথ ফিল্টারিং সক্ষম হয়েছে নাকি? কনফিগারেশন অবস্থানগুলির মধ্যে কোনটি অগ্রাধিকার নেয়? এগুলি এবং অন্যান্য কার্নেল বিকল্পগুলির বর্তমান মানগুলি আমি কীভাবে পরীক্ষা করব?

উত্তর:


32

সিসেক্টল ভেরিয়েবলের মান পরীক্ষা করা তত সহজ

sysctl <variable name>

এবং, যাইহোক, একটি সিস্কটেল ভেরিয়েবল নির্ধারণ করা ঠিক তত সহজ

sudo sysctl -w <variable name>=<value>

তবে এইভাবে করা পরিবর্তনগুলি সম্ভবত কেবলমাত্র পরবর্তী রিবুট পর্যন্ত চলবে।

কনফিগার অবস্থানগুলির মধ্যে কোনটি, /etc/sysctl.confবা /etc/sysctl.d/, অগ্রাধিকার নেয়, এখানে /etc/sysctl.d/READMEফাইলটি কী বলে:

শেষ ব্যবহারকারীরা --০ - *। কনফিড এবং তার থেকে উপরে বা সরাসরি /etc/sysctl.conf ব্যবহার করতে পারেন যা এই ডিরেক্টরিতে যে কোনও কিছুকে ওভাররাইড করে

দুটি স্থানে যে কোনও একটিতে কনফিগারেশন সম্পাদনা করার পরে, পরিবর্তনগুলি প্রয়োগ করা যেতে পারে

sudo sysctl -p

এটি কি sysctl -eসম্পাদনা এবং sysctl -fকনফিগার সম্পাদন করার জন্য নয় ?
নীল


ডান - আশ্চর্যজনকভাবে উভয় বিকল্প কাজ করে।
নীল

2

এই ধরণের স্টাফ সাধারণত /procএবং / বা /sysকার্নেল ইন্টারফেসে থাকে (প্রথমে মনে রাখবেন যে ডিরেক্টরিগুলি কোনও নিয়মিত ডিস্ক ফাইল নয়, এগুলি কার্নেলের প্রত্যক্ষ লাইন)।

সুতরাং, যেমন:

»for x in /proc/sys/net/ipv4/conf/*/rp_filter; do echo -ne "$x "`cat $x`"\n"; done
/proc/sys/net/ipv4/conf/all/rp_filter 0
/proc/sys/net/ipv4/conf/default/rp_filter 1
/proc/sys/net/ipv4/conf/em1/rp_filter 1
/proc/sys/net/ipv4/conf/lo/rp_filter 0
/proc/sys/net/ipv4/conf/wlan0/rp_filter 1

দেখে মনে হচ্ছে আমার কাছে em1, wlan0 এবং "ডিফল্ট" এর জন্য rp_filter সেট আছে। আপনি কেবল ফাইল হ্যান্ডেলটিতে লিখে সেট বা আনসেট করতে পারেন:

»cd /proc/sys/net/ipv4/conf/lo
»echo 1 > rp_filter
»cat rp_filter
1
»echo 0 > rp_filter
»cat rp_filter
0

যেমনটি উল্লেখ করা হয়েছে, এটি কার্নেলের সাথে সরাসরি যোগাযোগ, যাতে তাৎক্ষণিকভাবে কার্যকর হয়। এই নয় কনফিগারেশন ফাইল। যদি আপনি চেষ্টা করে কিছু ভুল করেন:

»echo whatever > rp_filter
bash: echo: write error: Invalid argument

কোনটি আপনি অবশ্যই এইভাবে জিনিসগুলি স্ক্রু করতে পারবেন না তা নয়। এবং নীচের মন্তব্য পড়তে ভুলবেন না।


আমি বরং কনফিগারেশন ফাইলগুলিতে আটকে থাকব কারণ এইভাবে আমি আমার পছন্দসই কনফিগারেশনের কয়েক ডজন লাইনকে একটি সরল পাঠ্য ফাইলটিতে রাখতে পারি এবং যখন প্রয়োজন হয় তখন সেগুলির পুনরায় ব্যবহার করতে পারি। এই উদ্দেশ্যে স্ক্রিপ্ট লেখা একটি অপ্রয়োজনীয় জটিলতার মতো মনে হয়। তবে বর্তমান মানগুলি যাচাই করার জন্য একটি পদ্ধতিতে তথ্যের জন্য ধন্যবাদ।
ডেসমন্ড হিউম

অবশ্যই কনফিগার ফাইল ব্যবহার করা আরও ভাল। আমি আপনাকে কোনও স্ক্রিপ্ট লেখার পরামর্শ দিচ্ছিলাম না, কেবল এটি চিত্রিত করে যে সেগুলি কেবল "পঠনযোগ্য" মান নয় এবং ম্যানুয়াল টুইটগুলি করতে ব্যবহার করা যেতে পারে। ;)
সোনারলকস

1
সেই শেল স্ক্রিপ্টটি আবার লেখার জন্য একটি আকর্ষণীয় উপায় sysctl -a...
ডার্বার্ট

সত্য, তবে (আপনার ফাইল ব্রাউজারের প্রকৃতির উপর নির্ভর করে) প্রোক / সিস ব্যবহার করা আরও সুবিধাজনক হিসাবে বিবেচিত হতে পারে, এটির কারণগুলি এটি জানার জন্য গুরুত্বপূর্ণ। আর একটি হ'ল ডাব্লুআরটি প্রোগ্রামের মাধ্যমে তথ্য পাওয়ার জন্য, সেই ইন্টারফেসটি পাইপযুক্ত "সিস্টেম (সিস্টেস্টেল)" টাইপ স্টাফের চেয়ে আরও দক্ষ এবং ভাষা, উপলভ্য ইত্যাদি ইত্যাদি নির্বিশেষে কাজ করে
গোল্ডলোকস

1
আপনি প্রোগ্রামামের দ্বারা আমি যা বোঝাচ্ছি তা ভুল বুঝেছেন , সম্ভবত আমার পরিষ্কার করা দরকার: আমি শেল স্ক্রিপ্টগুলি বোঝাতে চাইনি। sysctl(দেখুন man 2 sysctl) এর নেটিভ সি সমতুল্য রয়েছে , তবে এটি অন্যান্য বেশিরভাগ ভাষায় পোর্ট করা হয় না (এটি কিছু ক্ষেত্রে রয়েছে), এবং এই ক্ষেত্রে প্রোককে পড়তে বা লিখতে ভাল বিকল্প is এটি বাশ এর echoব্যর্থ হতে পারে, আমি যেমন বলতে পারি যে সি এবং অন্যান্য ভাষায় উপলব্ধ উচ্চ স্তরের আই / ও ফাংশনগুলি পারে। নিম্ন স্তরের পড়া / লেখাগুলি অবশ্য হবে না। যাই হোক না কেন, প্রোক ইন্টারফেস সম্পর্কে জেনে রাখা গুরুত্বপূর্ণ, এ কারণেই আমি এটি নিয়ে এসেছি ...
গোল্ডিলকস

0

গৃহীত উত্তরটি সম্পূর্ণ করার জন্য , যদিও এটি সত্য যে /etc/sysctl.confসেটিংসের মধ্যে যেগুলি রয়েছে তার চেয়ে বেশি অগ্রাধিকার রয়েছে /etc/sysctl.d/, মূল প্রশ্নে উদ্ভাসিত উদাহরণটি দুটিটিতে ভেরিয়েবলকে মন্তব্য করেছে /etc/sysctl.conf:

#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1

এবং একই ভেরিয়েবলগুলিতে মন্তব্য করা হয়নি /etc/sysctl.d/10-network-security.conf:

net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1

কারণ একটি মন্তব্য এটি বিভ্রান্তিকর হতে পারে না একটি সেটিং, কিন্তু শুধুমাত্র একটি মন্তব্য কি একটি সেটিং হতে পারে।

এই পরিস্থিতিতে, ভেরিয়েবলগুলি উভয়ই 1 তে সেট করা থাকে, তবুও শক্তিশালী কনফিগারেশন ফাইলে তারা মন্তব্য করে চলেছে।

যদি /etc/sysctl.confআমাদের ছিল:

net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0

তারপরে ভেরিয়েবলগুলি শেষ পর্যন্ত 0 তে সেট করা হবে।

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