স্থানীয় নেটওয়ার্ক সংযোগগুলি গ্রহণ করতে কিছু ফায়ারওয়াল পোর্ট সেট করবেন?


18

আমি কোনও ল্যানে কোনও সিস্টেমে ফায়ারওয়ালটি কীভাবে সেট আপ করব যাতে কিছু পোর্ট কেবলমাত্র স্থানীয় অঞ্চল নেটওয়ার্ক থেকে সংযোগের জন্য উন্মুক্ত থাকে, না বাইরের বিশ্ব থেকে?

উদাহরণস্বরূপ, আমার কাছে বৈজ্ঞানিক লিনাক্স 6.1 (একটি আরএইচইএল ভিত্তিক ডিস্ট্রো) চলমান একটি বাক্স রয়েছে এবং আমি চাইছি যে এর এসএসএইচ সার্ভারটি কেবল লোকালহোস্ট বা ল্যান থেকে সংযোগ গ্রহণ করবে accept আমি এটা কিভাবে করবো?

উত্তর:


24

কার্নেলের iptables সম্পূর্ণ খালি ( iptables -F) সহ, এটি আপনার জিজ্ঞাসাটি করবে:

# iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -s 127.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP

এটি বলছে যে সমস্ত ল্যান ঠিকানা টিসিপি পোর্ট ২২ এর সাথে কথা বলার অনুমতি দেওয়া হয়েছে, লোকালহোস্ট একই বিবেচনা পায় (হ্যাঁ, 127. * শুধু 127.0.0.1 নয়), এবং প্রথম দুটি নিয়মের সাথে মেলে না এমন প্রতিটি অন্য ঠিকানা থেকে প্যাকেটগুলি বিন্যাসে ফেলে দেওয়া হবে বিট বালতি । আপনি যদি প্যাকেটের জন্য টিসিপি পোর্ট 22 ব্ল্যাকহোল তৈরির পরিবর্তে একটি সক্রিয় প্রত্যাখ্যান (টিসিপি আরএসটি) চান তার REJECTপরিবর্তে আপনি ব্যবহার করতে পারেন DROP

যদি আপনার ল্যানটি 192.168.0 ব্যবহার করে না * * ব্লক, আপনার ল্যানের আইপি স্কিমটি মিলানোর জন্য আপনাকে স্বাভাবিকভাবেই প্রথম লাইনে আইপি পরিবর্তন করতে হবে এবং মাস্কটি লাগাতে হবে।

আপনার ফায়ারওয়ালটিতে ইতিমধ্যে কিছু নিয়ম কনফিগার করা থাকলে এই কমান্ডগুলি আপনি যা করতে চান তা করতে পারে না। ( iptables -Lএটি জানতে মূল হিসাবে বলুন )) প্রায়শই যা ঘটে তা হ'ল বিদ্যমান বিধিগুলির একটির মধ্যে আপনি যে প্যাকেটগুলি ফিল্টার করার চেষ্টা করছেন তা ধরে ফেলে, যাতে নতুন বিধিগুলি যুক্ত করার কোনও প্রভাব থাকে না। আপনি ব্যবহার করতে পারেন যদিও -Iপরিবর্তে -Aসঙ্গে iptablesকমান্ড পরিবর্তে তাদের সংযোজন একটা চেন মধ্যম মধ্যে নতুন নিয়ম সংযুক্ত করান, এটা সাধারণত ভাল কিভাবে চেইন সিস্টেম বুট জনবহুল পেতে জানতে এবং যে প্রক্রিয়া সংশোধন, তাই আপনার নতুন নিয়ম সবসময় ইনস্টল করতে হয় তা সঠিক ক্রম।

RHEL 7+

সাম্প্রতিক আরএইচইএল টাইপ সিস্টেমে এটি করার সর্বোত্তম উপায় হ'ল ব্যবহার করা firewall-cmdবা এর জিইউআই সমতুল্য। এই OS এর বলে firewalldডেমন কি আপনি চান, যা আসলে মান এবং নিপূণভাবে ব্যবহার করেন কি মাধ্যমে দেখতে iptables -L

