আমি কীভাবে 80 পোর্ট খুলতে পারি যাতে একটি মূল-প্রক্রিয়া এর সাথে আবদ্ধ হয়?


46

আমি আমার ম্যাকটিতে একটি নন-রুট প্রক্রিয়া হিসাবে একটি ওয়েব সার্ভার চালাতে চাই। সাধারণত শুধুমাত্র মূল প্রক্রিয়াগুলি 80 (বা 1024 এর নীচে যে কোনও পোর্টে) বাঁধতে পারে।

আমি কি বিশেষত 80 বন্দরটি খুলতে পারি যাতে নন-রুট প্রক্রিয়াগুলি এটি শুনতে পারে?



আরও unix.stackex بدل.com প্রশ্ন মত , তাই না?
ফিলিপ বার্টুজি

1
ইউনিক্স যদি এটি একটি ম্যাকোস সিস্টেমে থাকে?
nhed

উত্তর:


27

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

এটি সম্পাদন করার দুটি সাধারণ উপায় রয়েছে এবং আপনি যে বাছাই করেছেন তা নির্ভর করবে আপনি কেন এই বিধিনিষেধের আশেপাশে কাজ করার চেষ্টা করছেন:

পোর্ট পোর্ট 80 অন্য বন্দর যেমন 8080

আপনার মেশিনটিকে 8080 ট্র্যাফিক 8080 পোর্টে বা আপনার পছন্দের কোনও বন্দরটি পাস করার জন্য পুনরায় কনফিগার করে আপনি ব্যবহারকারী স্পেস সার্ভারগুলিকে যে জায়গাতে অ্যাক্সেস দেওয়া হয়েছে সেখানকার রুট সুবিধাগুলি বন্দরগুলি পেতে অনুমতি দিতে পারেন।

প্রক্রিয়াটি সোজা:

পদক্ষেপ 1: বর্তমান ফায়ারওয়াল বিধিগুলি দেখুন।

sudo ipfw show

পদক্ষেপ 2: পোর্ট ফরওয়ার্ডিং বিধি যুক্ত করুন (80 থেকে 8080)

sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in

আপনি যদি আপনার ফায়ারওয়াল নিয়মগুলি মুছে ফেলতে চান তবে:

sudo ipfw ফ্লাশ

( উত্স )

এটি একটি অস্থায়ী পরিবর্তন এবং আপনি পুনরায় বুট করার পরে, বা তিনি শেষ লাইনের নির্দেশিত ইন্ট্রি হিসাবে ফ্লাশ করবেন re

আপনি এই পরিবর্তনটি স্থায়ী করতে পারেন , বা আপনার সার্ভার শুরু করার আগে আপনি কমান্ডটি একটি স্টার্টআপ লাইন হিসাবে যুক্ত করতে পারেন যা সম্ভবত সুরক্ষার দিক থেকে নিরাপদ।

অ্যাথবাইন্ড ব্যবহার করুন

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

একটি ওএস এক্স পোর্ট রয়েছে:

https://github.com/Castaglia/MacOSX-authbind

এটি এখনও আইপিভি 4 ট্র্যাফিকের মধ্যে সীমাবদ্ধ থাকতে পারে, যদিও এটি আপনার প্রয়োজনীয়তা পূরণ করে কিনা তা খুঁজে পেতে আপনাকে অতিরিক্ত কিছু তদন্ত করতে হতে পারে।


ম্যাকোসএক্স-এথবাইন্ডকে ভালবাসুন ... এটি আপনাকে "নিয়মিত প্রশাসক" হিসাবে 80 পোর্টে একটি ওয়েব সার্ভার চালানোর অনুমতি দেয়। যেমন আপনার launchd .plist... "ProgramArguments": [ "path/to/authbind", "/usr/bin/php", "-c", "/www/.router.ini", "-S", "0.0.0.0:80", "-t", "/www", "/www/.router.php"]oo ওহু!
অ্যালেক্স ধূসর

13
ওএস এক্স ইওসোমাইট সরান ipfwএই सारটি ব্যবহার করে একটি বিকল্প সমাধান বর্ণনা করে pf
lyschoening

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

