স্বল্প-সময়ের টিসিপি সংযোগগুলির মালিকের প্রক্রিয়া সন্ধান করা


15

tcpdumpঅ্যাপাচি সার্ভারে স্থানীয় সংযোগগুলিতে চলতে দেখেছি, প্রতি 2 সেকেন্ডে টিসিপি সংযোগ স্থাপন এবং অবিলম্বে বন্ধ হয়ে গেছে। কোন প্রক্রিয়া এইগুলির জন্য দায়ী তা আমি কীভাবে আবিষ্কার করব? netstat -ctpসহায়তা করেনি, সংযোগগুলি খুব দ্রুত ছিল এবং TIME_WAIT এর জন্য প্রক্রিয়া শনাক্তকারী প্রদর্শিত হয় না।

তারা হ্যাপ্রোক্সি প্রোব হিসাবে প্রমাণিত হয়েছিল, যা আমি যাচাই করতে পারতাম strace, তবে আমি এখনও প্রথম স্থানে হ্যাপ্রোক্সিটি চিহ্নিত করার কোনও উপায় জানি না।

উত্তর:


20

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

প্রথমে নিশ্চিত হয়ে নিন যে আপনি অডিট ইনস্টল করেছেন, চলছে এবং আপনার কর্নেল এটি সমর্থন করে।
উবুন্টুর জন্য আপনি apt-get install auditdউদাহরণ সহ এটি ইনস্টল করতে পারেন ।

তারপরে আপনি connectএই জাতীয় সিস্টেমে সমস্ত নিরীক্ষণের জন্য নিরীক্ষণের জন্য একটি নীতি যুক্ত করুন :

auditctl -a exit,always -F arch=b64 -S connect -k MYCONNECT

আপনি যদি লিনাক্সের 32-বিট ইনস্টলেশন ব্যবহার করেন তবে আপনাকে বি 64 পরিবর্তন করে বি 32 করতে হবে।

এই কমান্ডটি নিরীক্ষণের কাঠামোটিতে একটি নীতি সন্নিবেশ করবে এবং আপনার দেখার জন্য যে কোনও সংযুক্ত () সিস্কলগুলি এখন আপনার অডিট লগফাইলে (সাধারণত /var/log/audit/audit.log) লগ করা হবে।

উদাহরণস্বরূপ, নিউজ.আইকম্বিনেটর ডটকম পোর্ট 80 এর সাথে নেটকাটের সাথে সংযোগের ফলে এরকম কিছু ঘটবে:

type=SYSCALL msg=audit(1326872512.453:12752): arch=c000003e syscall=42 success=no exit=-115 a0=3 a1=24e8fa0 a2=10 a3=7fff07a44cd0 items=0 ppid=5675 pid=7270 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts4 ses=4294967295 comm="nc" exe="/bin/nc.openbsd" key="MYCONNECT"
type=SOCKADDR msg=audit(1326872512.453:12752): saddr=02000050AE84E16A0000000000000000

এখানে আপনি দেখতে পাচ্ছেন যে /bin/nc.openbsd অ্যাপ্লিকেশনটি একটি সংযোগ () কল শুরু করেছিল, যদি আপনি প্রচুর সংযোগ কল পান এবং কেবলমাত্র একটি নির্দিষ্ট আইপি বা পোর্টটি গ্রিপ করতে চান তবে আপনাকে কিছু রূপান্তর করতে হবে। সোকাডিডিআর লাইনটিতে একটি স্যাড্রির যুক্তি রয়েছে, এটি শুরু হয় হেক্সাডেসিমাল (0050) এর বন্দর নম্বর দিয়ে যার পরে শুরু হয় 0200 এবং তারপরে হেক্সের আইপি (AE84E16A) যা নিউজ.াইসকোমিনেটর.কম এর আইপি 174.132.225.106।

নিরীক্ষণের কাঠামোটি প্রচুর লগ তৈরি করতে পারে , সুতরাং আপনি যখন আপনার মিশনটি সম্পাদন করবেন তখন এটি অক্ষম করতে মনে রাখবেন। উপরের নীতিটি অক্ষম করতে কেবল -a এর সাথে -d প্রতিস্থাপন করুন:

auditctl -d exit,always -F arch=b64 -S connect -k MYCONNECT

নিরীক্ষণ কাঠামোয় ভাল ডকুমেন্টেশন: http://doc.opensuse.org/products/draft/SLES/SLES- সুরক্ষা_এসডি_ড্রাফট /
পার্ট.এডিট.ইচটিএমএল

হেক্স, ডেস্ক, বাইনারি ইত্যাদি থেকে আইপি অ্যাড্রেসগুলি রূপান্তর করুন :
http://www.kloth.net/services/iplocon.php

জেনারেল হেক্স / ডিসের রূপান্তরকারী:
http://www.statman.info/conversions/hexadecimal.html

