80 এবং 443 পোর্টে বাধ্য হওয়া থেকে অন্যান্য অ্যাপ্লিকেশনগুলি রোধ করা হচ্ছে


16

গত সপ্তাহে আমি একজন ভীত গ্রাহকের কাছ থেকে কল পেয়েছিলাম কারণ সে ভেবেছিল যে তার ওয়েবসাইট হ্যাক হয়েছে। আমি যখন তার ওয়েবসাইটটি দেখলাম তখন আমি apache2ডিফল্ট পৃষ্ঠাটি দেখেছি । সেই রাতে আমার সার্ভারটি ( Ubuntu 16.04 LTS) আপগ্রেড হয়েছে এবং পুনরায় চালু হয়েছে। সাধারণত কিছু ভুল হয়ে গেলে আমি রাতের বেলা সতর্ক হয়ে যেতাম। এবার নয়, কারণ মনিটরিং সিস্টেমটি HTTP স্থিতি কোড 200 পরীক্ষা করে এবং apache2ডিফল্ট পৃষ্ঠাটি স্ট্যাটাস কোড 200 সহ আসে 200

যা ঘটেছিল তা হ'ল শুরুর সময় apache2আমার আসল ওয়েবসার্ভার এনজিনেক্সের চেয়ে 80 এবং 443 পোর্টে বাঁধাই দ্রুত ছিল। আমি নিজে অ্যাপাচি 2 ইনস্টল করি নি। aptitude why apache2আমি পিএইচপি 7.0 এর মাধ্যমে জানতে প্যাকেজের এটির প্রয়োজন।

কেবল অপসারণ apache2কাজ করবে না কারণ দৃশ্যত php7.0 এর প্রয়োজন। এটি কি কোনওভাবেই কোনও বিধিনিষেধ তৈরি করতে পারে যাতে কেবলমাত্র এনজিনেক্সকে 80 এবং 443 পোর্টে বাঁধতে দেওয়া হয়?

অন্যান্য সমাধানগুলিও স্বাগত অপেক্ষা বেশি।


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

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

9
পার্শ্ব নোট হিসাবে - This time not, because the monitoring system checks for HTTP status code 200। আপনি ওয়েব পৃষ্ঠার প্রকৃত সামগ্রী (শরীরের বা শিরোনামের কিছু নির্দিষ্ট স্ট্রিং) পরীক্ষা করে এটি পর্যবেক্ষণ সিস্টেমকে উন্নত করতে পারেন, এটি আরও নির্ভরযোগ্য হবে।
ভিএল -80

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

5
@ ন্যাজলকে মোটামুটি মতামত বলে মনে হচ্ছে এই ধরণের সমস্যাটি কোনও পরীক্ষা মেশিনে প্রদর্শিত না হতে পারে ... অ্যাপাচি 2 বা এনজিনেক্স বন্দরগুলি বাঁধবে কিনা তা নিয়ে তার কার্যকরভাবে একটি রেসের শর্ত রয়েছে এবং টেস্ট মেশিনটি তাত্ত্বিকভাবে তাত্ত্বিকভাবে শেষ হতে পারে পরীক্ষার সময়কালের জন্য nginx জয় (কেবলমাত্র সুযোগে) যাতে সমস্যাটি আবিষ্কার না হয়।
ডক্টর জে

উত্তর:


29

আপনি কোনও বন্দরকে ভুল পরিষেবা দ্বারা আবদ্ধ হতে আটকাতে পারবেন না। আপনার ক্ষেত্রে, কেবল অটোস্টার্ট থেকে অ্যাপাচি সরান এবং আপনার ভাল হওয়া উচিত।

16.04 এবং আরও নতুনের জন্য:

sudo systemctl disable apache2

পুরানো উবুন্টু সংস্করণগুলির জন্য:

sudo update-rc.d apache2 disable

2
আমি এটি করব, তবে আমি আশাবাদী যে আমি ভবিষ্যতের পরিস্থিতি থেকে নিজেকে রক্ষা করতে পারব যেখানে 80 এবং 443 বন্দরটি আবদ্ধ করে অন্য একটি প্যাকেজ অজান্তে অন্য প্যাকেজের নির্ভরতা হিসাবে আমার সিস্টেমে ইনস্টল করা হয়েছে।
বয়েড

1
যেহেতু এটি 16.04, এছাড়াও:systemctl disable apache2
মুর্গু

12
@ বোয়াদ: আপনি কেন "অজান্তে" অন্ধভাবে প্যাকেজ ইনস্টল করছেন? কীভাবে আসুন, গ্রাহকদের দ্বারা ব্যবহৃত আপনার লাইভ সার্ভারে, আপনি কী প্যাকেজ এবং নির্ভরতা ইনস্টল করা হচ্ছে তা পড়ছেন না? এবং কীভাবে আপনি চালানোর আগে মিরর সার্ভারে সমস্ত কিছু পরীক্ষা করছেন না? এগুলি প্রাথমিক অপারেশন নীতি এবং আপনার সমস্ত সমস্যার সমাধান করবে।
মনিকার সাথে লাইটনেস রেস

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

