কোনও পোর্ট লিনাক্স সার্ভারে শুনছে কিনা তা আমি কীভাবে পরীক্ষা করতে পারি?
netstat -an | grep PORTNUMBER | grep -i listen
যদি আউটপুট খালি থাকে তবে পোর্টটি ব্যবহার হচ্ছে না।
কোনও পোর্ট লিনাক্স সার্ভারে শুনছে কিনা তা আমি কীভাবে পরীক্ষা করতে পারি?
netstat -an | grep PORTNUMBER | grep -i listen
যদি আউটপুট খালি থাকে তবে পোর্টটি ব্যবহার হচ্ছে না।
উত্তর:
কোনও প্রক্রিয়া টিসিপি বা ইউডিপি পোর্ট সহ শুনতে পায় কিনা তা আপনি পরীক্ষা করতে পারেন netstat -tuplen
।
কিছু বন্দর বাইরে থেকে অ্যাক্সেসযোগ্য কিনা তা পরীক্ষা করতে (এটি সম্ভবত আপনি চান) অন্য সিস্টেম থেকে এনএমএপের মতো পোর্ট স্ক্যানার ব্যবহার করতে পারেন । আপনি যে হোস্টটি যাচাই করতে চান তার উপর এনএম্যাপ চালানো আপনার উদ্দেশ্যটির জন্য যথেষ্ট অকেজো।
-t
, -u
, -p
, -l
, -e
এবং, -n
। অপশন পার্সারকে ধন্যবাদ হিসাবে এটি প্রকাশ করা যেতে পারে -tuplen
। linux.die.net/man/8/netstat
telnet
কমান্ডটি কেবলমাত্র টিসিপি সমর্থন করে, তাই যদি আপনি যাচাই করতে চান যে পরিষেবাটি অন্য কোনও প্রোটোকলে চালিত হয় তবে আপনি ভাগ্যছাড়া।
sudo netstat -tuplen
। এটি আপনাকে কেবল নিজেরাই নয়, অন্যদেরও মালিকানাধীন প্রক্রিয়াগুলি দেবে এবং এটি অতিরিক্ত বিবরণ (যেমন পিআইডি / প্রোগ্রামের নাম হিসাবে) প্রিন্ট করবে যদি সেগুলি ইতিমধ্যে কোনও অ-রুট ব্যবহারকারী হিসাবে প্রদর্শিত না হয়।
কোনও টিসিপি পোর্ট খোলা থাকলে পরীক্ষার দ্রুততম উপায় (আপনার কাছে থাকা কোনও হার্ডওয়্যার ফায়ারওয়াল সহ) দূরবর্তী কম্পিউটার থেকে টাইপ করা (যেমন আপনার ডেস্কটপ):
telnet myserver.com 80
যা সেই সার্ভারে 80 পোর্টের সাথে একটি সংযোগ খোলার চেষ্টা করবে। আপনি যদি সময় বের করেন বা অস্বীকার করেন তবে পোর্টটি খোলা নেই :)
if you get a time out or deny, the port is not open
ঠিক আছে, সংক্ষেপে, আপনার একটি সার্ভার রয়েছে যাতে আপনি লগ ইন করতে পারেন। কিছু বন্দরে কিছু শুনছে কিনা তা আপনি দেখতে চান। রুট হিসাবে, চালান:
netstat -nlp
এটি টিসিপি এবং ইউডিপি পোর্টগুলিতে শোনার প্রক্রিয়াগুলির একটি তালিকা দেখায়। আপনার আগ্রহী প্রক্রিয়া এবং / অথবা আপনি যে বন্দর নম্বর দেখতে চান তার জন্য আপনি এটি স্ক্যান করতে (বা গ্রেপ) করতে পারেন।
আপনি যে প্রক্রিয়াটি প্রত্যাশা করেছেন তা যদি না থাকে তবে আপনার সেই প্রক্রিয়াটি শুরু করা উচিত এবং আবার নেটস্ট্যাট পরীক্ষা করা উচিত। যদি প্রক্রিয়াটি থাকে তবে এটি এমন একটি ইন্টারফেস এবং পোর্টে শুনছে যা আপনি প্রত্যাশা করেননি, তবে একটি কনফিগারেশন সমস্যা রয়েছে (যেমন, এটি শোনা যায় তবে কেবল লুপব্যাক ইন্টারফেসে, তাই আপনি দেখতে পাবেন 127.0.0.1:3306 এবং মাইএসকিউএলের জন্য ডিফল্ট কনফিগারেশনের ক্ষেত্রে 3306 পোর্টের জন্য অন্য কোনও লাইন নেই)।
যদি প্রক্রিয়াটি শেষ হয়ে যায় এবং আপনি যে বন্দরের প্রত্যাশা করেন সেটি শুনতে পেল, আপনি নিজের অফিস / বাড়িতে আপনার ম্যাকবুক থেকে সেই বন্দরে "টেলনেট" চালানোর চেষ্টা করতে পারেন, যেমন,
telnet xxxxxxxxxxxx.co.uk 443
এটি যদি (স্ট্যান্ডার্ড পোর্টগুলি ধরে নিচ্ছে) পরীক্ষা করে দেখবে যে এসএসএলের জন্য একটি ওয়েব সার্ভার কনফিগার করা আছে। নোট করুন যে টেলনেট ব্যবহার করে এই পরীক্ষাটি কেবল তখনই কাজ করবে যদি প্রক্রিয়াটি টিসিপি পোর্টে শুনছে। যদি এটি কোনও ইউডিপি বন্দর হয় তবে আপনি যে ক্লায়েন্টের সাথে এটি সংযোগ স্থাপন করতে যাচ্ছিলেন তার সাথে আপনি চেষ্টা করতে পারেন। (আমি দেখতে পাচ্ছি যে আপনি 224 বন্দরটি ব্যবহার করেছেন This এটি মাস্কডিলার, এবং এটি কী তা আমার কোনও ধারণা নেই)।
যদি পরিষেবাটি থাকে তবে আপনি এটি বাহ্যিকভাবে পেতে না পারেন তবে ফায়ারওয়াল আপনাকে অবরুদ্ধ করছে। সেক্ষেত্রে চালান:
iptables -L -n
এটি আপনার সিস্টেমে সংজ্ঞায়িত হিসাবে ফায়ারওয়াল সংক্রান্ত সমস্ত বিধি প্রদর্শন করবে। আপনি এটি পোস্ট করতে পারেন, তবে, সাধারণত, আপনি যদি ইনপুট চেইনে সমস্ত কিছু মঞ্জুরি না দিয়ে থাকেন তবে সম্ভবত আপনাকে সম্ভবত বন্দরে ট্র্যাফিকের অনুমতি দিতে হবে:
iptables -I INPUT -p tcp --dport 224 -j ACCEPT
বা এই লাইন বরাবর কিছু। কিছু অচেনা ব্যক্তি আপনাকে ইন্টারনেটে যা বলেছে তার ভিত্তিতে আপনার ফায়ারওয়াল কমান্ডগুলি অন্ধভাবে চালাবেন না। আপনি কি করছেন তা বিবেচনা করুন।
যদি বাক্সে আপনার ফায়ারওয়াল আপনার পছন্দসই ট্র্যাফিকের অনুমতি দিচ্ছে, তবে আপনার হোস্টিং সংস্থা ফায়ারওয়াল চালাচ্ছে (উদাহরণস্বরূপ, তারা কেবল এসএসএইচ (22 / টিসিপি), এইচটিটিপি (80 / টিসিপি) এবং এইচটিটিপিএস (443 / টিসিপি) অনুমতি দিচ্ছে এবং অন্যান্য সমস্ত আগত ট্র্যাফিক অস্বীকার করে)। এই ক্ষেত্রে, এই সমস্যাটি সমাধান করার জন্য আপনাকে তাদের সাথে একটি হেল্পডেস্কের টিকিট খুলতে হবে, যদিও আমি মনে করি আপনার সিপ্যানেলে কিছু থাকতে পারে যা এটির অনুমতি দিতে পারে।
আমি কম্বো ব্যবহার করি netstat
এবং lsof
:
netstat -an | grep <portnumber>
lsof -i:<portnumber>
বন্দরটি ব্যবহার হচ্ছে এবং এটি কী ব্যবহার করছে তা দেখতে।
আপনি যদি সিস্টেমের সাথে সংযুক্ত থাকেন এবং রুট হিসাবে একটি কমান্ড চালাতে পারেন তবে আপনি iptables এর আউটপুট পরীক্ষা করতে পারেন
iptables -L -vn
এই ফায়ারওয়ালের নিয়মনীতি তালিকা প্রস্তুত করা যাবে এবং যা পোর্ট খোলা লক্ষ্য হয় ACCEPT
এবং কোন স্পষ্টভাবে বন্ধ পোর্ট লক্ষ্য REJECT
।
firewall-cmd --query-port=port/protocol
, যেমন firewall-cmd --query-port=80/tcp
।