আইটি সুরক্ষা স্ট্যাক এক্সচেঞ্জ থেকে নিরীক্ষণের একটি সংক্ষিপ্ত পরিচিতি। http://security.blogoverflow.com/2013/01/a-brief-introduction-to-auditd/

সম্পাদনা 1 :
আর একটি ত্বরান্বিত (ডার্কিশ: ফুলহ্যাক) উপায় হল একটি দ্রুত লুপ তৈরি করা যা আপনাকে সংযোগের ডেটা ডাম্প করে দেয়, এর মতো:

while true;do
  ss -ntap -o state established '( dport = :80 )'
  sleep 1
done

এই কমান্ডটি ssকমান্ডটি (সকেট পরিসংখ্যান) ব্যবহার করে বর্তমান প্রতিষ্ঠিত সংযোগগুলি পোর্ট 80-তে কী প্রক্রিয়া শুরু করেছে তা সহ ডাম্প করতে। যদি এটির প্রচুর ডেটা হয় তবে | tee /tmp/outputআপনি উভয়ই স্ক্রিনের আউটপুট প্রদর্শন করার সাথে সাথে পরে / টিএমপি / আউটপুটটিতে পরে প্রসেসিং / খনন করতে পারেন। যদি তাড়াতাড়ি হাইপ্রক্সি সংযোগটি না ধরে থাকে তবে দয়া করে অপসারণের চেষ্টা করুন sleep 1তবে এটি যদি খুব বেশি ব্যবহারযোগ্য মেশিন হয় তবে লগিংয়ের বিষয়ে সতর্ক থাকুন। প্রয়োজন অনুসারে সংশোধন করুন!


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

2
আপনি সেইগুলির জন্য স্বয়ংক্রিয়ভাবে ডিক্সড হেক্স স্ট্রিংগুলি ব্যবহার ausearch -iকরতে পারেন saddr
sch

এস এস এলএসফের চেয়ে বেশি সন্তুষ্ট কারণ এটি দ্রুত এবং এর ফিল্টারিংয়ের ভাল নিয়ম রয়েছে - গ্রেপের দরকার নেই। সহায়তায় সমস্যাগুলির আমি প্রশংসা করতে পারি: সিস্টেমট্যাপ হ'ল আরেকটি সরঞ্জাম যা দুর্দান্ত তবে এটি একটি প্রোডাকশন সার্ভারে চালানো সম্ভব হতে পারে ... সন্তোষজনক নয়।
ম্যাক্স মার্ফি

1

ইন্টারনেটে অন্য হোস্টের সাথে সফলভাবে সংযুক্ত হওয়া সেই সকেটগুলি দেখতে আপনি "অ্যাসেরচ -i" থেকে প্রাপ্ত বিশাল লগগুলি গ্রেপ করতে পারেন। আমি প্রতিটি প্রক্রিয়া এবং কমান্ড পাওয়ার জন্য একটি সরল স্ক্রিপ্ট লিখেছিলাম যা সেই টার্গেট হোস্টের সংযোগের ঠিকানা এবং বর্তমান সময় সকেটটি "তৈরি" হওয়ার সাথে সাথে ইন্টারনেটে কোনও হোস্টের সাথে সংযোগ স্থাপনের জন্য একটি সকেট তৈরি করেছিল। এটা এখানে:

#!/bin/bash

if [[ $EUID -ne 0 ]]; then

    echo "You must run this script as root boy!"
    exit 1  

fi

> proccessConnections.dat

connections=`ausearch -i | grep host: | awk -F "msg=audit" '{print $2}' | awk -F ": saddr" '{print $1}'`

connectionsNumber=`echo "$connections" | wc -l`

echo "Number of connections: $connectionsNumber"

echo "$connections" > conTemp.dat

let counter=1
while read connectInfo; do

    success=`ausearch -i | grep "$connectInfo" | grep "type=SYSCALL" | grep success=yes`    
    addressInfo=`ausearch -i | grep "$connectInfo" | grep type=SOCKADDR | awk -F ': ' '{print $2}'`
    processInfo=`ausearch -i | grep "$connectInfo" | grep "type=SYSCALL" | awk -F 'comm=' '{print $2}' | awk -F 'key' '{print $1}'` 

    if [[ $success != "" ]]
    then    
        echo "[$counter - $connectionsNumber] (success)     comm=$processInfo - $addressInfo - $connectInfo"
        echo "[$counter - $connectionsNumber] (success)     comm=$processInfo - $addressInfo - $connectInfo" >> proccessConnections.dat
    else
        echo "[$counter - $connectionsNumber] (no success)  comm=$processInfo - $addressInfo - $connectInfo"
        echo "[$counter - $connectionsNumber] (no success)  comm=$processInfo - $addressInfo - $connectInfo" >> proccessConnections.dat
    fi

    let counter++


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