مشاهده لیست آدرس‌های IP متصل به سرور

با استفاده از دستور زیر در UNIX می‌توانید کلیه آدرس‌های متصل به پورت ۸۰ سرور خود را مشاهده کنید:

netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head

نمونه خروجی: تمامی آدرس‌های IP متصل، به ترتیب تعداد اتصال از بیشتر به کمتر:

97 114.198.236.100
56 67.166.157.194
44 170.248.43.76
38 141.0.9.20
37 49.248.0.2
37 153.100.131.12
31 223.62.169.73
30 65.248.100.253
29 203.112.82.128
29 182.19.66.187

نکته: این دستور برای نشان دادن این‌که آیا حمله DDoS ای بر روی سرور شما در حال وقوع است به کار می‌رود.

اجاره دهید دستور بلند بالا را در قسمت‌های کوچک برای شما توضیح دهیم:

1- netstat -tn 2>/dev/null

با استفاده از دستور netstat تمامی ارتباطات ورودی و خروجی سرور خود را می‌توانید مشاهده کنید.
n- آدرس‌های را به صورت عدد به جای نام به شما نشان می‌دهد.
t- صرفا ارتباطات به پورت‌های TCP را به شما نشان می‌دهد.
/dev/null خروجی‌های ناخواسته را به مکانی خاص منتقل می‌کند تا درخواست شما مرتب نمایش داده شود.

خروجی:

#Examples - 7 connections
tcp 0 0 64.91.*.*:80 114.198.236.100:12763 TIME_WAIT
tcp 0 0 64.91.*.*:80 175.136.226.244:51950 TIME_WAIT
tcp 0 0 64.91.*.*:80 175.136.226.244:51951 TIME_WAIT
tcp 0 0 64.91.*.*:23 202.127.210.2:14517 TIME_WAIT
tcp 0 0 64.91.*.*:80 149.238.193.121:65268 TIME_WAIT
tcp 0 0 64.91.*.*:80 114.198.236.100:44088 ESTABLISHED
tcp 0 0 64.91.*.*:80 175.136.226.244:51952 TIME_WAIT
2- grep:80

صرفا آدرس‌هایی را نشان می‌دهد که به پورت ۸۰ سرور شما متصل شده‌اند.

tcp 0 0 64.91.*.*:80 114.198.236.100:12763 TIME_WAIT
tcp 0 0 64.91.*.*:80 175.136.226.244:51950 TIME_WAIT
tcp 0 0 64.91.*.*:80 175.136.226.244:51951 TIME_WAIT
tcp 0 0 64.91.*.*:80 149.238.193.121:65268 TIME_WAIT
tcp 0 0 64.91.*.*:80 114.198.236.100:44088 ESTABLISHED
tcp 0 0 64.91.*.*:80 175.136.226.244:51952 TIME_WAIT
3- awk ‘{print $5}’

awk به شما کمک می‌کند تا رکورد شماره ۵ (آدرس IP ها به همراه پورت مربوطه که در خروجی بالا نمایش داده شده‌اند) به صورت جداگانه نمایش داده شود:

۱۱۴٫۱۹۸٫۲۳۶٫۱۰۰:۱۲۷۶۳
۱۷۵٫۱۳۶٫۲۲۶٫۲۴۴:۵۱۹۵۰
۱۷۵٫۱۳۶٫۲۲۶٫۲۴۴:۵۱۹۵۱
۱۴۹٫۲۳۸٫۱۹۳٫۱۲۱:۶۵۲۶۸
۱۱۴٫۱۹۸٫۲۳۶٫۱۰۰:۴۴۰۸۸
۱۷۵٫۱۳۶٫۲۲۶٫۲۴۴:۵۱۹۵۲

4- cut -d: -f1

دستور cut کمک می‌کند تا محتوای مورد نظر شما از محتوای ناخواسته جدا شود:
۱٫ d- کاراکتری را که بلافاصله پس از دستور d- نمایش داده می‌شود را مشخص می‌کند، در این مثال : است. به صورت پیش‌فرض tab را انتخاب می‌کند.
۲٫ f- مشخص می‌کند که چه لیستی از کارکترها، بایت‌ها یا قسمت‌ها باید انتخاب شوند.

5- sort | uniq -c | sort -nr
این دستور لیست را مرتب می‌کند، آن‌ها را در یک گروه قرار می‌دهد و مجددا آن‌ها را به صورت ترتیبی مرتب می‌کند:
1٫ sort

۱۱۴٫۱۹۸٫۲۳۶٫۱۰۰
۱۱۴٫۱۹۸٫۲۳۶٫۱۰۰
۱۴۹٫۲۳۸٫۱۹۳٫۱۲۱
۱۷۵٫۱۳۶٫۲۲۶٫۲۴۴
۱۷۵٫۱۳۶٫۲۲۶٫۲۴۴
۱۷۵٫۱۳۶٫۲۲۶٫۲۴۴

۲٫ uniq -c – آن‌ها را در گروه قرار می‌دهد.

۲ ۱۱۴٫۱۹۸٫۲۳۶٫۱۰۰
۱ ۱۴۹٫۲۳۸٫۱۹۳٫۱۲۱
۳ ۱۷۵٫۱۳۶٫۲۲۶٫۲۴۴

۳٫ sort -nr آن‌ها را بر اساس شماره، از بیشتر به کمتر مرتب می‌کند.

۳ ۱۷۵٫۱۳۶٫۲۲۶٫۲۴۴
۲ ۱۱۴٫۱۹۸٫۲۳۶٫۱۰۰
۱ ۱۴۹٫۲۳۸٫۱۹۳٫۱۲۱

۶- دستور head اختیاری است و صرفا ۱۰ رکورد اول را به شما نشان می‌دهد.