আমাদের ভিপিএস সুরক্ষিত করার পদক্ষেপগুলি

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

  1. জিএনইউ / লিনাক্সের সাথে আপনার মধ্যবর্তী স্তরের পরিচিতি রয়েছে।
  2. ব্যক্তিগত ব্যবহারের জন্য একটি ভিপিএস রয়েছে যা আমাদের এসএসএইচ এর মাধ্যমে অ্যাক্সেস করে।
  3. ভিপিএসের নিবেদিত বহিরাগত আইপিভি 4 250.250.250.155 রয়েছে এবং আমাদের সরবরাহকারী 250.250.0.0/16 ব্লকের মালিক own (1)
  4. আমাদের ভিপিএসে আমরা কেবলমাত্র বাইরের থেকে অ্যাক্সেসের জন্য এইচপি, https এবং এসএসএস পরিষেবা সক্ষম করব।
  5. বাহ্যিক ডিএনএস সক্ষম করা হবে না কারণ এটি সাধারণত আমাদের সরবরাহকারীর প্যানেলে করা হয়। (2)
  6. এটি সুপারভাইজার হিসাবে কাজ করবে।

ইনস্টলেশন

প্রথম পদক্ষেপ হিসাবে, আসুন সার্ভার আপডেট করুন এবং আমাদের প্রয়োজন এমন কিছু প্যাকেজ ইনস্টল করুন:

# অ্যাপটিটিউড আপডেট এবং প্রবণতা নিরাপদ আপগ্রেড

কনফিগারেশন

এখন আমরা একটি কাজের ব্যবহারকারী তৈরি করতে যাচ্ছি। সার্ভারে রুট হিসাবে কাজ করা নিরাপত্তাহীন, তাই আমরা প্রথমে একটি বিশেষ ব্যবহারকারী তৈরি করব:

অ্যাডুজার অপারেটর ব্যবহারকারী মডেল -aজি সুডো অপারেটর

প্রথম কমান্ড অপারেটর ব্যবহারকারী তৈরি করে, দ্বিতীয়টি এটি গ্রুপে যুক্ত করে উবুন্টু, যা রুট হিসাবে চলমান অ্যাপ্লিকেশনগুলিকে অনুমতি দেবে।

সুপার ব্যবহারকারীদের জন্য অনুমতিগুলি সামঞ্জস্য করুন

নিয়মিত কাজ করার জন্য আমরা ব্যবহারকারীর ব্যবহার করব অপারেটর পূর্বে তৈরি, আমাদের কমান্ড এক্সিকিউশন বিকল্পগুলিকে সুপারইউজার হিসাবে সামঞ্জস্য করতে হবে, যার জন্য আমরা নিম্নলিখিত কমান্ডটি কার্যকর করি:

visudo

এই কমান্ডটি মূলত ফাইলটি পরিবর্তনের অনুমতি দেয় জন্য / etc / sudoers; যার মধ্যে আমাদের এই লাইনগুলি থাকা উচিত:

ডিফল্ট env_reset, টাইমস্ট্যাম্প_টাইমআউট = 0% সুডো সমস্ত = (সমস্ত: সমস্ত) সমস্ত

প্রথম লাইনে অপশনটি ডিফল্ট মানগুলিতে যুক্ত করা হয় টাইমস্ট্যাম্প_টাইমআউট যা আপনাকে sudo কমান্ড কার্যকর করার সময় পাসওয়ার্ডের মেয়াদোত্তীকরণের সময় (মিনিটে) সেট করতে দেয়। ডিফল্টটি 5, তবে এটি কখনও কখনও দুটি কারণে অনিরাপদ:

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

সুতরাং ঝুঁকি এড়ানোর জন্য, আমরা মানটি শূন্যে সেট করে রেখেছি, যা প্রতিটি সময় sudo কমান্ড কার্যকর করা হয়, তখন পাসওয়ার্ডটি প্রবেশ করতে হবে। যদি নেতিবাচক মান -1 হিসাবে সেট করা হয় তবে এর প্রভাবটি হ'ল পাসওয়ার্ডটি কখনই শেষ হয় না, যা আমরা যা চাই তার বিপরীত ফলাফল তৈরি করে।

দ্বিতীয় লাইনে এটি পরিষ্কার করা হয়েছে যে সুডো গ্রুপ যে কোনও কম্পিউটারে যে কোনও কমান্ড কার্যকর করতে পারে, এটি স্বাভাবিক, যদিও এটি সামঞ্জস্য করা যায়। (৩) এমন অনেকে আছেন যাঁরা সুবিধার্থে পাসওয়ার্ডটি টাইপ না করার জন্য লাইনটি নীচে রেখেছেন:

% সুডো সমস্ত = (সমস্ত: সমস্ত) নোপাএসডাব্লুডি: সমস্ত

যাইহোক, যেমনটি আমরা আগে ব্যাখ্যা করেছি এটি ঝুঁকিপূর্ণ, এবং তাই এটি প্রস্তাবিত নয়।