3
@ বয়ড: "দুর্ভাগ্যক্রমে আমরা প্রথমে ডামি সার্ভারে প্রতিটি অপারেশন পরীক্ষা করতে পারছি না" কেন নয়? আপনার গ্রাহকরা কি জানেন যে আপনি এই পদ্ধতিটি এড়িয়ে গেছেন?
মনিকা এর সাথে লাইটনেস রেস

27

আপনি যদি সত্যিই ব্যবহার না করে থাকেন apache2এবং এটি পিএইচপি 7.0 এর প্রয়োজন হয় তবে এটি মনে হয় আপনি libapache2-mod-php7.0ইনস্টল করেছেন। সেই প্যাকেজটি অ্যাপাচি ছাড়া অকেজো। যেহেতু আপনি এনজিনেক্স ব্যবহার করছেন, আপনার সম্ভবত সম্ভবত ইনস্টল php7.0-fpmবা ইনস্টলও php7.0-cgiকরা হয়েছে, যার মধ্যে php7.0দুটি নির্ভরতার প্রয়োজনীয়তা সন্তুষ্ট করার জন্য যথেষ্ট :

$ apt-cache depends php7.0
php7.0
 |Depends: php7.0-fpm
 |Depends: libapache2-mod-php7.0
  Depends: php7.0-cgi
  Depends: php7.0-common
  Conflicts: <php5>

যদি আপনার কোনও php7.0-{fpm,cgi}ইনস্টলড থাকে তবে আপনি এগিয়ে গিয়ে অ্যাপাচি আনইনস্টল করতে পারেন।


6
আমি প্রকৃতপক্ষে আজ শিখেছি যে আমার অবস্থায় আমি প্যাকেজটি ইনস্টল php7.0-fpmনা করেই আরও ভাল php7.0। এটিও ওন্দেজ
বয়ড

5
এটিই আসল সমস্যার আসল সমাধান: অ্যাবাচি ইনস্টল না করে কীভাবে উবুন্টুতে এনগিনেক্স এবং পিএইচপি ইনস্টল করবেন।
ডেভিড কুলেন

2

আপনার প্রশ্নের উত্তর দেওয়ার জন্য, আপনি সম্ভবত SElinux ব্যবহার করে একটি নির্দিষ্ট অ্যাপ্লিকেশনটিতে একটি বন্দর সীমাবদ্ধ করতে পারেন। আমি এটি নিজেই ব্যবহার করি নি এবং এর ক্ষমতার সম্পর্কে কেবল মাত্রাতিরিক্ত জ্ঞান আছে, তবে এখানে এই সাইটের মধ্যে একটি পয়েন্টার পেয়েছি:

/server//a/257056/392230

এই উত্তরে, wzzrd দেখায় যে কোনও নির্দিষ্ট অ্যাপ্লিকেশনকে (foo) নির্দিষ্ট পোর্টে (803) বাঁধতে অনুমতি কীভাবে দেওয়া যায় show আপনার কেবলমাত্র পলিসি সেট আপ করতে হবে যাতে আপনার নির্দিষ্ট পোর্টগুলি (80 এবং 443) কেবলমাত্র আপনার অ্যাপ্লিকেশন (এনজিনেক্স) অনুমোদিত হয়।

Wzzrd এর উত্তরে নিজেকে ঝাঁকিয়ে দেওয়া, এটি নীতিতে যুক্ত করার মতোই সহজ হতে পারে

allow nginx_t nginx_port_t:tcp_socket name_bind;

এবং এই চলমান

semanage port -a -t nginx_port_t -p tcp 80
semanage port -a -t nginx_port_t -p tcp 443

যদিও, আমি ধারণা করি আপনার নীতিমালায় একটি লাইনও প্রয়োজন হবে যা নির্দিষ্ট করে যে কোনও অন্য প্রোগ্রাম সেই পোর্টগুলির সাথে আবদ্ধ হতে পারে না।

শেষ পর্যন্ত, আমি কেবল সঠিক কনফিগারেশনটি কী তা অনুমান করছি।

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

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


2
lol @ "সহজেই সেন্টোস ব্যবহার করা সহজ হতে পারে"
ডেভিড কুলেন

2

এমন কিছু যা আমি এখনও উত্তরে দেখিনি, তবে এখনও এটি একটি সম্ভাবনা:

অন্য ক্ষেত্রে শোনার জন্য অ্যাপাচি কনফিগারেশনটি পরিবর্তন করুন, সেক্ষেত্রেই। আপনি অ্যাপাচি কনফিগারেশন ফাইলটি খোলার মাধ্যমে এবং Listen 80অন্য পোর্টে থাকা লাইনগুলি পরিবর্তন করে এটি করতে পারেন ।


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

0

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


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

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

1
যদিও আমি আপনার সাথে একমত হয়েছি যে এটি করা কোনও ডিসট্রোয়ের পক্ষে অনুচিত, তবুও আমি মনে করি এটি মন্তব্য হিসাবে বেশি উপযুক্ত হত, কারণ এটি সত্যই প্রশ্নের উত্তর দেয় না।
JoL

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