نحوه باز کردن پورت در لینوکس

مقدمه

پورت یک نقطه پایانی ارتباطی است. در یک سیستم عامل، یک پورت به روی بسته های داده برای فرآیندهای خاص یا خدمات شبکه باز یا بسته می شود.

به طور معمول، پورت ها یک سرویس شبکه خاص را شناسایی می کنند که به آنها اختصاص داده شده است. این را می توان با پیکربندی دستی سرویس برای استفاده از یک پورت دیگر تغییر داد، اما به طور کلی می توان از پیش فرض ها استفاده کرد.

1024 پورت اول (شماره پورت 0 تا 1023) به عنوان شماره پورت شناخته شده نامیده می شود و برای متداول ترین سرویس ها رزرو شده است. اینها عبارتند از SSH (پورت 22)، HTTP (پورت 80)، HTTPS (پورت 443).

به شماره پورت های بالای 1024 پورت های زودگذر گفته می شود.

  • پورت های 1024 تا 49151 پورت های ثبت شده/کاربر نامیده می شوند.
  • پورت های 49152 تا 65535 پورت های پویا/خصوصی نامیده می شوند.

در این آموزش، یک پورت زودگذر را در لینوکس باز خواهید کرد، زیرا رایج ترین سرویس ها از پورت های شناخته شده استفاده می کنند.

پیش نیازها
  • آشنایی با استفاده از ترمینال

لیست همه پورت های باز

قبل از باز کردن یک پورت در لینوکس، باید لیست تمام پورت های باز را بررسی کنید و یک پورت زودگذر را برای باز کردن انتخاب کنید که در آن لیست نیست.

از دستور netstat برای فهرست کردن همه پورت های باز، از جمله TCP و UDP که رایج ترین پروتکل ها برای انتقال بسته در لایه شبکه هستند، استفاده کنید.

netstat -lntu

این چاپ خواهد شد:

  • همه سوکت های گوش دادن (-l)
  • شماره پورت (-n)
  • پورت های TCP (-t)
  • پورت های UDP (-u)
Output
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 ::1:5432 :::* LISTEN
tcp6 0 0 ::1:6379 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
udp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN

بررسی کنید که با استفاده از دستور ss برای فهرست کردن سوکت‌های گوش دادن با پورت باز، خروجی‌های ثابتی دریافت می‌کنید:

ss -lntu

این چاپ خواهد شد:

Output
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.1:5432 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.1:27017 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.1:6379 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 128 [::1]:5432 0.0.0.0:*
tcp LISTEN 0 128 [::1]:6379 0.0.0.0:*
tcp LISTEN 0 128 [::]:22 0.0.0.0:*

این کم و بیش همان پورت های باز netstat را می دهد.

باز کردن یک پورت در لینوکس برای اجازه دادن به اتصالات TCP

اکنون، یک پورت بسته را باز کنید و آن را به اتصالات TCP گوش دهید.

برای اهداف این آموزش، پورت 4000 را باز خواهید کرد. اما اگر آن پورت در سیستم شما باز نیست، در صورت تمایل پورت بسته دیگری را انتخاب کنید. فقط مطمئن شوید که بزرگتر از 1023 باشد.

اطمینان حاصل کنید که پورت 4000 با استفاده از دستور netstat استفاده نمی شود:

netstat -na | grep :4000

یا دستور ss:

ss -na | grep :4000

خروجی باید خالی بماند، بنابراین بررسی کنید که در حال حاضر از آن استفاده نمی شود، بنابراین می توانید قوانین پورت را به صورت دستی به فایروال سیستم iptables اضافه کنید.

برای کاربران اوبونتو و سیستم های مبتنی بر ufw

از ufw – سرویس گیرنده خط فرمان برای فایروال بدون عارضه استفاده کنید.

دستورات شما شبیه به:

sudo ufw allow 4000
برای CentOS و سیستم های مبتنی بر فایروال