পুনঃসূচনা অক্ষম করুন

সুরক্ষার কারণে, আমরা কী সংমিশ্রণটি ব্যবহার করে পুনঃসূচনাটি অক্ষম করব জন্য Ctrl + Alt + + দেল, যার জন্য আমাদের অবশ্যই এই লাইনটি ফাইলটিতে যুক্ত করতে হবে / ইত্যাদি / inittab:

ca: 12345: ctrlaltdel: / bin / প্রতিধ্বনি "Ctrl + Alt + Del অক্ষম করা হয়েছে।"

ড্রপবিয়ার দিয়ে ওপেনএসএইচ প্রতিস্থাপন করুন

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

ড্রপবারকে কনফিগার করতে আমরা ফাইলটি পরিবর্তন করব / ইত্যাদি / ডিফল্ট / ড্রপবার যাতে এটিতে এই দুটি লাইন থাকে:

NO_START = 0 DROPBEAR_EXTRA_ARGS = "- w -p 127.0.0.1:22 -I 1200 -m"

প্রথম লাইনটি কেবল পরিষেবাটি সক্ষম করে এবং দ্বিতীয়টি কয়েকটি কাজ করে:

  1. রুট অ্যাক্সেস এড়িয়ে চলুন।
  2. এটি স্থানীয় ইন্টারফেসের পোর্ট 22 এ পরিষেবাটি শুনতে দেয় (আমরা কেন পরে তা ব্যাখ্যা করব)।
  3. অপেক্ষা করার সময় (20 মিনিট) সেট করে।

এসএসএলএইচ

পোর্ট 22 (এসএসএইচ) সুপরিচিত এবং এটি হ্যাকাররা প্রথম ভাঙার চেষ্টা করে এমন একটি এটি সাধারণত তাই আমরা তার পরিবর্তে 443 (এসএসএল) পোর্ট ব্যবহার করব। এটি ঘটে যে এই পোর্টটি এইচটিটিপিএস-এর মাধ্যমে সুরক্ষিত ব্রাউজিংয়ের জন্য ব্যবহৃত হয়।

এই কারণে আমরা sslh প্যাকেজটি ব্যবহার করব, যা পোর্ট ৪৪৩ এ উপস্থিত প্যাকেটগুলি বিশ্লেষণ করে এমন মাল্টিপ্লেক্সারের চেয়ে বেশি কিছু নয় এবং ট্র্যাফিকের ধরণটি এসএসএইচ বা এসএসএল কিনা তা নির্ভর করে একটি অভ্যন্তরীণভাবে একটি পরিষেবা বা অন্য কোনও পরিষেবাতে নিয়ে যায়।

এসএসএলএইচ এমন ইন্টারফেসে শুনতে পারে না যেখানে অন্য পরিষেবাটি ইতিমধ্যে শুনছে, যার কারণেই আমরা আগে ড্রপবারকে স্থানীয় ইন্টারফেসে শুনতে পেলাম।

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

DAEMON = / usr / sbin / sslh DAEMON_OPTS = "- ব্যবহারকারী এসএসএলএইচ --লিস্টন 250.250.250.155:443 --ss 127.0.0.1:22 - এসএসএল 127.0.0.1:443 - পিডফিল / ভার / রান / এসএসএলএইচ / এসএসএলএইচ। pid "RUN = হ্যাঁ

অবশেষে, আমরা পরিষেবাগুলি পুনঃসূচনা:

পরিষেবা ssh স্টপ && পরিষেবা ড্রপবয়ার স্টার্ট && পরিষেবা এসএসএলএইচ পুনরায় চালু হয়

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

যদি সবকিছু সঠিকভাবে কাজ করে তবে আমরা রুট হিসাবে কাজ চালিয়ে যেতে পারি এবং যদি আমরা ইচ্ছা করি তবে ওপেনএসএইচএইচ আনইনস্টল করুন:

sudo su - প্রবণতা -r খোলার ওপেনশ-সার্ভার

ফায়ারওয়াল

পরবর্তী কাজটি আমরা ফায়ারওয়াল থেকে আলাদা ফাইলগুলিতে লগগুলি পৃথক করা is /var/log/firewall.log আরও বিশ্লেষণের সুবিধার্থে, যে কারণে আমরা প্রারম্ভকালে ulogd প্যাকেজটি ইনস্টল করেছি। এর জন্য আমরা ফাইলটি সম্পাদনা করব /etc/logd.conf সম্পর্কিত বিভাগ সামঞ্জস্য করতে:

[LOGEMU] ফাইল = "/ var / লগ / ফায়ারওয়াল.লগ" সিঙ্ক = 1

এরপরে, আমরা রেকর্ড রোটেশন ফাইলটি পরিবর্তন করব / ইত্যাদি / লোগ্রোটেট / ইউলগড প্রতিদিনের আবর্তন (তারিখ সহ) রাখা এবং ডিরেক্টরিতে সংকোচিত সালভগুলি সংরক্ষণ করতে / ভার / লগ / ইউলগ /:

