লিনাক্স সার্ভার সুরক্ষিত করা: iptables বনাম ফেল 2


10

আমি বিশেষভাবে সংক্রান্ত লিনাক্স সার্ভার নিরাপত্তা সংক্রান্ত সম্প্রদায়ের মস্তিষ্ক বাছাই পছন্দ করি, হবে বলপূর্বক আক্রমণ এবং ব্যবহার fail2ban কাস্টম বনাম iptables- র

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

আমার সার্ভারের সুরক্ষার জন্য একটি শালীন হ্যান্ডেল রয়েছে, যেমন রুট বা পাসওয়ার্ড লগইন না করে, ডিফল্ট পোর্ট পরিবর্তন করে, সফ্টওয়্যারটি আপ টু ডেট রয়েছে তা নিশ্চিত করে, লগ ফাইলগুলি পরীক্ষা করে, কেবল নির্দিষ্ট হোস্টকে সার্ভার অ্যাক্সেস করার অনুমতি দেয় এবং সুরক্ষা ব্যবহার করে সাধারণ সুরক্ষা মেনে চলার জন্য লিনিস ( https://cisofy.com/lynis/ ) এর মতো নিরীক্ষণ সরঞ্জামগুলি , সুতরাং ইনপুট এবং পরামর্শ সর্বদা স্বাগত বলে যদিও এই প্রশ্নটি অগত্যা নয় ।

আমার প্রশ্নটি হল আমার কোন সমাধানটি ব্যবহার করা উচিত (ফেলফল 2 বা iptables), এবং আমি কীভাবে এটি কনফিগার করব, অথবা আমার কী আঘাতের আক্রমণ থেকে সুরক্ষিত করার জন্য উভয়ের সংমিশ্রণ ব্যবহার করা উচিত?

বিষয়টি সম্পর্কে একটি আকর্ষণীয় প্রতিক্রিয়া রয়েছে ( ডিনহোস্টস বনাম ফেলফাবান বনাম iptables- ব্রুট ফোর্স লগইনগুলি প্রতিরোধের সেরা উপায়? ) ব্যক্তিগতভাবে আমার কাছে সবচেয়ে আকর্ষণীয় উত্তরটি ছিল ( https://serverfault.com/a/128964 ), এবং iptables রাউটিংটি কার্নেলের মধ্যে ব্যর্থ হয়েছে 2 ব্যর্থতার ফলে লগ ফাইলগুলি পার্স করতে ব্যবহারকারী মোড সরঞ্জাম ব্যবহার করে। Fail2ban অবশ্যই iptables ব্যবহার করে, তবে এটি এখনও লগ ফাইলগুলি বিশ্লেষণ করতে এবং কোনও ক্রিয়া সম্পাদন না করা পর্যন্ত একটি প্যাটার্নটি মেলতে হয়।

আইপিটিবলগুলি ব্যবহারের জন্য এবং আইটেমের জন্য পিরিয়ডের জন্য অনুরোধগুলি বাদ দেওয়ার জন্য https://www.rackaid.com/blog/how-to- block-ssh-brute- for -attacks / ) ব্যবহার করার কী অর্থ হয়? এমন কোনও প্রোটোকল যা সংযোগ স্থাপনের চেষ্টা করেছিল তা নির্বিশেষে নির্দিষ্ট সময়কালে সংযোগের প্রচুর প্রচেষ্টা করে? যদি তা হয় তবে সেই প্যাকেটের জন্য এখানে ড্রপ বনাম প্রত্যাখ্যান সম্পর্কে কিছু আকর্ষণীয় ধারণা রয়েছে ( http://www.chiark.greenend.org.uk/~peterb/network/DP-vs-reject ), সে সম্পর্কে কোনও ধারণা?

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

এখানে লক্ষ্যটি হ'ল দৈনিক লগওয়াচ প্রতিবেদনগুলি খোলার জন্য এবং সার্ভারের সাথে চেষ্টা করা ব্যর্থ সংযোগের পৃষ্ঠাগুলি থেকে স্ক্রোল করতে হবে না।

সময় দেবার জন্য ধন্যবাদ।


উত্তর:


21

আমি ব্যর্থ 2 বা iptables ব্যবহার করা উচিত?

আপনি ফায়ারওয়াল সমাধান ছাড়াও ফায়ারওয়াল ব্যবহার করেন , সেই বিদ্যমান ফায়ারওয়াল বিধিগুলি নিয়মের সাথে অন-ডিমান্ড প্রসারিত করতে সিস্টেমগুলির নির্দিষ্ট আইপি-ঠিকানাগুলিকে ব্লক করার জন্য যা অন্যথায় সরকারী পরিষেবাগুলিতে অনাকাঙ্ক্ষিত ক্রিয়া করে। তারা একে অপরের সাথে মিলেমিশে কাজ করে।

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

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

অ্যাপ্লিকেশন স্তরের অন্তর্দৃষ্টি সহ ফায়ারওয়াল সরবরাহ করার জন্য একটি ভিন্ন পদ্ধতি হস্তক্ষেপ সনাক্তকরণ / প্রতিরোধের সিস্টেমের মাধ্যমে হবে


উদাহরণস্বরূপ একটি ওয়েবসারভার একটি সাধারণ পাবলিক সার্ভিস এবং আপনার ফায়ারওয়াল টিসিপি পোর্টগুলিতে 80 এবং 443 ইন্টারনেটের জন্য উন্মুক্ত।
সাধারণত HTTP / HTTPS পোর্টগুলিতে আপনার কোনও হার-সীমাবদ্ধতা থাকে না কারণ একাধিক বৈধ ব্যবহারকারীর একক উত্স থাকতে পারে যখন তারা NAT গেটওয়ে বা ওয়েব প্রক্সিটির পিছনে থাকে।

যখন আপনি নিজের ওয়েবসারভারের প্রতি অনাকাঙ্ক্ষিত এবং / বা ক্ষতিকারক ক্রিয়াগুলি সনাক্ত করেন আপনি এই জাতীয় অপরাধীকে ব্লক করে স্বয়ংক্রিয় করতে ব্যর্থ 2 বা ব্যবহার করেন (হয় তাদের সম্পূর্ণরূপে অবরুদ্ধ করুন বা কেবলমাত্র 80 এবং 443 বন্দরগুলিতে তাদের অ্যাক্সেসটি লক করে)।

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


এটি আমি অন্তর্দৃষ্টি খুঁজছিলাম, এটি আমার কাছে সঠিক ধারণা দেয়, সময় দেওয়ার জন্য ধন্যবাদ।
কিংমিলো

2
যদিও অ্যাপ্লিকেশন ফায়ারওয়ালগুলি রয়েছে (অ্যাপ্লিকেশন গেটওয়ে হিসাবেও পরিচিত) যা গভীর প্যাকেট পরিদর্শন করতে পারে।
বাগানের মাথা

@gardenhead সম্মত হয়েছে, এবং +1; iptablesওপি দ্বারা উল্লিখিত কারণে আমি প্রধানত কার্নেলের মধ্যে লিনাক্স প্যাকেটফিল্টার তৈরির দিকে মনোনিবেশ করেছিলাম। আমার "মতামত" অ্যাপ্লিকেশন ফায়ারওয়ালগুলি প্যাকেটগুলি পুরোপুরি পরীক্ষা করে না তারা অ্যাপ্লিকেশন প্রোটোকল সচেতন এবং সম্পূর্ণ অনুরোধটি পরীক্ষা করা উচিত। ওয়েবে আপনি তারপরে
অ্যাপাচের মোড_সিকিউরিটি

@ এইচবি ব্রাইজন আপনি ঠিক বলেছেন - আমি প্যাকেট শব্দটির অপব্যবহার করেছি। অ্যাপ্লিকেশন গেটওয়েগুলি কীভাবে নির্মিত হয় তার বিবরণ আমি জানি না, তবে আমি কল্পনা করতে পারি যে তারা পরিদর্শন + ফরওয়ার্ডিংয়ের পূর্বে একটি সম্পূর্ণ অ্যাপ্লিকেশন-স্তর বার্তা একসাথে রাখার জন্য পর্যাপ্ত প্যাকেট পাওয়ার জন্য অপেক্ষা করবেন।
বাগানের মাথা

1
প্রতিলিপি: আপনি অন্যান্য পরিষেবাদিগুলির জন্য ব্যর্থ 2 ব্যাবহার করা হলেও, আইপিএবলগুলি সাম্প্রতিক মডিউলটি ssh এর জন্য ব্যবহার করুন। আকর্ষণীয় ব্যর্থতা মোডগুলি থাকতে পারে যেখানে নিয়মগুলি সঠিকভাবে পরিষ্কার না করা হয় এবং লগইনগুলি এর দ্বারা আক্রান্ত হওয়া সত্যই বিরক্তিকর হবে (এবং সমস্যাটি ডিবাগ করাও কঠিন করে তোলে)। সঙ্গে সাম্প্রতিক প্রকৃত নিয়ম পরিবর্তন করতে হবে না, তাই আপনি অ্যাক্সেস ফিরে পাবার একটি ভাল সুযোগ আছে।
সাইমন রিখটার

8

আমি ব্যর্থ 2 বা iptables ব্যবহার করা উচিত?

"আমি কি সিটবেল্ট বা গাড়ি ব্যবহার করব?" জিজ্ঞাসা করার মতোই এটি কিছুটা অনুরূপ

প্রথম বন্ধ, মনে রাখবেন যে ব্যর্থ 2ban হ'ল পাঠ্য ফাইলগুলিতে পুনরাবৃত্তি হওয়া এন্ট্রিগুলি স্বয়ংক্রিয়ভাবে সনাক্ত করতে এবং যখন একটি নির্দিষ্ট প্রান্তিকের সাথে মিলিত হয় তখন কিছু কমান্ড কার্যকর করতে পারে remember

আমরা প্রায়শই এটি হোস্টগুলি অবরুদ্ধ করার জন্য ব্যবহার করি যা কোনও নীতি লঙ্ঘন করে যা নীতি লঙ্ঘনের ইঙ্গিত দেয় এমন পুনরাবৃত্তি প্রবেশের দ্বারা প্রমাণ হিসাবে কিছু নীতি লঙ্ঘন করে তবে এটি কেবলমাত্র আপনিই এটির জন্য ব্যবহার করতে পারবেন না।

আপনি চাহিদার উপরে আইপটবেবল বিধিগুলি যোগ করতে (এবং অপসারণ) করতে ব্যর্থ 2ban ব্যবহার করতে পারেন। আপনি হাত দিয়ে আইপটিবল বিধিগুলি যুক্ত এবং মুছে ফেলতে পারেন, বা আপনি প্রতিক্রিয়াতে সম্পূর্ণ ভিন্ন কিছু করতে ফেলফল 2 ব্যবহার করতে পারেন। আপনি এটিকে কীভাবে কনফিগার করবেন তা এটাই।

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

সর্বোপরি, আপত্তিজনক আইপি (গুলি) কে কিছুক্ষণের জন্য কেটে নীতি লঙ্ঘনের প্রতিক্রিয়া জানানো আপনার সেয়ার প্রতি আপনার সার্ভারকে সুরক্ষিত করার জন্য খুব বেশি কিছু করবে না (ভাল শোষণ কেবলমাত্র আপনার ফায়ারওয়ালের মাধ্যমে একবারে নেওয়া দরকার) তবে তা হবে আপনার সিস্টেমে শব্দের মাত্রাটি কেটে ফেলুন, এতে সিস্টেম লগগুলিতে সীমাবদ্ধ নয়। এটি করার সহজ উপায়টি হ'ল ব্যর্থতা প্যানেলগুলিকে কিছুক্ষণের জন্য ফেলে দেওয়ার জন্য কার্নেলটি কনফিগার করার জন্য ব্যর্থ 2ban রান iptables চালানো। আপনি যদি কেবলমাত্র হোস্ট ফায়ারওয়ালের পরিবর্তে আপনার ঘেরের ফায়ারওয়ালটিকে পুনরায় কনফিগার করতে পারেন তবে কেবল আরও ভাল।

অন্য কথায়, যে পরিমাণে তারা সহজেই প্রথম স্থানে আলাদা হতে পারে, আপনি উভয়ই চাই want

যদি আমি অর্জন করার চেষ্টা করছি সমস্তই যদি সার্ভারের থেকে একটি আইপি 'ব্লক' করা হয় তবে তারা যদি সময়সীমার চেয়ে কোনও পরিষেবা / প্রোটোকলে 2 টি অ্যাক্সেস প্রচেষ্টা ব্যর্থ করে তবে কী ওভারকিল হতে পারে?

যে ঠিক ব্যবহারের ক্ষেত্রে fail2ban সমাধানের জন্য ডিজাইন করা হয়েছে। এটির উদ্দেশ্যে উদ্দেশ্যে কোনও সরঞ্জাম ব্যবহার করা প্রায় কখনই অতিরিক্ত ওষুধ নয়।

এখানে লক্ষ্যটি হ'ল দৈনিক লগওয়াচ প্রতিবেদনগুলি খোলার জন্য এবং সার্ভারের সাথে চেষ্টা করা ব্যর্থ সংযোগের পৃষ্ঠাগুলি থেকে স্ক্রোল করতে হবে না।

একপাশে, আপনার প্রশ্নের সাথে সরাসরি সম্পর্কিত নয়: আপনি যখনই পর্যালোচনার জন্য লগগুলি ফিল্টার করছেন, নির্দিষ্ট কিছু এন্ট্রি সম্পর্কে আপনি কী করবেন তা বিবেচনা করুন। আপনি যদি কোনও এন্ট্রি সম্পর্কে যা করতে যাচ্ছেন তা হ'ল "মেহ" বলুন এবং এগিয়ে যান, তবে আপনি সম্ভবত এটি ফিল্টার করতে চান। পর্যালোচনার জন্য পূর্ণ লগ সংরক্ষণ করতে যে প্রয়োজন হবে তা নিশ্চিত করুন, কিন্তু আপনার নিয়মিত পর্যবেক্ষণ শুধুমাত্র ধাক্কা কর্মপ্রবাহ কাপড় আসলে আপনি করতে যাচ্ছি না সঙ্গে কিছু যখন এটি দেখানো হয়। কয়েকটি ব্যর্থ সংযোগ প্রয়াসের পরে যদি আপনি হোস্টকে ব্লক করতে ব্যর্থ 2ban সেট আপ করেন তবে সম্ভাবনাগুলি খুব ভাল যে আপনার ম্যানুয়ালি এটি পর্যালোচনা করার প্রয়োজন হবে না এবং এগুলি আপনার পর্যবেক্ষণের বিজ্ঞপ্তিগুলি থেকে বাদ দিতে পারেন। যদি কোনও বৈধ ব্যবহারকারীর অ্যাক্সেস হ্রাস সম্পর্কে অভিযোগ করে তবে কেবলমাত্র সম্পূর্ণ লগগুলি বের করুন এবং একবার দেখুন।


বিস্তৃত প্রতিক্রিয়ার প্রশংসা করুন, আমি অনুমান করি যে আমি কখনই দুজনকে সম্পূর্ণ পৃথক কার্যকারিতা হিসাবে ভাবি নি।
কিংমিলো

4

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

এখানে কিছু নমুনা দেওয়া হল:

  #
  # SSH tracking sample
  #
  #################################################################################
  iptables -X IN_SSH
  iptables -N IN_SSH
  iptables -A IN_SSH -m set --match-set net_blacklist src -p tcp -j REJECT
  iptables -A IN_SSH -m set --match-set net_whitelist src -p tcp --match limit --limit 5/second -j LOG --log-prefix whitelist_de_prefix
  iptables -A IN_SSH -m set --match-set net_whitelist src -p tcp -j ACCEPT
  # filter update
  iptables -A IN_SSH -m recent --name sshbf --set --rsource
  # connlimit
  iptables -A IN_SSH -m connlimit --connlimit-above 4 --match limit --limit 5/second -j LOG --log-prefix ssh_connlimit_per_ip_above_4
  iptables -A IN_SSH -m connlimit --connlimit-above 4 -j REJECT
  # filter
  iptables -A IN_SSH -m recent --name sshbf --rttl --rcheck --hitcount 13 --seconds 60 --match limit --limit 5/second -j LOG --log-prefix ssh_filtered_13in60sec
  iptables -A IN_SSH -m recent --name sshbf --rttl --rcheck --hitcount 13 --seconds 60 -j REJECT
  iptables -A IN_SSH -j ACCEPT

iptables -A FORWARD -p tcp --dport ssh --syn --jump IN_SSH
# iptables -A INPUT -p tcp --dport ssh --syn --jump IN_SSH

আপনার লগিং বার্তাগুলির আউটপুট ফেলফ্যানের সাথে একত্রিত হতে পারে। আপনি এটি ইনপুট নিয়মের জন্যও ব্যবহার করতে পারেন।

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