از فایروال-cmd – مشتری خط فرمان برای دیمون فایروالد استفاده کنید.

دستورات شما شبیه به:

firewall-cmd --add-port=4000/tcp
برای سایر توزیع های لینوکس

از iptables برای تغییر قوانین فیلتر بسته IPv4 سیستم استفاده کنید.

iptables -A INPUT -p tcp --dport 4000 -j ACCEPT
پورت تازه باز شده را برای اتصالات TCP تست کنید

اکنون که با موفقیت یک پورت TCP جدید را باز کرده اید، زمان آزمایش آن فرا رسیده است.

ابتدا netcat (nc) را راه اندازی کنید و در پورت (-p) 4000 به (-l) گوش دهید، در حالی که خروجی ls را به هر کلاینت متصل ارسال کنید:

ls | nc -l -p 4000

اکنون، پس از اینکه یک کلاینت یک اتصال TCP را در پورت 4000 باز کرد، خروجی ls را دریافت خواهد کرد. فعلا این جلسه را رها کنید.

جلسه ترمینال دیگری را در همان دستگاه باز کنید.

از آنجایی که یک پورت TCP را باز کردید، از telnet برای بررسی اتصال TCP استفاده کنید. اگر دستور وجود نداشت، آن را با استفاده از مدیریت بسته خود نصب کنید.

IP سرور خود و شماره پورت (در این مثال 4000) را وارد کنید و این دستور را اجرا کنید:

telnet localhost 4000

این دستور سعی می کند یک اتصال TCP را در لوکال هاست در پورت 4000 باز کند.

خروجی مشابه این را دریافت خواهید کرد که نشان می دهد ارتباطی با برنامه شنیداری (nc) برقرار شده است:

Output
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
while.sh

خروجی ls (در این مثال while.sh) نیز برای مشتری ارسال شده است که نشان دهنده موفقیت آمیز اتصال TCP است.

از nmap برای بررسی باز بودن پورت (-p) استفاده کنید:

nmap localhost -p 4000

این دستور پورت باز را بررسی می کند:

Output
Starting Nmap 7.60 ( https://nmap.org ) at 2020-01-18 21:51 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Other addresses for localhost (not scanned): ::1
PORT STATE SERVICE
4000/tcp open remoteanything
Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds

بندر باز شده است. شما با موفقیت یک پورت جدید را در سیستم لینوکس خود باز کردید.

اما این فقط موقتی است، زیرا هر بار که سیستم را راه اندازی مجدد می کنید، تغییرات بازنشانی می شوند.

قوانین پایدار

رویکرد ارائه شده در این مقاله فقط به طور موقت قوانین فایروال را تا زمانی که سیستم خاموش یا راه اندازی مجدد شود، به روز می کند. بنابراین مراحل مشابه باید تکرار شود تا پس از راه اندازی مجدد، همان پورت دوباره باز شود.

برای فایروال ufw

قوانین ufw در راه اندازی مجدد ریست نمی شوند. این به این دلیل است که در فرآیند بوت ادغام شده است و هسته قوانین فایروال را با استفاده از ufw با اعمال فایل های پیکربندی مناسب ذخیره می کند.

برای فایروال

اگر می‌خواهید پورت را به پیکربندی دائمی فایروال اضافه کنید و بلافاصله تغییرات را اعمال کنید، می‌توانید از پرچم‌های –permanent و –reload استفاده کنید:

sudo firewall-cmd --permanent --add-port=4000/tcp 
sudo firewall-cmd --reload
برای iptables

شما باید قوانین پیکربندی را ذخیره کنید و از دستور iptables-persistent استفاده کنید.

نتیجه

در این آموزش یاد گرفتید که چگونه یک پورت جدید در لینوکس باز کنید و آن را برای اتصالات ورودی تنظیم کنید. شما همچنین از netstat، ss، telnet، nc و nmap استفاده کردید.

[تعداد: 1   میانگین: 5/5]
دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شاید دوست داشته باشید