ইউনিক্স কমান্ডগুলি যেমন পিং, এসএসএইচ, জরিমানা কাজ করে কিন্তু সকেট-ভিত্তিক প্রোগ্রাম সংযোগে ব্যর্থ হচ্ছে

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

উদাহরণস্বরূপ - এই নির্দিষ্ট মেশিনে 127.0.0.1 ব্যতীত অন্য কোন আইপি ঠিকানাতে সংযোগ() বিবৃতিতে ব্যর্থ হবে।

#!/usr/bin/perl -w
use strict;
use Socket;
my ($remote,$port, $iaddr, $paddr, $proto, $line);

$remote  = shift || 'localhost';
$port    = shift || 2345;  # random port
if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') }
die "No port" unless $port;
$iaddr   = inet_aton($remote)           || die "no host: $remote";
$paddr   = sockaddr_in($port, $iaddr);

$proto   = getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto)      || die "socket: $!";
connect(SOCK, $paddr)    || die "connect: $!"; 
while (defined($line = )) {
    print $line;
}

close (SOCK)        || die "close: $!";
exit;

এই মেশিনের ভাঙ্গা হয় যেখানে সম্পর্কে কোন পরামর্শ? এটি SUSE-10.2 চালাচ্ছে

0

4 উত্তর

আমি যে মেশিন ফায়ারওয়াল কনফিগারেশন চেক করবে। এটি iptables (আমি আপনার SUSE এর iptables ফায়ারওয়ালটি অনুমান করা সম্ভব) হতে পারে যাতে কেবল পিন আইসিএমপি প্যাকেট পাম্প করতে পারে।

0
যোগ
তোকে! আমি মনে করি আপনি এটা অধিকার আছে - কিন্তু ভুল মেশিনে। এটি সম্পর্কে চিন্তা করার পরে, আমি মেশিনে iptables নিষ্ক্রিয় করার চেষ্টা করেছি যে যদিও আমি "কাজ করছিলাম" এবং মেশিন যে "ভাঙা" কাজ শুরু করে! ধন্যবাদ!
যোগ লেখক Mike Heinz, উৎস

ফায়ারওয়াল কি বন্ধ হয়ে গেছে?

0
যোগ
অন্য মেশিনের ফায়ারওয়াল সমস্যা হয়েছে বলে মনে হয়। পরামর্শের জন্য ধন্যবাদ!
যোগ লেখক Mike Heinz, উৎস

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

0
যোগ

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

0
যোগ