প্রশ্ন একটি LAMP সার্ভার সুরক্ষিত করার জন্য টিপস


এটা একটা ক্যানোনিকাল প্রশ্ন একটি LAMP স্ট্যাক সুরক্ষিত সম্পর্কে

একটি LAMP সার্ভার সুরক্ষিত করার জন্য পরম নির্দেশিকা কি?


91
2017-12-14 01:52


উত্স




উত্তর:


ডেভিড এর উত্তর সার্ভার শক্তির সাধারণ নীতির একটি ভাল বেসলাইন। ডেভিড হিসাবে নির্দেশিত, এই একটি বিশাল প্রশ্ন। আপনি গ্রহণ নির্দিষ্ট কৌশল আপনার পরিবেশে এবং আপনার সার্ভার কিভাবে ব্যবহার করা হবে উপর নির্ভর করে। সতর্কতা, এটি নির্মাণ এবং সঠিক কাজ সম্পন্ন করার জন্য একটি পরীক্ষামূলক পরিবেশে অনেক বেশি কাজ করতে পারে। আপনার উৎপাদন পরিবেশে সংহত করার জন্য অনেকগুলি কাজ দ্বারা অনুসরণ করা, এবং আরো গুরুত্বপূর্ণভাবে, ব্যবসায়িক প্রক্রিয়া।

প্রথম, তবে, আপনার সংস্থার কোন কঠোর নীতি আছে কিনা তা পরীক্ষা করুন, কারণ এটিগুলি সর্বাধিক সরাসরি প্রাসঙ্গিক হতে পারে। যদি না হয়, আপনার ভূমিকা উপর নির্ভর করে, এটি তাদের নির্মাণ করার জন্য একটি মহান সময় হতে পারে। আমি নীচে আপ থেকে পৃথকভাবে প্রতিটি উপাদান tackling সুপারিশ করবে।

এল
আপনাকে সাহায্য করার জন্য উপলব্ধ ভাল গাইড প্রচুর আছে। এই তালিকাটি আপনার বিতরণের উপর নির্ভর করে আপনাকে সাহায্য করতে পারে না বা পারে না।


Apache নিরাপদ মজা হতে পারে। আমি অপারেটিং সিস্টেম ও পিএইচপি তুলনায় ওএসকে কঠিন করে তুলতে এবং ইউটিলিটি বজায় রাখা সহজ করে তুলি।

এম

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


105
2017-12-14 14:50



আমি এই উত্তরটি অন্তত 10 বার ভোট দিতে চাই। - user58859
নীরব এন - IPTables বা বহিরাগত ফায়ারওয়ালের সাথে, জনসাধারণের অ্যাক্সেসের জন্য প্রয়োজনীয় যা কেবল নেটওয়ার্কের সংযোগগুলি ব্লক করে। - Matt
এটি একটি সম্প্রদায় উইকি হওয়া উচিত - Brian Adkins
এটা ফায়ারওয়াল ভুলে খুব সহজ। আমি এমন একজনের কথা শুনেছি যে কোনও ওয়েবসাইটের জন্য ওয়েব সার্ভার তৈরি করেছে এবং এমনকি 80 টি পোর্ট নেই এমন ট্র্যাফিক ফাঁকা করার জন্য টিসিপি / আইপি স্ট্যাকের হ্যাকিং পর্যন্ত গিয়েছিল। অন্য জিনিস যা উপেক্ষা করা হয় তা হল অপ্রয়োজনীয় পরিষেবা - যদি এটি প্রয়োজন হয় না চালু করা, এটি বন্ধ করুন। - Aaron Mason
@ অরোনমসনঃ অভিনন্দন! আপনি একটি সফল উপন্যাস আছে। মনে রাখবেন যে আপনার নির্দিষ্ট পরিস্থিতি ভালভাবে কাজ করেছে, কিন্তু আশা করি ভবিষ্যতের পাঠকরা আপনার অস্বাভাবিক পরিবেশ বুঝতে পারবেন। সাধারণ ক্ষেত্রে এই পরামর্শটি বেশ বিপজ্জনক। - Scott Pack