/var/log/ulog/*.log /var/log/firewall.log {দৈনিক ডেটেক্সট মিসিংক কমপ্রেস দেরি কমপ্রেস শেয়ার্ড স্ক্রিপ্টগুলি 640 রুট অ্যাড পোস্টারোটেট /etc/init.d/ulogd পুনরায় লোড এমভি /var/log/firewall.log-* তৈরি করে .gz / var / লগ / ইউলগ / সমাপ্তি}

তারপরে আমরা নিম্নলিখিতগুলি সম্পাদন করে নেটফিল্টার বিধি তৈরি করব:

আইপিটি = $ (যা iptables) আইপিএসটি = 250.250.250.155 আইপিএসটিবিএলকে = 250.250.0.0 / 16 আইপিসিএএসটি = 255.255.255.255 $ আইপিটি-এফ $ আইপিটি-এক্স $ আইপিটি-জেড $ আইপিটি -এ ইনপুট -i লো-জে এসিসিপিটি $ আইপিটি - পি ইনপুট ড্রপ $ আইপিটি-পি ফরোয়ার্ড ড্রপ $ আইপিটি-পি আউটপুট অ্যাক্সেস করুন $ আইপিটি-এ ইনপুট-মি অবস্থা - স্তরের ইনভালিড -জে ইউলোগ --ulog-উপসর্গ IN_INVALID $ IPT -A INPUT -p igmp -j ULOG --ulog -প্রিফিক্স IN_IGMP $ IPT -A INPUT -m pkত্তিpe --pkt- প্রকারের সম্প্রচার -জে ULOG --ulog-উপসর্গ IN_BCAST $ IPT -A INPUT -m pkত্তিpe --pkt- প্রকার মাল্টিকাস্ট -j ULOG --ulog-উপসর্গ IN_MCAST $ আইপিটি -এ ফরওয়ার্ড -জে ইউলগ --ulog-উপসর্গ ফরোয়ার্ড $ আইপিটি-এন আইসিএমপিএনপি $ আইপিটি -এ ইনপুট!  -i lo -p icmp -j ICMP_IN $ IPT -A ICMP_IN -p icmp -f -j ULOG --ulog-prefix IN_ICMP_FRAGMENTED $ IPT -A ICMP_IN -p icmp -m icmp -m দৈর্ঘ্য!  - দৈর্ঘ্য 28: 1322 -j ULOG --ulog-উপসর্গ IN_ICMP_INVALIDSIZE $ IPT -A ICMP_IN -p icmp -m icmp -m hashlimit --hashlimit-above 4 / sec --Hshlimit- মোড srcip --hashlimit-srcmask 24 - -শালিমিট-নাম আইসিএমপিপ্লুড -জে ইউলোগ --ulog-উপসর্গ IN_ICMP_FLOOD $ আইপিটি -A আইসিএমপিএনপি-পি আইএসপি-এম আইসিএমপি-এম হ্যাশলিমিট - হ্যাশলিমিট-আপ 64 কেবি / মিনিট - হ্যাশলিমিট-মোড এসক্রিপ -নাম আইক্যাম্প্যাটাক -জ ইউলোজি --ulog-উপসর্গ IN_ICMP_FLOOD $ আইপিটি -A আইসিএমপিএনপি-আইসিএমপি-এম আইসিএমপি-এম u24!  --u32 "0x4 & 0x3fff = 0x0" -j ইউলোগ --ulog-উপসর্গ IN_ICMP_ATTACK $ আইপিটি -A আইসিএমপিএনপি-আইসিএমপি-এম আইসিএমপি!  --icmp-type প্রতিধ্বনি-অনুরোধ -m রাজ্য - স্টেট নতুন -j ULOG --ulog-উপসর্গ IN_ICMP_INVALID $ IPT -A আইসিএমপিএনপি-আইসিএমপি-এম আইসিএমপি --icmp- প্রকার ইকো-অনুরোধ -j ULOG --ulog- উপসর্গ IN_ICMP $ আইপিটি -A আইসিএমপিএনপি-পি আইসিএমপি-এম আইসিএমপি - আইপিপি-টাইপ ইকো-অনুরোধ-এম সীমা - লিমিট 1 / সেকেন্ড - লিমিট-বিস্ফোরণ 4 -j এসিসিপিটি-আইপিটি -এ আইসিএমপিএনপি-আইসিএমপি-এম আইসিএমপি --icmp- প্রকার প্রতিধ্বনি-উত্তর সীমা - হালকা 2 / সেকেন্ড - লিমিটেড-বিস্ফোরণ 4 -j এসিসিপিটি $ আইপিটি -A আইসিএমপিএনপি-পি আইএসএমপি-এম আইসিএমপি - আইপিপি-টাইপ গন্তব্য-অলক্ষণযোগ্য-এম সীমা - সীমা 2 / সেকেন্ড - লিমিটেড-বিস্ফোরণ 4-জে এসিসিপিটি $ আইপিটি -এ আইসিএমপিএনপি-পি আইসিএমপি-এম আইসিএমপি -icmp-টাইপ সময়-অতিক্রম -মীমা - লিমিট 2 / সেকেন্ড - লিমিট-বিস্ফোরণ 4-জে এসিসিপিটি $ আইপিটি -এ আইসিএমপিএনপি-পি আইসিএমপি-এম আইসিএমপি - আইপিপি-টাইপ প্যারামিটার-সমস্যা -ম সীমা - হালকা 2 / সেকেন্ড - লিমিটেড-বিস্ফোর 4-জ এসিসিপিটি $ আইপিটি-এ আইসিএমপিএনপি -জে ফেরত $ আইপিটি-এন ইউডিপিপি $ আইপিটি -এ ইনপুট!  -i lo -p udp -j UDP_IN $ IPT -A UDP_IN!  -আই লো!  -p udp -f -j ULOG --ulog-উপসর্গ IN_UDP_FRAGMENTED $ IPT -A UDP_IN -p udp -m udp --sport 53 -m দৈর্ঘ্য!  - দৈর্ঘ্য 28: 576 -j ULOG --ulog-উপসর্গ IN_UDP_DNS_INVALIDSIZE $ IPT -A UDP_IN -p udp -m udp --dport 53 -m -state --state NEW -j ULOG --ulog-উপসর্গ IN_UDP_DNSREQUEST $ IPT - একটি ইউডিপিএনপি-পি ইউডিপি-এম ইউডিপি --dport 53-মি-স্টেট - স্টেট নতুন-জে প্রত্যাখ্যান - আইরেট-সহ আইসিএমপি-পোর্ট-অপ্রাপ্তযোগ্য $ আইপিটি -এ ইউডিপিপি-পি ইউডিপি-এম ইউডিপি!  --sport 53!  -স $ আইপিএসটিবিএলকে!  -d $ IPBCAST -m state --state NEW -j ULOG --ulog-prefix IN_UDP $ IPT -A UDP_IN -p udp -m udp -m state --state ESTABLISHED, RELATED -j ACCEPT $ IPT -A UDP) -j ফিরিয়ে দিন $ আইপিটি-এন টিসিপিএনপি $ আইপিটি -এ ইনপুট!  -i lo -p tcp -j টিসিপিএনপি $ আইপিটি -এ টিসিপিএনপি!  -আই লো!  -p tcp -f -j ULOG --ulog-উপসর্গ IN_TCP_FRAGMENTED $ IPT -A TCP_IN -p tcp -m tcp --sport 53 -m state --state ESTABLISHED, সম্পর্কযুক্ত - মিটার দৈর্ঘ্য!  - দৈর্ঘ্য 513: 1500 -j ULOG --ulog-উপসর্গ IN_TCP_DNS_INVALIDSIZE $ IPT -A TCP) -p tcp -m tcp --dport 53 -m state --state NEW -j ULOG --ulog-prefix IN_TCP_DNS $ IPT -A টিসিপিএনপি -পি টিসিপি-এম টিসিপি --dport 53-মিটার রাজ্য - নতুন নতুন -j প্রত্যাশা - আইসিএমপি-পোর্ট-অপ্রয়োজনীয় with আইপিটি-এ টিসিপিএনপি -পি টিসিপি-এম টিসিপি-এম মাল্টিপোর্ট!  --dport 80,443 -m state --state NEW -j ULOG --ulog-prefix IN_TCP $ IPT -A TCP_IN -p tcp -m tcp -m মাল্টিপোর্ট - ডিপোর্টস 80,443 -m রাজ্য - স্টেট নতুন-এম হ্যাশলিমিট - 4 / সেকেন্ড পর্যন্ত হ্যাশলিট-আপ --hashlimit- বিস্ফোরিত 16 --Hshlimit- মোড srcip --hashlimit- নাভেরিক -j এসিসিপিটি $ IPT -A টিসিপিএনপি-পি টিসিপি-এম টিসিপি-এম মাল্টিপোর্ট --ডপোর্টস 80,443-মি অবস্থা - রাজ্য ESTABLISHED -m সংঘর্ষ!  --connlimit-16 -j ACCEPT $ IPT -A TCP_IN -p tcp -m tcp -m মাল্টিপোর্ট! 

পূর্ববর্তী কনফিগারেশন সহ, আমাদের ভিপিএসকে যুক্তিসঙ্গতভাবে সুরক্ষিত করা উচিত, তবে আমরা যদি ইচ্ছা করি তবে আমরা এটি আরও কিছুটা সুরক্ষিত করতে পারি, যার জন্য আমরা আরও কিছু উন্নত নিয়ম ব্যবহার করতে পারি।

সমস্ত ভিপিএস নেটফিল্টারের জন্য অতিরিক্ত মডিউল স্থাপনের অনুমতি দেয় না তবে এটি একটি খুব দরকারী পিএসডি, যা আপনাকে পোর্ট স্ক্যানগুলি এড়াতে দেয়। দুর্ভাগ্যক্রমে এই মডিউলটি ডিফল্টভাবে নেটফিল্টারে একীভূত হয় নি, তাই নির্দিষ্ট প্যাকেজ ইনস্টল করার পরে মডিউলটি তৈরি করা প্রয়োজন:

প্রবণতা -আরভিডাব্লু ইনস্টল করুন iptables-dev xtables-addons-উত্স-মডিউল-সহায়ক মডিউল-সহকারী --verbose - টেক্সট-মোড অটো-ইনস্টল করুন xtables-addons-উত্স

উপরের কাজটি শেষ হয়ে গেলে, আমরা এর মতো একটি বিধি যুক্ত করতে পারি:

iptables -A INPUT -m psd --psd-weight-threshold 15 --psd-বিলম্ব-প্রান্তিক 2000 --psd-lo-Port-weight 3 --psd-হাই-পোর্ট-ওজন 1 -j ULOG --ulog- উপসর্গ IN_PORTSCAN

পূর্ববর্তী নিয়মটি মূলত এর অর্থ হ'ল আমরা এমন একটি কাউন্টার তৈরি করব যা প্রতিবার 3 এর চেয়ে কম বন্দরটি অ্যাক্সেস করার চেষ্টা করার সময় 1024 টি বৃদ্ধি পাবে এবং 1 বার প্রতিবার 1023 এর চেয়ে বেশি বন্দরটি অ্যাক্সেস করার চেষ্টা করা হবে এবং যখন এই কাউন্টারটি 15 এ পৌঁছাবে 20 সেকেন্ডেরও কম সময়ের মধ্যে প্যাকেজগুলি নিবন্ধভুক্ত হবে ইউলগ পোর্টস্ক্যান এ চেষ্টা হিসাবে। প্যাকেটগুলি এখনও একবারে ফেলে দেওয়া যেতে পারে, তবে এই ক্ষেত্রে আমরা ব্যবহারের ইচ্ছা করি fail2ban, যা আমরা পরে কনফিগার করব।

নিয়মগুলি তৈরি হয়ে গেলে, তাদের অবশ্যই অবিরাম থাকার জন্য আমাদের অবশ্যই কিছু সাবধানতা অবলম্বন করতে হবে, অন্যথায় সার্ভার পুনরায় চালু করার সময় আমরা সেগুলি হারাব। এটি সম্পাদন করার বিভিন্ন উপায় রয়েছে; এই টিউটোরিয়ালে আমরা শুরুতে ইনস্টল করা iptables- ধ্রুবক প্যাকেজটি ব্যবহার করব, যা নিয়মগুলি সংরক্ষণ করে /etc/iptables/rules.v4 y /etc/iptables/rules.v6 আইপিভি 6 এর জন্য।

iptables-save> /etc/iptables/rules.v4

আসলে, কিউবার আইপিভি 6 এর ব্যবহার এখনও ব্যাপক না হলেও আমরা কিছু প্রাথমিক নিয়ম তৈরি করতে পারি:

আইপিটি = $ (যা আইপি 6 টেবিলগুলি) $ আইপিটি-পি ইনপুট ড্রপ $ আইপিটি-পি ফরোয়ার্ড ড্রপ $ আইপিটি-পি আউটপুট অ্যাক্সেস করুন $ আইপিটি-এ ইনপুট -i লো -j অ্যাক্সেস করুন $ আইপিটি-এ ইনপুট! -i লো-মি রাষ্ট্র - স্থিতাবস্থা ESTABLISHED, সম্পর্কিত -j এসিসিপিটি সেট না করে আইপিটি সেট করুন

এই নিয়মগুলি অবিচল করেও তৈরি করা যেতে পারে:

ip6tables-save> /etc/iptables/rules.v6

শেষ পর্যন্ত বৃহত্তর সুরক্ষার জন্য, আমরা ফায়ারওয়ালের রেজিস্ট্রি পরিষ্কার করি এবং পরিষেবাগুলি পুনরায় চালু করি:

প্রতিধ্বনি -n> /var/log/firewall.log পরিষেবা লোগ্রোটেট পুনঃসূচনা পরিষেবা Ulogd পুনরায় আরম্ভ পরিষেবা iptables- ধ্রুবক পুনঃসূচনা

nginx

আমরা ওয়েব সার্ভার হিসাবে এনগিনেক্স ব্যবহার করব, কারণ ভিপিএসগুলিতে সত্যিকারের সার্ভারের তুলনায় কম পরিমাণে র‌্যাম থাকে, তাই সাধারণত অ্যাপাচের চেয়ে হালকা কিছু পাওয়া সুবিধাজনক।

এনগিনেক্স কনফিগার করার আগে, আমরা এইচটিটিপিএস-এর ব্যবহারের জন্য একটি শংসাপত্র (কোনও পাসওয়ার্ড নেই) তৈরি করব:

সিডি / ইত্যাদি / এনজিএনএক্স ওপেনসেল জেনার্সা -ডেস 3-আউট সার্ট.কি 4096 সিপি-ভি সার্টি.কি সার্টি.কি.রিজিনাল ওপেনসেল রেক-নতুন -কি সার্টি.কি-আউট সারিট সিএসআর ওপেনএসএল আরএসএ -আর সার্টিটি.কি.রিজিনাল - cert.key ওপেনএসএল x509 -আরেক-দিনগুলি 365 -র মধ্যে cert.csr- সাইনকি সার্টি.কি-আউট সার্টক্রিট

এটি হয়ে গেলে, আমরা "এলুসুয়ারিও" ব্যবহারকারীর জন্য একটি পাসওয়ার্ড ফাইল তৈরি করব:

htpasswd -c .htpasswd ব্যবহারকারী

এরপরে, আমরা ফাইলটি পরিবর্তন করব জন্য / etc / nginx / সাইট-উপলব্ধ / Default ডিফল্ট সাইট পছন্দগুলি সেট করতে। এটি দেখতে এটি দেখতে পারে:

সার্ভার {সার্ভার_নাম লোকালহোস্ট; সূচী সূচক। html সূচক। htm default.html ডিফল্ট। মূল / বর্ণ / www; অবস্থান / {# যাচাইয়ের আদেশ এবং পৃষ্ঠাটি লোড করার জন্য সেট করে, যদি ইউআরআই খুঁজে না পাওয়া যায় try uri $ uri / /index.html; }} সার্ভার {127.0.0.1:443 শুনুন; সার্ভার_নাম লোকালহোস্ট; সূচী সূচক। html সূচক। htm default.html ডিফল্ট। মূল / বর্ণ / www; ssl on; ssl_certificate cert.crt; ssl_certificate_key cert.key; ssl_session_Toutout 5m; # এইচটিটিপিএসকে কেবলমাত্র টিএলএসের (এসএসএল থেকে আরও সুরক্ষিত) এসএসএল_প্রোটোকলস টিএলএসভি 1 টিএলএসভি 1.1 টিএলএসভি 1.2 সক্ষম করুন; # উচ্চ-শক্তিমান সাইফারগুলিকে অগ্রাধিকার দিন [উচ্চমাত্রা], # মাঝের-শক্তি সাইফারগুলি [মিডিয়াম] তালিকার শেষের দিকে, # নিম্ন-শক্তি সাইফারগুলি অক্ষম করুন [LOW] (40 এবং 56 বিট) # সিফারগুলি অক্ষম করুন অ্যালগরিদম রফতানি করুন [এক্সপ] প্রমাণীকরণ ছাড়াই # নাল সিফারগুলি [এনএনএলএল] অক্ষম করুন [এনএনএলএল], এসএসএল (সংস্করণ 2 এবং 3) এবং ডিএসএস (কেবলমাত্র 1024 বিট পর্যন্ত কীগুলি মঞ্জুরি দিন) এসএসএল_সিফারস উচ্চ: + মিডিয়াম:! কম :! এক্সপ: ! এনএনওএল:! eNULL:! SSLv3:! SSLv2:! ডিএসএস; # সার্ভারের এনক্রিপশন পদ্ধতিগুলি পছন্দ করুন (ডিফল্টরূপে ক্লায়েন্টের ব্যবহৃত হয়) ssl_prefer_server_ciphers; অবস্থান / {# প্রমাণীকরণ সক্ষম করুন auth_basic "লগইন"; auth_basic_user_file /etc/nginx/.htpasswd; # যাচাইয়ের ক্রম এবং পৃষ্ঠা কোডটি লোড করার জন্য সেট করুন, যদি ইউআরআই চেষ্টা_ফায়ালগুলি $ uri $ uri / = 404 না ​​পাওয়া যায়; # অনুমোদনপ্রাপ্ত ব্যবহারকারীদের স্বয়ংক্রিয় সূচকগুলির জন্য একটি সূচক তৈরির অনুমতি দেয়; autoindex_exact_size বন্ধ; অটোইন্ডেক্স_লোক্যালটাইম চালু; }}

কনফিগারেশনটি সঠিক কিনা তা আমরা পরীক্ষা করি:

nginx -t

অবশেষে, আমরা পরিষেবাটি পুনরায় চালু করব:

সেবা nginx পুনরাবৃত্তি

Fail2Ban

Fail2Ban কনফিগার করা শুরু করার আগে, বৃহত্তর সুরক্ষার জন্য আমরা পরিষেবাটি বন্ধ করি এবং রেজিস্ট্রি পরিষ্কার করি:

ব্যর্থ 2ban-ক্লায়েন্ট স্টপ প্রতিধ্বনি </>> /var/log/fail2ban.log

এর পরে, আমরা কনফিগারেশন ফাইল তৈরি করি /etc/fail2ban/jail.local নিম্নলিখিত কাস্টম সামগ্রী সহ:

# কাস্টম কনফিগারেশন ফাইল /etc/fail2ban/jail.local # [খেলাপি] ফাইন্ডটাইম = 43200; 12 ঘন্টা ব্যানটাইম = 86400; 1 দিনের ম্যাক্সেট্রি = 3; নিষিদ্ধকরণ কার্যকর হবে চতুর্থ প্রয়াসের পরে [এসএসএস] সক্ষম = মিথ্যা [এনগিনেক্স-অউথ] সক্ষম = সত্য ফিল্টার = এনজিন্স-অ্যাথ অ্যাকশন = iptables-মাল্টিপোর্ট [নাম = NoAuthFailures, পোর্ট = "HTTP, https"] লগপথ = / var / লগ / এনগিনএক্স * / * ত্রুটি * .লগ [এনগিনেক্স-ব্যাডবটস] সক্ষম = সত্য ফিল্টার = অ্যাপাচি-ব্যাডবটস অ্যাকশন = আইপিটেবলস-মাল্টিপোর্ট [নাম = ব্যাডবটস, পোর্ট = "HTTP, https"] লগপাথ = / ভের / লগ / এনগিনেক্স * /*access*.log ব্যানটাইম = 4; 604800 সপ্তাহের ম্যাক্রেস্ট্রি = 1 [এনগিনেক্স-লগইন] সক্ষম = সত্য ফিল্টার = এনগিনেক্স-লগইন অ্যাকশন = iptables-মাল্টিপোর্ট [নাম = NoLoginFailures, পোর্ট = "HTTP, https"] লগপথ = / var / লগ / এনগিনেক্স * / * অ্যাক্সেস *। লগ ব্যানটাইম = 0; 1800 মিনিট [এনগিনেক্স-নোগ্রিপ্ট] সক্ষম = সত্য ক্রিয়া = iptables- মাল্টিপোর্ট [নাম = NoScript, পোর্ট = "HTTP, https"] ফিল্টার = nginx-noscript লগপথ = /var/log/nginx*/*access*.log ম্যাক্রেট্রি = 30 [এনগিনেক্স-প্রক্সি] সক্ষম = সত্য ক্রিয়া = iptables- মাল্টিপোর্ট [নাম = NoProxy, পোর্ট = "HTTP, https"] ফিল্টার = nginx- প্রক্সি লগপথ = /var/log/nginx*/*access*.log ব্যানটাইম = 0 ; 604800 সপ্তাহের ম্যাক্রেস্ট্রি = 1 [ফায়ারওয়াল] সক্ষম = সত্য ক্রিয়া = iptables- মাল্টিপোর্ট [নাম = ফায়ারওয়াল] ফিল্টার = ফায়ারওয়াল লগপাথ = /var/log/firewall.log ম্যাক্রেস্ট্রি = 0

এটি হয়ে গেলে, আমরা ডিরেক্টরিতে তৈরি করি /etc/fail2ban/filters.d/ নিম্নলিখিত ফাইলগুলি:

# /etc/fail2ban/filter.d/nginx-auth.conf # অথর ফিল্টার # ব্লক আইপিগুলি যে মৌলিক প্রমাণীকরণ ব্যবহার করে প্রমাণীকরণ করতে ব্যর্থ হয় # [সংজ্ঞা] ব্যর্থতা: মৌলিক প্রমাণীকরণের জন্য কোনও ব্যবহারকারী / পাসওয়ার্ড সরবরাহ করা হয়নি। * ক্লায়েন্ট: ব্যবহারকারী। * পাওয়া যায় নি। * ক্লায়েন্ট: ব্যবহারকারী। * পাসওয়ার্ড মেলেনি client * ক্লায়েন্ট: উপেক্ষারেজ =
# /etc/fail2ban/filter.d/nginx-login.conf # লগইন ফিল্টার # ওয়েব অ্যাপ্লিকেশন লগ ইন পৃষ্ঠা যাচাই করতে ব্যর্থ আইপি ব্লক # এইচটিটিপি 200 + পোস্ট / সেশনস => জন্য অ্যাক্সেস লগ স্ক্যান করুন # [সংজ্ঞা ] ফেলআরেজেক্স = ^ -। * পোষ্ট / সেশনস HTTP / 1 \ .. "200 উপেক্ষা"
# /etc/fail2ban/filter.d/nginx-noscript.conf # নোগ্রিপ্ট ফিল্টার #। পিএফপি, .পিএল,। এক্সে এবং অন্যান্য মজার স্ক্রিপ্টগুলির মতো স্ক্রিপ্টগুলি কার্যকর করার চেষ্টা করে আইপি ব্লক করুন। # ম্যাচগুলি যেমন # 192.168.1.1 - - "GET /something.php # [সংজ্ঞা] ব্যর্থতা> = ^ -। * পেতে। * (Ph। পিএইচপি | \। এসপি | ex। এক্সেক্স | \ .পিএল | \ .সিজি | gi স্কিজি) উপেক্ষা
# /etc/fail2ban/filter.d/proxy.conf # প্রক্সি ফিল্টার # আইপি ব্লক করে সার্ভারকে প্রক্সি হিসাবে ব্যবহার করার চেষ্টা করছে। # ম্যাচগুলি যেমন # 192.168.1.1 - - "পান http://www.something.com/ # [সংজ্ঞা] ফেলরেজেক্স = ^ -। * পেতে HTTP। * উপেক্ষা করুন =
# /etc/fail2ban/filter.d/firewall.conf # ফায়ারওয়াল ফিল্টার # [সংজ্ঞা] ফেলরেজেক্স = ^। * IN_ (INVALID | পোর্টস্কান | ইউডিপি | টিসিপি |)। * এসআরসি = । * $ ਨਜ਼ਰআরেজেক্স =

শেষ পর্যন্ত, আমরা পরিষেবাটি শুরু করি এবং কনফিগারেশনটি লোড করি:

ব্যর্থ 2ban-ক্লায়েন্ট পুনরায় লোড করুন

প্রতিপাদন

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

ভিপিএসে কোনও ইমেল অ্যাকাউন্ট কনফিগার করা না থাকলে মাল্টিটেল শুরু করার সময় উপস্থিত একটি সতর্কতা বার্তা অক্ষম করার পরামর্শ দেওয়া হয়, যার জন্য আমরা নিম্নলিখিত কমান্ডটি কার্যকর করব:

প্রতিধ্বনি "চেক_মেল: 0"> ~ / .multitailrc

প্রকৃতপক্ষে, একটি শর্ট কমান্ডের সাহায্যে লগগুলি দ্রুত দেখতে আমরা একটি উপনাম (4) ভালভাবে তৈরি করতে পারি, উদাহরণস্বরূপ, "ফ্ল্যাগ":

ওরফে ফ্ল্যাগ = 'মাল্টিটেল - ফলো-অল /var/log/firewall.log /var/log/fail2ban.log'

1) এগুলি কল্পিত মান।
2) আপনি কীভাবে এটি কাজ করে তা বুঝতে পেরে আপনি অন্যান্য পরিষেবাদি সক্ষম করা সহজ।
3) আরও তথ্যের জন্য, চালান ম্যান sudoers।
4) allyচ্ছিকভাবে ~ / .bash_aliases ফাইল যুক্ত করা যেতে পারে


আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়বদ্ধ: মিগুয়েল অ্যাঞ্জেল গাটান
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।

  1.   msx তিনি বলেন

    কিছু আকর্ষণীয় জিনিস আছে, +1

  2.   ইউকিটারু তিনি বলেন

    @ কনফিগারেশনে এই রেখাটি হুগো:

    এসএসএল_প্রোটোকল এসএসএলভি 3 টিএলএসভি 1;

    আমি এটি থেকে এসএসএলভি 3 সরিয়ে ফেলব কারণ সেই প্রোটোকলটি আর নিরাপদ নয়, এমনকি দেবিয়ান জেসিতেও সেই কারণে সেই প্রোটোকলটি ব্যবহার এড়াতে অনেক পরিষেবা কনফিগার করা হয়েছে।

    এখানে বিষয় সম্পর্কিত তথ্য:

    https://www.linode.com/docs/security/security-patches/disabling-sslv3-for-poodle
    http://disablessl3.com/

    1.    হুগো তিনি বলেন

      এইচটিটিপিএসের উপর মূল পরিষেবাগুলি সরবরাহ করার ধারণাটি আসলেই ছিল না, তবে এসএসএইচ-র জন্য 443 পোর্ট কীভাবে ব্যবহার করতে হয় তা ব্যাখ্যা করার জন্য যদি প্রয়োজন হয় তবে এইচটিটিপিএসের জন্য এটি ব্যবহারের সম্ভাবনাটি হারাবে না, তবে সতর্কতার জন্য ধন্যবাদ।

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

  3.   ড্যানিয়েল পিজেড তিনি বলেন

    এই মহান টিউটোরিয়ালের জন্য আপনাকে অনেক ধন্যবাদ, এখন আমি এটি অনুশীলন করব! :D, চালিয়ে যান DesdeLinux, তারা সবসময় আমাকে অবাক করে, পেরু থেকে শুভেচ্ছা।

  4.   Ekআন্দেকুয়ের তিনি বলেন

    ভাগ করে নেওয়ার জন্য আপনাকে অনেক ধন্যবাদ।

  5.   ফার্নান্দো তিনি বলেন

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