جدول محتوایی
پورت های باز در لینوکس
آیا نیاز به اتصال به یک رایانه یا سرور خارجی دارید یا به رایانه یا سرور دیگری برای اتصال به شما نیاز دارید؟ اگر از لینوکس استفاده می کنید، باید مطمئن شوید که پورت مورد نظر باز است.
در حالی که سایر سیستم عامل ها معمولاً ابزارهای گرافیکی برای این کار دارند، لینوکس چندان ساده نیست. در ادامه نحوه باز کردن پورت ها در لینوکس را به شما آموزش خواهیم داد.
پورت چیست و چرا باید آن را باز کنم ؟
پورت نقطه پایانی در شبکه است. به آن مانند دری فکر کنید که به یک اتاق خاص یا دنیای بیرون منتهی می شود، اما روی رایانه شما. هر کاری که در اینترنت انجام می دهید از یک پورت یا یک سری پورت خاص استفاده می کند.
به عنوان مثال، فرض کنید می خواهید سرور Minecraft (آموزش ساخت سرور ماینکرفت) خود را اجرا کنید. برای انجام این کار، باید پورتی را باز کنید تا کاربران از طریق آن به آن متصل شوند. همین امر در مورد اجرای وب، ایمیل یا سرور FTP شما نیز صدق می کند.
پورت ها در تمام دستگاه های متصل به شبکه استاندارد شده اند. 1024 پورت اول (از 0 تا 1023) به عنوان شماره پورتهای شناخته شده نامیده می شوند. آنها برای متداول ترین سرویس ها مانند HTTP و HTTP (به ترتیب درگاه 80 و 443) و SSH (پورت 22) رزرو شده اند.
شماره پورتهای بالای 1024 به عنوان پورتهای زودگذر شناخته می شوند و معمولاً برای بازی های آنلاین، سرورهای وب خصوصی و غیره در دسترس شما هستند. پورتهای 1024 تا 49151 پورتهای ثبت شده یا کاربر نامیده می شوند، در حالی که پورتهای 49152 تا 65535 به عنوان پورتهای پویا یا خصوصی شناخته می شوند.
مشاهده لیست پورتهای باز در لینوکس
قبل از شروع تلاش برای باز کردن یک پورت در لینوکس، باید مطمئن شوید که از قبل در حال استفاده نیست. شما می توانید این کار را با استفاده از دستور netstat که در اکثر توزیع های لینوکس موجود است انجام دهید. اگر توزیع شما netstat ندارد، می توانید به جای آن از ss استفاده کنید.
netstat -lntu
ss -lntu
با این کار تمام سوکت ها (-l)، همراه با شماره پورت (-n) چاپ می شود. این شامل پورتهای TCP (-t) و همچنین UDP (-u) است. اگر سیستم شما netstat ندارد، فقط از ss با همان پارامترها استفاده کنید.
نحوه باز کردن پورت ها در لینوکس
در این مثال، فرض می کنیم که می خواهیم پورت 4000 را به اتصالات TCP باز کنیم. ابتدا باید مطمئن شویم که پورت قبلاً در حال استفاده نیست. ما این کار را از طریق netstat یا ss انجام می دهیم.
netstat -na | grep :4000
ss -na | grep :4000
با فرض خالی بودن خروجی، میتوانیم قوانین پورت مناسب را به فایروال سیستم اضافه کنیم. روشهای این کار با توجه به توزیع شما و اینکه آیا از فایروال جدیدتر ufw یا firewalld استفاده میکند، متفاوت خواهد بود. اوبونتو از ufw حمایت می کند، در حالی که CentOS معمولاً به جای آن از firewalld استفاده می کند. البته هنوز هم برخی از توزیع های لینوکس از فایروال قدیمی iptables استفاده می کنند.
برای کاربران اوبونتو و سایر سیستم های مبتنی بر فایروال ufw
اوبونتو و برخی توزیعهای دیگر به جای استفاده از فایروال قدیمیتر iptables از ufw استفاده میکنند. در این سیستم ها، دستور زیر پورت را باز می کند.
sudo ufw allow 4000
به چند مرحله بعد بروید و پورت تازه باز شده خود را تست کنید تا مطمئن شوید کار می کند.
نحوه باز کردن پورت ها در CentOS و سایر سیستم های مبتنی بر firewalld
اگر سیستم شما از firewalld استفاده می کند، بهترین کار این است که از دستور firewall-cmd برای به روز رسانی قوانین استفاده کنید.
sudo firewall-cmd --add-port=4000/tcp
این یک تغییر دائمی نخواهد بود، اما پس از آزمایش پورت، نحوه تداوم قوانین پس از راهاندازی مجدد را پوشش خواهیم داد.
برای سایر توزیع های لینوکس
اگر سیستم لینوکس شما ufw یا firewalld ندارد، باید از iptables استفاده کنید. اگر نصب نشده است، آن را با استفاده از مدیر پکیج انتخابی خود دریافت کنید. پس از نصب، این دستورات پورت 4000 را باز می کند:
sudo iptables -A INPUT -p tcp --dport 4000 -j ACCEPT sudo service iptables restart
اگر سیستم شما از systemctl استفاده می کند، دستور دوم را با:
sudo systemctl restart iptables
تست پورت های تازه باز شده برای اتصالات
در مرحله بعد، ما باید پورت را آزمایش کنیم تا مطمئن شویم که اتصالات را می پذیرد. ما این کار را با استفاده از netcat (nc) برای گوش دادن به پورت انجام می دهیم، سپس سعی می کنیم به آن telnet کنیم.
ابتدا یک پنجره ترمینال را باز کنید و این دستور را اجرا کنید:
sudo ls | nc -l -p 4000
آن را در حال اجرا (گوش دادن) بگذارید و یک پنجره ترمینال دوم را باز کنید. در آن پنجره، از telnet برای آزمایش اتصال استفاده خواهید کرد. اگر telnet نصب نشده است، این کار را با استفاده از مدیریت پکیج خود انجام دهید.
telnet [hostname/IP address] [port number]
آدرس IP سیستم خود را با [hostname/IP address] و شماره پورتی را که باز کردهاید جایگزین کنید.
telnet localhost 4000
شما باید خروجی زیر را ببینید که نشان دهنده اتصال باز با nc است.
همچنین می توانیم با استفاده از nmap نشان دهیم که پورت باز است. مجدداً، اگر دستور قبلاً نصب نشده است، از مدیر بسته خود برای نصب آن استفاده کنید.
nmap localhost -p 4000
توجه داشته باشید که nmap فقط پورتهای باز را لیست می کند که در حال گوش دادن به اتصال هستند. به همین دلیل است که ما از netcat برای آزمایش، برای استفاده از آن پورت استفاده می کنیم. در غیر این صورت، پورت به عنوان باز ثبت نمی شود.
نحوه باز کردن دائمی پورت در لینوکس
هنگامی که پورت باز خود را آزمایش کردید و مطمئن شدید که کار می کند، احتمالاً می خواهید تغییر را دائمی کنید. در غیر این صورت، تغییرات ممکن است پس از راه اندازی مجدد باقی نمانند. اگر کاربر اوبونتو هستید یا از فایروال ufw استفاده می کنید، لازم نیست نگران این موضوع باشید. قوانین ufw در راه اندازی مجدد ریست نمی شوند.
برای کاربران firewalld
ایجاد یک قانون پورت دائمی با firewalld آسان است. فقط فلگ —permanent را به دستور اولیه خود اضافه کنید. در قوانین فایروال سیستم لینوکس شما در هنگام راه اندازی گنجانده می شود.
sudo firewall-cmd --add-port=4000/tcp --permanent
برای کاربران iptables
فایروال iptables بسیار دردسرسازتر است (شاید دلیل خوبی برای ارتقاء به firewalld یا ufw باشد). برای باز کردن دائمی یک پورت در iptables، میتوانید پکیج iptables-persistent را برای کمک نصب کنید.
هنگامی که برای اولین بار iptables-persistent را روی یک سیستم مبتنی بر دبیان نصب می کنید، قوانین فعلی شما را در /etc/iptables/rules.v4 یا /etc/iptables/rules.v6 ذخیره می کند. برای اضافه کردن قوانین جدید، دستور زیر را باید اجرا کنید:
sudo iptables-save > /etc/iptables/rules.v4
یا :
sudo iptables-save > /etc/iptables/rules.v6
برای کسانی که از توزیع های لینوکس مبتنی بر RPM استفاده می کنند، کمی متفاوت است. این پکیج iptables-services نامیده می شود و فایل های ذخیره شده عبارتند از /etc/sysconfig/iptables و /etc/sysconfig/ip6tables.
در توزیع های مبتنی بر RPM، دستور متفاوتی نیز برای پورتهای IPv6 استفاده می شود. ذخیره قوانین شما با استفاده از یکی از این دو دستور انجام می شود:
sudo iptables-save > /etc/sysconfig/iptables sudo ip6tables-save > /etc/sysconfig/iptables
با گذشت زمان، نیازهای سرور شما ممکن است تغییر کند. همانطور که باید در جریان حساب های کاربری در دستگاه لینوکس خود باشید، باید پورتهای باز خود را نیز به طور مرتب بررسی کنید. هر پورت باز که دیگر مورد نیاز نیست را ببندید. در کنار تغییر منظم رمز عبور خود، این کار به شما کمک می کند از نفوذ سیستم و سوء استفاده های امنیتی جلوگیری کنید.
مثل همیشه عالی و جذاب
با تشکر از مطالب خوبتون
ببخشید میشه یکم بیشتر توضیحات بدید در مورد بخش دوم
با سپاس
خوب هستی این مطالبی که قرار دادید عالی بود اما یک نکته خدمت شما عرض کنم اینکه برخی کلمات به هم چسپیده شده اینو درست کنید
عالی عالی ممنون
سلام چطور پورتو غیر فعال کنم؟
درود و عرض ادب
من هرکاری میکنم پورت ۴۴۳ باز نمیشه دلیلش چی میتونه باشه؟؟
حتی با دستور ufw allow هم پورت رو باز کردم اما وقتی دستور netsta رو میزنم واسه چک کردن اصلا پورت ۴۴۳ رو نشون نمیده و چند روزه درگیر این وضعیت هستم
امکانش هست راهنمایی بفرمایید
متشکرم
سلام.
دستورات زیر را وارد کنید :
1. sudo iptables -I INPUT -p tcp -m tcp –dport 443 -j ACCEPT
2. sudo service iptables save
سپس برای اینکه چک شود پورت باز شده دستور زیر را بزنید :
sudo netstat -tulpn | grep :443