আপনি একটি প্রশ্ন জিজ্ঞাসা করেছেন, বেশ স্পষ্টতই, এই বিষয়ে কিছু বইয়ের যোগ্য। কিন্তু কিছু সাধারণ সাধারণ নির্দেশিকা রয়েছে যা ভালভাবে কাজ করে:

  1. আপডেট রাখুন। এর অর্থ হল ওএস, সমস্ত পরিষেবা এবং বিশেষ করে আপনি যে সমস্ত ওয়েবপৃষ্ঠা চালাচ্ছেন তা।
  2. কোনও অকার্যকর পরিষেবাদি নিষ্ক্রিয় করুন, ন্যূনতম এক্সপোজারের জন্য প্রয়োজনীয় সীমাবদ্ধ করুন (যদি আপনি দূরবর্তী অবস্থান থেকে মাইএসকিউএল সংযোগ না করেন তবে এটি টিসিপি-তে শোনাবেন না) এবং একটি হোস্ট-ভিত্তিক ফায়ারওয়াল চালান। (এটি কঠোরভাবে LAMP হলে, আপনাকে 80 এবং 443 এর সাথে ভাল হতে হবে, তবে প্রশাসনের জন্যও SSH হতে পারে।))
  3. শক্তিশালী পাসওয়ার্ড ব্যবহার করুন। উন্নততর, যদি আপনি SSH ব্যবহার করেন তবে শুধুমাত্র কী-ভিত্তিক auth ব্যবহার করুন।
  4. আপনি রুট হিসাবে লগ ইন করা হয় না তা নিশ্চিত করুন। ব্যবহারকারী হিসাবে লগ ইন করুন এবং su & sudo ব্যবহার করুন।
  5. যদিও এটি জিনিসগুলিকে আরও নিরাপদ করে না, তবে আপনাকে লগওয়াচের মতো সরঞ্জামগুলি চালাতে হবে যাতে আপনার সার্ভারে কী ঘটছে তা সম্পর্কে সচেতন হন।

আপনি শুরু করতে সাহায্য করে আশা করি।


13
2017-12-14 02:23



আমি এনএসএ দ্বারা লিখিত "Red Hat Enterprise Linux 5 এর সুরক্ষিত কনফিগারেশন গাইড" পড়তে পরামর্শ দেব - ALex_hha
দেরিতে দেরী, কিন্তু সম্প্রতি আমি পড়লাম যে "রুট হিসাবে লগ ইন না" আর এত বড় চুক্তি নয়, বিশেষ করে যদি আপনি পাবলিক / প্রাইভেট কীগুলির উপর ভিত্তি করে এসএসএইচ AUTH ব্যবহার করছেন। - the0ther


এখানে একটি ভাল চেকলিস্ট আমি শুরু করতে চান।

ফায়ারওয়াল

  • একটি চমৎকার পদ্ধতির সাথে কোনও ট্র্যাফিক শুরু করার অনুমতি দেওয়া হয় না কেবল আপনি কি প্রয়োজন খোলা, আপনি এটা প্রয়োজন হিসাবে। এই খোলার ফলাফল জিনিসগুলি কাজ করার জন্য সর্বনিম্ন পোর্ট / ips এবং যেটি কমিয়ে দেয় এক্সপোজার।
  • LAMP সার্ভারের জন্য আপনাকে শুধুমাত্র পোর্টগুলি খুলতে হবে http / https এবং sysadmins জন্য ssh।
  • এটি ব্যবহার না করে ipv6 ট্র্যাফিক মত জিনিস লক ডাউন নিশ্চিত করুন
  • AWS সুরক্ষা গোষ্ঠী সরবরাহ করে, লিনাক্সে iptables পাশাপাশি প্রচুর প্যাকেজ বেছে নিতে হয় থেকে।