authbind সত্যিই একটি দুর্দান্ত সমাধান, ধন্যবাদ!
ফেভো

7

আপনি ncatঅন্য কোনও বন্দরে চলমান ওয়েব সার্ভার থেকে ট্র্যাফিক ফরোয়ার্ড করতে ব্যবহার করতে পারেন :

sudo ncat -l -p 80 -c ' ncat -l -p 1234'

এটি 80h বন্দরের ট্র্যাফিক লোকালহোস্টের দিকে পাঠিয়ে দেবে: 1234। এটি যদিও কিছুটা কুলডেজ, তবে আমি দ্রুত পরীক্ষার বাইরে এটি কোথাও ব্যবহার করব না এবং অবশ্যই উত্পাদনে নেই।

মনে রাখবেন যে এটি কোনও নন-রুট প্রক্রিয়াটিকে তার সাথে আবদ্ধ করতে দেয় না, তবে একটি উদাহরণস্বরূপ একটি পোর্ট বাছাই করার মাধ্যমে প্রক্রিয়াটি 1234 ডলারে আবদ্ধ হতে পারে, এটি দেখতে পোর্ট ৮০ এর সাথে আবদ্ধ বলে মনে হবে This এটি সমানভাবে করছে ফায়ারওয়াল দিয়ে পোর্ট 80 কে 1234 পোর্টে ফরোয়ার্ড করা হচ্ছে তবে অনেক বেশি অস্থায়ী ভিত্তিতে।


2
এটি একটি ভাল কাজ। বিশেষ দ্রষ্টব্য। ম্যাক পোর্টগুলির মাধ্যমে ইনস্টল করা যেতে পারে যার ncatসাথে আসে । ম্যাকপোর্টস নিজেই macport.org/install.php থেকে ইনস্টল করা যেতে পারে । nmapsudo port install nmap
উইলিয়াম ডেনিস

এটি আমাকে বাঁধাই দেয়: ইতিমধ্যে ব্যবহারের ত্রুটিতে ঠিকানা।
ম্যাট জেন্ডার 14

এখানে একই - কাজ হয়নি। এটি কৌশলটি করেছে: unix.stackexchange.com/a/187038
সেবাস্তিয়ান জে।

2

আপনি পোর্ট ফরওয়ার্ডিং করতে ssh ব্যবহার করতে পারেন। সুতরাং আপনার যদি 8080 তে কোনও সার্ভার চলমান থাকে তবে আপনি 80 বন্দর থেকে ট্র্যাফিক ফরোয়ার্ড করতে পারেন Here এখানে আমি ব্যবহার করি এমন একটি স্ক্রিপ্ট, যা দেশী অ্যাপাচি বন্ধ করে দিলে এবং ট্র্যাফিক এগিয়ে দিলে:

forward8080to80.command:

echo "You may close this terminal and the forwarding will continue."
echo "To stop, kill the ssh process found by `sudo lsof -i ':80' | grep LISTEN`"
sudo apachectl stop
sudo ssh user@127.0.0.1 -L 80:127.0.0.1:8080

এসএসএস পোর্ট ফরওয়ার্ডিং বেশ কম পারফরম্যান্স হতে পারে এবং সুরক্ষা বৈশিষ্ট্য স্থানীয়-> স্থানীয় পরিবেশে খুব বেশি বোঝায় না। পোর্ট ফরওয়ার্ডিংয়ে অসক্সের নির্মিত বা এনসিএটের মতো কিছু ব্যবহার করা আরও ভাল।
শায়নে

-3

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


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

সুতরাং, কেবল স্পষ্ট করে বলার জন্য, আপনি বিভিন্ন ক্লায়েন্ট সাইটে একটি ওয়েব সার্ভার স্থাপন করার চেষ্টা করছেন, তবে 80 টি পোর্ট খোলার অ্যাক্সেস নেই? আপনার অ্যাক্সেস না থাকলে আপনি কীভাবে রাউটারে পোর্টটি উন্মুক্ত পাবেন? আমি কি সঠিকভাবে বুঝতে পারি বা আমি বেস থেকে বেরিয়ে আছি?
ম্যাট লাভ

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