RHEL 6 এবং এর আগের

পুরানো আরএইচইএল টাইপ সিস্টেমে, বিষয়গুলি অর্ডার করার সময় ফায়ারওয়াল চেইনগুলি সংশোধন করার সবচেয়ে সহজ উপায় হ'ল সম্পাদনা করা /etc/sysconfig/iptables। ওএসের জিইউআই এবং টিইউআই ফায়ারওয়াল সরঞ্জামগুলি বরং সরলসাধ্য, সুতরাং আপনি যখন আরও জটিল নিয়মগুলি যুক্ত করা শুরু করেন তবে ভাল পুরানো কনফিগারেশন ফাইলে ফিরে যাওয়া ভাল। সাবধান, একবার আপনি এটি করা শুরু করার পরে, আপনি যদি কনফিগারেশনটি সংশোধন করতে ওএস এর ফায়ারওয়াল সরঞ্জামগুলি ব্যবহার করেন তবে আপনার পরিবর্তনগুলি হারাতে ঝুঁকিপূর্ণ হবে, যেহেতু এই জাতীয় হস্তশিল্পের নিয়মগুলি কীভাবে মোকাবেলা করতে হবে তা এটি জানেন না।

এই ফাইলটিতে এই জাতীয় কিছু যুক্ত করুন:

-A RH-Firewall-1-INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 22 -s 127.0.0.0/8 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 22 -j DROP

আপনি যেখানে এটি যুক্ত করেন তা কিছুটা জটিল। যদি আপনি সেই ফাইলটির সাথে কথা বলার একটি লাইন খুঁজে পান তবে --dport 22কেবল উপরের তিনটি লাইন দিয়ে এটি প্রতিস্থাপন করুন। অন্যথায়, এটি সম্ভবত প্রথম বিদ্যমান লাইনটি শেষ হওয়ার আগে চলে যাওয়া উচিত -j ACCEPT। সাধারণত, আপনাকে iptables কীভাবে কাজ করে তার সাথে কিছুটা পরিচিতি অর্জন করতে হবে , যেখানে সঠিক সন্নিবেশ পয়েন্টটি সুস্পষ্ট হবে।

সেই ফাইলটি সংরক্ষণ করুন, তারপরে service iptables restartফায়ারওয়াল বিধিগুলি পুনরায় লোড করতে বলুন । কনসোলে লগ ইন করার সময় এটি করতে ভুলবেন না, যদি আপনি সম্পাদনাগুলিকে ফ্যাট-ফিঙ্গার করেন! আপনি এসএসএইচ-এ লগ ইন করার সময় নিজেকে নিজের মেশিন থেকে লক করতে চান না।

উপরের কমান্ডগুলির সাথে সাদৃশ্য কোনও কাকতালীয় নয়। এই ফাইলটির বেশিরভাগটিতে iptablesকমান্ডের সাথে যুক্তি রয়েছে । উপরের তুলনায় পার্থক্যগুলি iptablesহ'ল কমান্ডটি বাদ পড়ে এবং INPUTচেইনের নামটি বিশেষ RHEL- নির্দিষ্ট RH-Firewall-1-INPUTচেইনে পরিণত হয়। (আপনি যদি আরও বিশদে ফাইলটি পরীক্ষা করার বিষয়ে চিন্তা করেন তবে আপনি আগে ফাইলটি দেখতে পাবেন যেখানে তারা মূলত INPUTশৃঙ্খলাটির নাম পরিবর্তন করে দিয়েছে Why কেন? বলা যায়নি))


4

লিনাক্সের অধীনে ফায়ারওয়াল সেটআপের জন্য নিম্ন-স্তরের সরঞ্জামটি হ'ল iptables । এছাড়াও উচ্চ-স্তরের সরঞ্জাম উপলব্ধ। আমি জানি না বৈজ্ঞানিক লিনাক্সের প্রস্তাবিত ফায়ারওয়াল সরঞ্জাম আছে কিনা।