এসএসএইচ এবং ব্যবহারকারীদের

  • কোন গুপ্ত - শব্দ নেই ssh অ্যাক্সেসের জন্য (ব্যক্তিগত কী ব্যবহার করুন)
  • Root ssh অনুমতি দেবেন না (যথাযথ ব্যবহারকারীদের এসএস, এসই বা সুডো উচিত)
  • ব্যবহারকারীদের জন্য sudo ব্যবহার করুন যাতে কমান্ড লগ করা হয়
  • লগ অননুমোদিত লগইন প্রচেষ্টা (এবং ব্যবহারকারীদের যারা আপনার সার্ভার অ্যাক্সেস করার চেষ্টা করুন ব্লক / নিষিদ্ধ সফটওয়্যার বিবেচনা অনেক বার, fail2ban মত)
  • অ-স্ট্যান্ডার্ড পোর্টে ssh (এটি নিশ্চিত হতে পারে যে আপনি কম ঝুলন্ত ফলের নন, এবং অনেক বিরক্তিকর ট্র্যাফিক দূরে রাখুন, তবে নিরাপত্তার জন্য বিশেষ কিছু করবে না, বিশেষত নিজের দ্বারা)
  • শুধুমাত্র আপনার আইপি পরিসীমা থেকে ssh লক করুন (একটি পরিসীমা কোন পরিসীমা তুলনায় ভাল)

ডেটাবেস

  • স্যানিটাইজ ব্যবহারকারীর তথ্য
  • Parameterize প্রশ্ন
  • DB এর নিজস্ব মেশিনে বিমূর্ত বিবেচনা করুন। এই বিচ্ছেদটি কোনও আক্রমণকারীকে আপনার ওয়েব স্ট্যাক এবং এর বিপরীত দিকে আরো কঠিন করে তুলতে পারে।
  • কোন সফটওয়্যার পছন্দ আপ টু ডেট রাখা গুরুত্বপূর্ণ।
  • প্রতিটি উদ্দেশ্য জন্য একটি ব্যবহারকারী। ব্যবহারকারীদের কোন বিশেষাধিকার সঙ্গে শুরু করার সময় এবং তাদের ভূমিকা preform করার প্রয়োজন শুধুমাত্র তাদের যোগ করুন। বিভিন্ন অ্যাপ্লিকেশনগুলির জন্য পৃথক ব্যবহারকারীদের (অথবা কখনও কখনও অ্যাপ্লিকেশনগুলির স্বতন্ত্র অংশ) থাকার ফলে আক্রমণকারীকে কোনও একাউন্টে আপস করা উচিত তা উপকারে সহায়তা করবে। এছাড়াও GRANT মত বিশেষাধিকার সঙ্গে সতর্কতা অবলম্বন করা উচিত যা হালকাভাবে নিযুক্ত করা উচিত নয়।
  • নিয়মিত পাসওয়ার্ড পরিবর্তন করার জন্য একটি নীতি হচ্ছে একটি ভাল ধারণা। যদি আপনি প্রয়োজনীয় প্রচেষ্টার পরিমাণ সম্পর্কে চিন্তিত হন তবে কম ঘন ঘন মনে রাখবেন তার চেয়ে ভাল।
  • পাসওয়ার্ড এনক্রিপশন বুঝতে। লবণ পাসওয়ার্ড। এমডি 5 ব্যবহার করবেন না!

সফটওয়্যার

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

7
2017-08-10 08:08





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

এর অর্থ কী: অ্যাপাচি ব্যবহারকারী বা মাইএসকিউএল ব্যবহারকারী আপস করা হলে, তারা ফোল্ডার (গুলি) apache এর সুযোগের বাইরে কোনও ক্ষতি করতে পারে না (অ্যাপাচি ব্যবহারকারীর ক্ষেত্রে) এবং টেবিলের বাইরে ( গুলি) / ডাটাবেস (গুলি) (মাইএসকিউএল ডাটাবেসের জন্য ব্যবহারকারী ক্ষেত্রে)।

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

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

উদাহরণ সময়! আমি ধারণা সহজ করার জন্য একটি সিস্টেম উদাহরণ দিতে যাচ্ছি।

আপনার সিস্টেমে ব্যবহারকারীদের বলুন (রুটকে ইউমোড-এল বা পাসউইড-এল, ইত্যাদি মাধ্যমে সুরক্ষার জন্য নিষ্ক্রিয় করা উচিত): জন, বার্নি, টেরেন্স, এবং লিসা।

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

