এই পোস্টটি নেটওয়ার্কগুলি কীভাবে কাজ করে এবং কীভাবে আমাদের লিনাক্স সরঞ্জামগুলিকে একটি রাউটারে রূপান্তর করতে পারে সে সম্পর্কে একটু স্পষ্ট করার চেষ্টা করে যা বাড়িতে বা এমনকি ব্যবসায়িক ক্ষেত্রেই কিছুটা বেশি আমাদের নেটওয়ার্ককে নিশ্চিত করে। সুতরাং আসুন ব্যবসায় নেমে যাক:
রাউটিং এবং ফিল্টারিং
রাউটিং সম্পর্কে কথা বলতে ও বোঝার জন্য আমরা প্রথমে সংজ্ঞায়িত করতে পারি যে রাউটারটির কাজটি কী? এর জন্য আমরা বলতে পারি যে একটি রাউটার, একটি নেটওয়ার্ক তৈরি করা এবং অন্যান্য সরঞ্জামের সাথে সংযোগ দেওয়ার পাশাপাশি (আমরা এপি, স্যুইচ, হাব বা অন্যদের সাথে এটি করতে পারি তা জেনে) দুটি পৃথক নেটওয়ার্ক একে অপরের সাথে সংযোগ স্থাপন করার ক্ষমতা রাখে।
আমরা ছবিটিতে দেখতে পাচ্ছি, এখানে একটি স্থানীয় নেটওয়ার্ক "10.0.1.0" রয়েছে যা রাউটার দ্বারা তৈরি হয়েছিল এবং এর দুটি ইন্টারফেসের একটিতে পৌঁছেছে। তারপরে তার অন্যান্য ইন্টারফেসের রাউটারটিতে একটি অন্য নেটওয়ার্ক রয়েছে, এর সার্বজনীন আইপি যা এটি ইন্টারনেটে সংযোগ করতে পারে। রাউটিং ফাংশনটি মূলত এই দুটি নেটওয়ার্কের মধ্যে মধ্যস্থতার কাজ করা যাতে তারা যোগাযোগ করতে পারে।
রাউটার হিসাবে লিনাক্স।
স্বাভাবিকভাবেই, লিনাক্স কার্নেলের ইতিমধ্যে "ফরোয়ার্ডিং" করার ক্ষমতা রয়েছে তবে ডিফল্টরূপে এটি অক্ষম করা আছে, সুতরাং আমরা যদি আমাদের লিনাক্সকে এই কাজটি করতে চাই তবে আমাদের অবশ্যই ফাইলটিতে যেতে হবে।
/proc/sys/net/ipv4/ip_forward
সেখানে আমরা দেখতে পাব যে এটি এমন একটি ফাইল যা কেবল একটি শূন্য "0" ধারণ করে, আমাদের যা করা উচিত তা হ'ল এই আচরণটি সক্রিয় করতে এটি "1" এ পরিবর্তন করা। দুর্ভাগ্যক্রমে এটি মুছে ফেলা হয় যখন আমরা কম্পিউটারটি পুনরায় চালু করি, এটি ডিফল্টরূপে সক্রিয় রাখতে আমাদের কমান্ডটি ব্যবহার করতে হবে:
sysctl net.ipv4.ip_forward=1
অথবা সরাসরি ফাইলটিতে এটি সম্পাদনা করুন /etc/sysctl.conf। বিতরণের উপর নির্ভর করে এই কনফিগারেশনটি কোনও ফাইলের মধ্যেও থাকতে পারে /etc/sysctl.d/।
ডিফল্টরূপে আমাদের লিনাক্সের একটি রাউটিং টেবিল থাকতে হবে যা সাধারণত আমাদের ল্যান নেটওয়ার্কের কনফিগারেশন এবং রাউটারের সাথে সংযোগ। আমরা যদি এই রাউটিংটি দেখতে চাই তবে আমরা দুটি কমান্ড ব্যবহার করতে পারি:
route -n
o
netstat -nr
উভয় কমান্ড একই হওয়া উচিত।
সাধারণভাবে, আপনার লিনাক্সের গেটওয়ে হিসাবে পরিবেশন করার জন্য এই কনফিগারেশনটি যথেষ্ট এবং অন্যান্য কম্পিউটারগুলি আমাদের কম্পিউটারের মাধ্যমে চলাচল করতে পারে। এখন, আমরা যদি আমাদের লিনাক্সগুলিকে স্থানীয় বা না হয়, দুটি বা ততোধিক নেটওয়ার্ক সংযুক্ত করতে চাই, উদাহরণস্বরূপ, আমরা স্থির রুটগুলি ব্যবহার করতে পারি।
ধরুন আমার লিনাক্সের দুটি নেটওয়ার্ক ইন্টারফেস রয়েছে, প্রথমটির একটিতে ইন্টারনেট সংযোগ রয়েছে যার নেটওয়ার্কটি 172.26.0.0 এবং দ্বিতীয়টির (10.0.0.0) অন্য স্থানীয় নেটওয়ার্ক থেকে কিছু কম্পিউটার রয়েছে। আমরা যদি সেই অন্যান্য নেটওয়ার্কে প্যাকেটগুলি রুট করতে চাই তবে আমরা এটি ব্যবহার করতে পারি:
route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.26.0.8
সাধারণভাবে এটি হ'ল:
route add -net REDDESTINO netmask MASCARA gw IPDELLINUX
যদি আমরা দিতে রুট- n এই নেটওয়ার্কটি বিদ্যমান কিনা তা নির্বিশেষে এই রাউটিংটি আমাদের টেবিলটিতে স্থির হবে।
আমরা যদি রাউটিংটিকে আমরা ব্যবহার করতে পারি তা নির্মূল করতে চাই
route del -net 10.0.0.0 netmask 255.0.0.0
Iptables।
মূলত iptables প্যাকেটগুলি, আউটগোয়িং, ইনকামিং বা অন্যদের ফিল্টার করার জন্য ব্যবহৃত হয়, এটি আমাদের নেটওয়ার্ক ট্র্যাফিক পরিচালনা করার জন্য একটি দুর্দান্ত সরঞ্জাম হিসাবে তৈরি করে। ঠিক আছে, iptables যেমন এটি আমাদের একই কম্পিউটার থেকে ট্র্যাফিক ফিল্টার করতে দেয়, তেমনি আমাদের এটির মধ্য দিয়ে যে ট্র্যাফিকটি যায় তাকেও ফিল্টার করতে দেয়। (ফরওয়ার্ডিং) Iptables টেবিল, স্ট্রিং এবং ক্রিয়ায় বিভক্ত করা যেতে পারে।
- বোর্ডগুলি: মূলত দুটি টেবিল থাকতে পারে, ছাঁকনি, প্যাকেট ফিল্টার এবং NAT ঠিকানাগুলি অনুবাদ করতে, অর্থাৎ, একটি নেটওয়ার্ক থেকে অন্য নেটওয়ার্কে স্থানান্তরিত করতে।
- চেইন: চেইনটি বোঝায় যে ধরণের ট্র্যাফিক আমরা ফিল্টার করতে বা সাঁতার কাটতে চাই, তা হচ্ছে, আমরা কোন ট্র্যাফিকটিতে টেবিলগুলি প্রয়োগ করতে যাচ্ছি? এবং তারা হতে পারে: ইনপুট: আগত ট্রাফিক, আউটপুট: বহির্মুখী ট্র্যাফিক বা ফরোয়ার্ড: ট্র্যাফিক যা এর মধ্য দিয়ে যায় তবে এটি কোনও সঠিক সংযোগ নয়।
- এটি প্রদর্শিত হতে পারে পোস্ট করা, প্যাকেটটি রুট হওয়ার পরে নির্দিষ্ট পদ্ধতিতে চিকিত্সা করার জন্য ব্যবহৃত হয়েছিল।
- ক্রিয়া: ক্রিয়াগুলি মূলত শৃঙ্খলা দিয়ে সম্পাদন করা কর্ম to এই কর্ম হতে পারে ড্রপ, এটি কেবল সেই ট্র্যাফিককে ধ্বংস করে দেয় বা এসিসিপিটি যা ট্র্যাফিককে সেই ক্রিয়াটি করতে দেয়।
আইপিটিবেলস নিয়মগুলি সেগুলি তৈরি করা হয়েছিল যাতে সেগুলি সংরক্ষণ করা হয় এবং কার্যকর করা হয় এবং কোনও নিয়ম যদি পূর্ববর্তী নিয়ম মুছে ফেলে তবে আদেশের সর্বশেষ বিধি সর্বদা প্রয়োগ করা হয়।
ফায়ারওয়াল পলিসি।
সাধারণভাবে, ফায়ারওয়ালগুলি স্বাভাবিকভাবে দুটি উপায়ে কাজ করে:
- বা বাদে সমস্ত ট্র্যাফিকের অনুমতি দিন
- ... ছাড়া আর কোনও ট্র্যাফিকের অনুমতি দিন না
নীতি প্রয়োগ করতে আইপিটিবলস - পি অ্যাকশন চেইন
স্ট্রিং যেখানে ট্র্যাফিকের প্রকারের প্রতিনিধিত্ব করে (ইনপুট, আউটপুট, ফরোয়ার্ড, পোষ্ট্রোটিং ...) এবং ক্রিয়াটি ড্রপ বা স্বীকৃতি।
আসুন একটি উদাহরণ তাকান।
এখানে আমরা দেখতে পাই যে প্রথমে আমি পিং করতে সক্ষম হয়েছি, তারপরে আমি আইপিটিবেলসকে বলেছি যে সমস্ত আউটপুট ট্র্যাফিক ড্রপ বা অনুমোদিত নয়। তারপরে আমি আইপিটিবেলসকে বললাম এটি গ্রহণ করুন।
যদি আমরা স্ক্র্যাচ থেকে ফায়ারওয়াল তৈরি করতে যাচ্ছি তবে আমাদের অবশ্যই সর্বদা এর বিধিগুলি প্রয়োগ করতে হবে (ব্যতীত কোনও ট্র্যাফিকের অনুমতি দেবেন না ... এর জন্য আমরা বিধিগুলি প্রয়োগ করি)
iptables -P ইনপুট ড্রপ iptables -P আউটপুট ড্রপ iptables -P ফরওয়ার্ড ড্রপ
ফিরে আসতে আমরা একই লিখি এবং এসআরইপিটি দিয়ে ডিআরওপি প্রতিস্থাপন করি।
এই মুহুর্তে, যেহেতু সমস্ত ট্র্যাফিককে অস্বীকার করা হয়েছে, তাই আমরা আমাদের আইপিটিএবলগুলি বলতে শুরু করি যে এটি কী ট্র্যাফিকের হতে পারে।
বাক্য গঠনটি হ'ল:
iptables -A cadena -s ip_orgigen -d ip_destino -p protocolo --dport puerto -j acción
যেখানে:
স্ট্রিং = ইনপুট, আউটপুট বা ফরোয়ার্ড
আইপি_রিজেন = প্যাকেটের উত্স, এটি একটি একক আইপি বা একটি নেটওয়ার্ক হতে পারে এবং এই ক্ষেত্রে আমাদের অবশ্যই মাস্ক নির্দিষ্ট করতে হবে)।
গন্তব্য_ইপ = কোথায় প্যাকেট যাচ্ছে। এটি একটি একক আইপি বা একটি নেটওয়ার্ক হতে পারে এবং এই ক্ষেত্রে আমাদের অবশ্যই মাস্ক নির্দিষ্ট করতে হবে)।
প্রোটোকল = প্যাকেট দ্বারা ব্যবহৃত প্রোটোকল নির্দেশ করে (আইসিএমপি, টিসিপি, ইউডিপি ...)
পোর্ট = ট্র্যাফিক গন্তব্য বন্দর।
ক্রিয়া = ড্রপ বা এসিসিপিটি।
উদাহরণ:
সমস্ত সীমাবদ্ধ নীতি প্রয়োগ করা হয়।
তারপরে আমরা টিসিপি প্রোটোকল সহ 80 টি HTTP এবং 443 HTTPS বন্দর দিয়ে ট্র্যাফিক রাখতে সক্ষম হওয়ার জন্য বিধিগুলি যুক্ত করি। তারপরে পোর্ট 53 এটি ডোমেনগুলি সমাধান করার জন্য ডিএনএস ক্লায়েন্টের জন্য প্রয়োগ করা হয়, অন্যথায় আপনি নেভিগেট করবেন না। এটি ইউডিপি প্রোটোকল সহ কাজ করে।
লাইন:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
এটি নিম্নলিখিতগুলির কারণে: উদাহরণস্বরূপ আপনি যখন কোনও এইচটিটিপি অনুরোধ করবেন, আপনি সার্ভারের ৮০ টি পোর্টের সাথে সংযোগ স্থাপন করুন, তবে তথ্যটি ফিরিয়ে দিতে সার্ভারকে কোনও বন্দর দিয়ে আপনার সাথে সংযোগ স্থাপন করা দরকার। (সাধারণত 80 এর চেয়ে বেশি)।
আমাদের সমস্ত বন্দর বন্ধ থাকায় এটি 1024 (খারাপ ধারণা) এর চেয়ে বেশি সমস্ত পোর্ট না খুললে তা অর্জন করা হবে না। এটি যা বলে তা হ'ল যে সমস্ত আগত ট্র্যাফিক যা আমি নিজেকে প্রতিষ্ঠিত করেছি তার থেকে গৃহীত হয়। মানে, এমন একটি সংযোগ যা নীতিগতভাবে আমি শুরু করেছি।
আমি আশা করি আপনি এই তথ্য পছন্দ করেছেন। পরেরটিতে আমি ফায়াওয়ালের জন্য এনএটি, প্রক্সি এবং স্ক্রিপ্টগুলি নিয়ে কথা বলব।
এই ভিত্তিটিই অনেক উদ্যোক্তারা তাদের নিজস্ব ফায়ারওয়ালগুলি তৈরি করতে নেয়, এজন্যই বাজারে এম্বেডড লিনাক্স সহ অনেকগুলি ব্র্যান্ডের ফায়ারওয়াল রয়েছে, কিছু ভাল এবং অন্যরা এতটা না।
দুর্দান্ত নিবন্ধ। আমি দ্বিতীয় অংশের অপেক্ষায় রয়েছি।
খুব ভাল ব্যাখ্যা, এটি আমার কাজের প্রক্সি বুঝতে আমাকে সহায়তা করেছিল। ধন্যবাদ
হ্যালো জেএমসিএমক্স,
দুর্দান্ত, আমি সত্যিই এটি পছন্দ করেছি, অন্য পক্ষ কখন উপলব্ধ হবে?
শুভেচ্ছা এবং ভাগ করে নেওয়ার জন্য ধন্যবাদ
মন্তব্যের জন্য ধন্যবাদ.
গতকাল আমি অন্য অংশটি পাঠিয়েছিলাম, দিনের বেলাতে তারা মনে করে তারা এটি প্রকাশ করবে।
গ্রিটিংস।
খুব ভাল নিবন্ধের বন্ধু @ জেএমসিএমক্স, আমি তার সাথে সত্যিই শিখেছি যেহেতু তিনি কিছু সময়ের জন্য আমার কিছু সন্দেহ স্পষ্ট করেছিলেন যেভাবে আপনি নিবন্ধের উত্সের বইটি সাবাস্টিয়ান ববিলিয়ার, ভাল স্লু 2 এবং এখন ভাগ করে নিতে আপত্তি করবেন না would দ্বিতীয় অংশ, সালু 2 দেখুন।
হ্যালো ইস্রায়েল মন্তব্য করার জন্য ধন্যবাদ।
দেখা যাচ্ছে যে আমার কাছে বইটি শারীরিক আকারে রয়েছে। তবে আমি এই লিঙ্কটি গুগল বুকে পেয়েছি। http://books.google.com.co/books?id=zxASM3ii4GYC&pg=PA356&lpg=PA356&dq=S%C3%A9bastien+BOBILLIER+Linux+%E2%80%93+Administraci%C3%B3n+del+sistema+y+explotaci%C3%B3n+de+los+servicios+de+red#v=onepage&q=
আমি মনে করি এটি সম্পূর্ণ।
খুব ভাল নিবন্ধ, আমি একটি প্রশ্ন যুক্ত করছি: লিনাক্সকে রাউটার হিসাবে ব্যবহার করার সুবিধা কী হবে, যদি সেখানে থাকে তবে এটির জন্য উত্সর্গীকৃত একটি হার্ডওয়্যার সম্পর্কে কোনও ধারণা আছে? নাকি এটা কি ব্যায়ামের জন্য? আমি জানি ডেডিকেটেড ডিস্ট্রোস রয়েছে তবে আমি জানি না যে তারা পুরানো পিসি উদ্ধার করতে হবে বা কনফিগারেশনে আরও নমনীয়তা সরবরাহ করবে কিনা।
ঠিক আছে, আমি মনে করি সুবিধা এবং অসুবিধাগুলি আপনি যেখানে এটি প্রয়োগ করতে যাচ্ছেন সেই দৃশ্যের উপর নির্ভর করে। নিশ্চয়ই আপনি কেন আপনার বাড়ির জন্য কোনও ইউটিএম বা এরকম কিছু কিনবেন না? এবং সম্ভবত একটি ছোট ব্যবসায়ের জন্য যা এটিও বহন করতে পারে না। এটি একটি অনুশীলন হিসাবেও ভাল, কারণ এটি আপনাকে এর সমস্ত যুক্তি বুঝতে সহায়তা করে এবং আপনি ডেডিকেটেড এফওয়ালাকে আরও ভালভাবে কনফিগার করতে পারেন। এই প্রায় সমস্ত ডিভাইস ছাড়াও তাদের কাছে যা আছে তা হ'ল এম্বেডড লিনাক্স।
গ্রিটিংস।
হ্যালো, একটি প্রশ্ন, আপনি কি নেটওয়ার্কগুলির মধ্যে অনুরূপ রাউটিংয়ের জন্য লিনাক্সে একটি "কৃত্রিম" ইন্টারফেস তৈরি করতে পারেন? (প্যাকেট ট্রেসার স্টাইল) ভার্চুয়াল মেশিনের সাথে কাজ করতে চান? উদাহরণস্বরূপ যদি আমার এথ0 থাকে (কারণ আমার কাছে অবশ্যই একক কার্ড আছে) আমি কি অন্য নেটওয়ার্ক তৈরি করতে ইথ 1 তৈরি করতে পারি? খুব ভাল টিউটর!
লিনাক্সে আপনি অবশ্যই ভার্চুয়াল ইন্টারফেস তৈরি করতে পারেন। আপনার যদি এথ0 থাকে তবে আপনার নীতি 0: 0, এথ0: 1, নীতি 0: 2 ... ইত্যাদি থাকতে পারে
এত ভাল, ভাগ করে নেওয়ার জন্য ধন্যবাদ