এই ওয়েব পৃষ্ঠা অনুসারে (আমি এটি যাচাই করেছিলাম না যে এটি 6.1 এর সাথে প্রযোজ্য) service iptables saveবর্তমান ফায়ারওয়াল নিয়মগুলি সংরক্ষণ করবে এবং এই সংরক্ষিত নিয়মগুলি বুট করার সময় লোড হয়। সুতরাং আপনার iptablesকমান্ডগুলি (বা অন্য কোনও উপায়) এর মাধ্যমে আপনার যে নিয়মগুলি চান সেগুলি সেটআপ করা দরকার , তারপরে service iptables saveআপনার সেটআপটি অবিরাম করতে চালনা করুন ।

স্কট প্যাকের ব্লগ পোস্টটি "ওডবল" প্যাকেটগুলি নামানোর জন্য একটি সূচনা যা সাধারণত প্রয়োজন হয় না এবং আক্রমণে অংশ হওয়ার ঝুঁকি থাকে বেশি। এর বাইরে, আপনি সমস্ত আগত পোর্টগুলি বন্ধ করতে এবং আপনার প্রয়োজন কেবলমাত্র খুলতে চাইবেন। এটার মতো কিছু:

# Accept everything on the loopback interface
iptables -A INPUT -i lo -j ACCEPT
# Accept ICMP
iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
# Drop oddball packets
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -f -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# Accept packets that are part of established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accept selected incoming connections, e.g. ssh from 10.0.42.x
iptables -A INPUT -p tcp --dport 22 -s 10.0.42.0/24 -j ACCEPT
# Reject incoming connections that aren't explicitly accepted
iptables -A INPUT -j REJECT

1
গিলস, আপনি প্রশ্নটি কিছুটা ভুল বোঝেননি? আমি বুঝতে পারি যে সায়েন্টিফিক লিনাক্স বাক্স ল্যানের অন্যতম কম্পিউটার, তবে ফায়ারওয়াল নয়।
rozcietrzewiacz

@ গিলস হ্যাঁ, বাক্সটি ল্যানের অন্যতম কম্পিউটার।
এইচপি

@rozcietrzewiacz আমি বুঝতে পারি যে ফায়ারওয়াল সার্ভারের মতো একই মেশিনে রয়েছে। আমি একমত যে প্রশ্নটি কিছুটা দ্ব্যর্থক, তবে যেহেতু পেনিয়ুয়ান কেবলমাত্র একটি মেশিনের ওএস উল্লেখ করেছে, আমি ধারণা করি যে সমস্ত কিছুই সেই মেশিনে ঘটছে। অন্যথায় এটি কোনও ইউনিক্স প্রশ্ন নয়, এটি একটি অপ্রকাশিত নেটওয়ার্ক অ্যাডমিন প্রশ্ন।
গিলস 'অশুভ হওয়া বন্ধ করুন'

1

এটি করার জন্য পছন্দের উপায়টি রয়েছে iptables। দেখে মনে হচ্ছে এটি অন্যদের দ্বারা পর্যাপ্তভাবে আবৃত হয়েছে, সুতরাং, সম্পূর্ণতার জন্য, আমি একটি বিকল্প অ্যাক্সেস নিয়ন্ত্রণ পদ্ধতিটি নির্দেশ করব যা বেশিরভাগ লিনাক্স ডিস্ট্রোজে অনেক ডিমন জন্য উপলব্ধ for অ্যাক্সেস নিয়ন্ত্রণ পদ্ধতিটি libwrapলাইব্রেরি দ্বারা সরবরাহ করা হয়েছে ।

আপনার প্রিয় ডিমনটির libwrapসমর্থন রয়েছে কিনা তা পরীক্ষা করতে , নিম্নলিখিতগুলি চালনার চেষ্টা করুন:

ldd `which sshd` | grep libwrap

আপনি যদি খালি খালি ফলাফল পান, যেমন

libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f84e7b0e000)