এখন, আপনি একটি apache গ্রুপ বা একটি ব্যবহারকারী তৈরি করুন এবং আমরা apweb2 কল করব। Appweb2 অন্যান্য গোষ্ঠীর সদস্য নয় এবং অ্যাপাচে জন্য সমস্ত ফাইল / ফোল্ডারগুলি / home / apweb2 / এ সংরক্ষণ করা হয়। প্রতিটি ভার্চুয়াল হোস্টটির নিজস্ব সাবফোল্ডার থাকবে এবং এই হোস্টগুলির মধ্যে প্রত্যেকটি দস্তাবেজ রুট সেটিকে সাবফোল্ডারে সেট করবে। ভুলভাবে সিস্টেমের বাকি অ্যাক্সেস প্রদান না করার জন্য Symlinks নিষ্ক্রিয় করা হবে।

এছাড়াও, আপনি কেবলমাত্র নির্দিষ্ট ব্যবহারকারীদের (অথবা নির্দিষ্ট গোষ্ঠীগুলিকে, এস এস গ্রুপে রাখতে চান এবং ssh ব্যবহার করতে পারবেন এমন একমাত্র জিনিস তৈরি করতে এসএসসি অ্যাক্সেস সীমিত করতে পারেন)।

এছাড়াও, আপনি আরও কিছু জিনিস সীমাবদ্ধ করার জন্য কোন ব্যবহারকারীদের সুডো সুবিধাগুলি চয়ন করতে পারেন তা চয়ন করতে পারেন। আরেকটি ধাপ আপনি এটি নিতে পারেন যে কোন SSS ব্যবহারকারীদের সুডো করতে সক্ষম নয়, আপনি বিশেষ ব্যবহারকারী তৈরি করতে পারেন যা sud ব্যবহার করতে পারে যা ssh ব্যবহার করতে পারে না, যাতে আপনি একবার ssh ব্যবহার করতে পারেন, আপনাকে অন্য ব্যবহারকারীর কাছে লগ ইন করতে হবে সুডো অ্যাক্সেস।

সুতরাং, প্রতিটি সেগমেন্টকে মডুলারাইজ করে, যদি কেউ আপোস করে তবে পুরো স্ট্যাকটির সাথে আপোস করা হবে না এবং আপনি স্ক্র্যাচ থেকে আবার শুরু করার পরিবর্তে 1 টি সমস্যা সমাধান করতে পারেন।


4
2017-07-30 04:49





আমি সত্যিই এই সহায়ক SANS.org থেকে এই নথি পাওয়া যায় http://www.sans.org/score/checklists/linuxchecklist.pdf


2
2017-08-10 11:50



সার্ভার ফল্ট স্বাগতম! সাধারনত আমরা তাদের নিজস্ব অবস্থানের পক্ষে দাঁড়াতে সক্ষম উত্তরগুলিতে উত্তর পছন্দ করি - লিংকগুলি দুর্দান্ত, কিন্তু যদি লিঙ্কটি কখনও বিরতি দেয় তবে উত্তরটি এখনও সহায়ক হতে যথেষ্ট তথ্য থাকা উচিত। আরো বিস্তারিত অন্তর্ভুক্ত করার জন্য আপনার উত্তর সম্পাদনা করার বিবেচনা করুন। দেখুন প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী আরও তথ্যের জন্য. - slm


বর্তমানে সময়ে, ডকার, systemd-nspawn এবং কন্টেইনার ভার্চুয়ালাইজেশনের প্রক্রিয়াগুলি তৈরি করা হয়েছে যা কন্টেইনার ভার্চুয়ালাইজেশানকে অবহেলা করবেন না (নামস্থান, cgroups)। কন্টেইনার ভার্চুয়ালাইজেশন ব্যবহার করে আপনি প্রসেসগুলিকে বিচ্ছিন্ন করতে পারবেন, উদাহরণস্বরূপ, যদি কোন পরিষেবাতে আপোস করা হয় তবে আক্রমণকারী অন্য পরিষেবায় অ্যাক্সেস পাবে না।

LAMP ক্ষেত্রে, উদাহরণস্বরূপ, এসএসএইচ-সার্ভার, অ্যাপাচি, মাইএসকিউএল, পিএইচপি-এফপিএম / পাইথন / পার্ল / ইত্যাদি সহ চার ডকার কনটেইনার ব্যবহার করা সম্ভব।


0
2017-07-27 20:00