তাহলে আপনি অবশ্যই যেতে ভাল।

এটি প্রায় নিশ্চিত যে আপনার sshdডেমনটির libwrapসমর্থন রয়েছে এবং তাই অ্যাক্সেস নিয়ন্ত্রণের জন্য এটি /etc/hosts.allowএবং /etc/hosts.denyফাইলগুলির সাথে পরামর্শ করা উচিত । আপনার স্থানীয় ল্যান নেটওয়ার্কটিকে ধরে নিলে 192.168.100.0/24, আপনি স্থানীয় হোস্টে বা স্থানীয় ল্যানে থাকা ফাইলগুলি বাদ দিয়ে সমস্ত ফাইলের অ্যাক্সেস অস্বীকার করতে পারেন :sshd/etc/hosts.deny

sshd: ALL EXCEPT 127.0.0.0/255.0.0.0, [::1]/128, 192.168.100.0/255.255.255.0

মনে রাখবেন যে এই পদ্ধতিটি আসলে প্রতি বেলা বন্দরগুলি খোলে বা বন্ধ করে না । এটি কেবলমাত্র ডেমনগুলিকে বলে যেগুলি প্রদত্ত প্যাটার্নগুলির সাথে মেলে এমন ক্লায়েন্টদের সংযোগের প্রচেষ্টা গ্রহণ বা প্রত্যাখ্যান করবে কিনা তা অ্যাক্সেস নিয়ন্ত্রণের এই পদ্ধতিটি ব্যবহার করে।

সম্পূর্ণ বিবরণের জন্য, ম্যান পৃষ্ঠাগুলি থেকে শুরু করে দেখুন hosts_access(5)


1

আপনার যদি নিজের লিনাক্স-ভিত্তিক ফায়ারওয়াল থাকে তবে iptablesঅন্যরা এখানে বর্ণিত হিসাবে আপনি সেরা সেটআপ চাইবেন । যদি না হয় এবং ফায়ারওয়ালটি আপনার রাউটার হয় তবে সম্ভবত ডিফল্ট কনফিগারেশনটি ইতিমধ্যে বাইরে থেকে অ্যাক্সেসকে বাধা দেয়, যদি না আপনি স্পষ্টভাবে পোর্ট ফরওয়ার্ডিং সক্ষম করেন (যেমন আমি সম্প্রতি এই প্রশ্নের উত্তরে বর্ণনা করেছি )।

এর উপরে অতিরিক্ত সুরক্ষার জন্য, আপনি ইন ল্যান সংযোগের জন্য একটি পৃথক সাবনেট ব্যবহার করতে পারেন। এটি করতে, প্রতিটি কম্পিউটারের জন্য একটি দ্বিতীয় আইপি ঠিকানা যুক্ত করুন যা কেবল ল্যানের মধ্যে ব্যবহার করা হবে এবং রাউটার দ্বারা নয়। আসুন বলে পুরো LAN এর এখন ব্যবহার করছে 192.168.0.xxxঠিকানা ও রাউটার (গেটওয়ে, ফায়ারওয়াল) হল 192.168.0.1। সুতরাং প্রতিটি কম্পিউটারের জন্য একটি দ্বিতীয় ঠিকানা যুক্ত করুন - উদাহরণস্বরূপ:

ifconfig eth0:0 192.168.5.1/24

এর পরে, sshdকেবলমাত্র এই ঠিকানাটি ব্যবহার করার জন্য কনফিগারেশন সম্পাদনা করুন (যাতে এটি সংযোগগুলি আসতে দেয় না 192.168.0.xxx) - আপনার নতুন সাবনেটের একটিতে সম্পাদনা করুন /etc/ssh/sshd_configএবং সংশোধন করুন ListenAddress( 192.168.5.1উপরের উদাহরণে)। এটাই! যদি আপনি সেই সাবনেটের যোগাযোগটি রুট করার গেটওয়েটি কনফিগার না করেন তবে এটি বাইরে থেকে পৃথক করা উচিত।

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