۲۲ دستور کلیدی مدیریت شبکه در لینوکس
موضوعاتی که در این مقاله به آنها پرداخته خواهد شد، به شرح زیر است:
- مدیریت شبکه در لینوکس با ifconfig
- دستور ip
- دستورات ifup، ifdown و ifquery
- دستور ethtool
- دستور ping
- دستور traceroute
- ابزار تشخیص شبکه MTR
- دستور route
- دستور nmcli
- دستور netstat
- دستور ss
- دستور nc (NetCat)
- دستور nmap
- دستور host
- دستور dig
- دستور nslookup
- دستور tcpdump
- ابزار Wireshark
- ابزار bmon
- فایروال iptables
- فایروال firewalld
- ابزار UFW
دستورات کاربردی شبکه در لینوکس برای بهبود مدیریت سیستم
مدیریت شبکه در لینوکس ، مدیران سیستم به طور مداوم وظایفی از قبیل پیکربندی، نگهداری، عیبیابی و مدیریت سرورها و شبکهها در مراکز داده را انجام میدهند. در لینوکس ابزارها و دستورات متعددی برای اهداف مدیریتی طراحی شدهاند.
در این آموزش دستورات شبکه در لینوکس ، به بررسی برخی از پرکاربردترین ابزارها و دستورات خط فرمان برای مدیریت شبکه در لینوکس میپردازیم. این دستورات را در دستهبندیهای مختلف مرور خواهیم کرد و نمونههایی از کاربردهای رایج آنها را توضیح میدهیم که مدیریت شبکه در لینوکس را بسیار سادهتر میکند.
این لیست به همان اندازه برای مهندسان شبکه لینوکس بهصورت تماموقت نیز مفید است.
پیکربندی شبکه، عیبیابی و ابزارهای دیباگ در آموزش دستورات شبکه در لینوکس
در این آموزش، ابزارهای مهمی برای مدیریت و عیبیابی شبکه در لینوکس معرفی شد. ابزارهایی مانند ifconfig، ip و tcpdump به مدیران سیستم کمک میکنند تا شبکهها را پیکربندی، مانیتور و مشکلات را بهسرعت رفع کنند.
۱. دستور ifconfig یکی از دستورات شبکه در لینوکس
ifconfig یک ابزار خط فرمان برای پیکربندی رابطهای شبکه است و همچنین برای مقداردهی اولیه رابطها هنگام بوت سیستم استفاده میشود. پس از راهاندازی سرور، میتوان از آن برای تخصیص آدرس IP به یک رابط و فعال یا غیرفعال کردن آن بر اساس نیاز استفاده کرد.
همچنین برای مشاهده آدرس IP، آدرس سختافزاری (MAC Address) و همچنین اندازه MTU (واحد انتقال حداکثر) رابطهای فعال فعلی استفاده میشود. از این رو، ifconfig برای دیباگ یا بهینهسازی سیستم بسیار مفید است.
در اینجا مثالی برای نمایش وضعیت تمامی رابطهای فعال شبکه آورده شده است:
$ ifconfig enp1s0 Link encap:Ethernet HWaddr 28:d2:44:eb:bd:98 inet addr:192.168.0.103 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::8f0c:7825:8057:5eec/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:169854 errors:0 dropped:0 overruns:0 frame:0 TX packets:125995 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:174146270 (174.1 MB) TX bytes:21062129 (21.0 MB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:15793 errors:0 dropped:0 overruns:0 frame:0 TX packets:15793 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:2898946 (2.8 MB) TX bytes:2898946 (2.8 MB)
پ.ن
آیا نیاز به خرید سرور مجازی ایران دارید؟ لطفا بر روی لینک اون کلیک کنید! اگر نیاز به vps ایران با آی پی تمیز و بدون محدودیت دارید کلیک کنید.
جهت لیست کردن تمام رابطهای شبکه که در حال حاضر در دسترس هستند، چه فعال باشند و چه غیرفعال، از گزینه -a استفاده کنید:
$ ifconfig -a
برای تخصیص یک آدرس IP به یک رابط شبکه، از دستور زیر استفاده کنید:
$ sudo ifconfig eth0 192.168.56.5 netmask 255.255.255.0
بهمنظور فعال کردن یک رابط شبکه، دستور زیر را تایپ کنید:
$ sudo ifconfig up eth0
برای غیرفعال کردن یا خاموش کردن یک رابط شبکه، دستور زیر را وارد کنید:
$ sudo ifconfig down eth0
توجه: اگرچه دستور ifconfig ابزار قدرتمندی است، اما اکنون منسوخ شده و جایگزین آن دستور ip است که در ادامه توضیح داده شده است.
۲. یکی از دستورات شبکه در لینوکس دستور IP
دستور ip یک ابزار خط فرمان مفید برای نمایش و دستکاری مسیرها، دستگاههای شبکه و رابطها است. این دستور جایگزین ifconfig و بسیاری دیگر از دستورات شبکه است. (برای یادگیری بیشتر، مقاله “تفاوت بین دستورات ifconfig و ip” را بخوانید.)
دستور زیر آدرس IP و اطلاعات دیگر مربوط به یک رابط شبکه را نمایش میدهد:
$ ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 28:d2:44:eb:bd:98 brd ff:ff:ff:ff:ff:ff inet 192.168.0.103/24 brd 192.168.0.255 scope global dynamic enp1s0 valid_lft 5772sec preferred_lft 5772sec inet6 fe80::8f0c:7825:8057:5eec/64 scope link valid_lft forever preferred_lft forever 3: wlp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 38:b1:db:7c:78:c7 brd ff:ff:ff:ff:ff:ff
برای تخصیص موقت آدرس IP به یک رابط شبکه خاص (eth0)، دستور زیر را وارد کنید:
$ sudo ip addr add 192.168.56.1 dev eth0
جهت حذف آدرس IP تخصیص داده شده از یک رابط شبکه (eth0)، دستور زیر را وارد کنید:
$ sudo ip addr del 192.168.56.15/24 dev eth0
برای نمایش جدول همسایگی فعلی در هسته، دستور زیر را وارد کنید:
$ ip neigh 192.168.0.1 dev enp1s0 lladdr 10:fe:ed:3d:f3:82 REACHABLE
۳. دستور ifup، ifdown و ifquery
با استفاده از دستور ifup یک رابط شبکه را فعال میکند و آن را برای انتقال و دریافت دادهها در دسترس قرار میدهد
$ sudo ifup eth0
دستور ifdown یک رابط شبکه را غیرفعال میکند و آن را در وضعیتی نگه میدارد که نمیتواند دادهها را منتقل یا دریافت کند.
$ sudo ifdown eth0
برای مشاهده جزئیات تنظیمات یک رابط شبکه، میتوان از دستور ifquery استفاده کرد.
$ sudo ifquery eth0
۴. دستور ethtool
ethtool یک ابزار خط فرمان برای پرسش و تغییر پارامترهای کنترلکننده رابط شبکه و درایورهای دستگاه است. مثال زیر نحوه استفاده از ethtool و دستوری برای مشاهده پارامترهای رابط شبکه را نشان میدهد.
$ sudo ethtool enp0s3 Settings for enp0s3: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: off (auto) Supports Wake-on: umbg Wake-on: d Current message level: 0x00000007 (7) drv probe link Link detected: yes
۵. دستور ping یکی از کلیدی ترین دستورات شبکه در لینوکس
ping (Packet INternet Groper) ابزاری است که معمولاً برای آزمایش اتصال بین دو سیستم در یک شبکه (شبکه محلی (LAN) یا شبکه گسترده (WAN)) استفاده میشود. در آموزش مدیریت شبکه در لینوکس این ابزار از پروتکل ICMP (Internet Control Message Protocol) برای ارتباط با نودهای شبکه استفاده میکند.
برای آزمایش اتصال به یک نود دیگر، به سادگی آدرس IP یا نام میزبان آن را وارد کنید، به عنوان مثال:
$ ping 192.168.0.103 PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data. 64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=0.191 ms 64 bytes from 192.168.0.103: icmp_seq=2 ttl=64 time=0.156 ms 64 bytes from 192.168.0.103: icmp_seq=3 ttl=64 time=0.179 ms 64 bytes from 192.168.0.103: icmp_seq=4 ttl=64 time=0.182 ms 64 bytes from 192.168.0.103: icmp_seq=5 ttl=64 time=0.207 ms 64 bytes from 192.168.0.103: icmp_seq=6 ttl=64 time=0.157 ms ^C --- 192.168.0.103 ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 5099ms rtt min/avg/max/mdev = 0.156/0.178/0.207/0.023 ms
شما میتوانید به دستور ping بگویید که پس از ارسال تعداد مشخصی از بستههای ECHO_REQUEST خارج شود، با استفاده از گزینه -c به شکل زیر:
$ ping -c 4 192.168.0.103 PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data. 64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=1.09 ms 64 bytes from 192.168.0.103: icmp_seq=2 ttl=64 time=0.157 ms 64 bytes from 192.168.0.103: icmp_seq=3 ttl=64 time=0.163 ms 64 bytes from 192.168.0.103: icmp_seq=4 ttl=64 time=0.190 ms --- 192.168.0.103 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3029ms rtt min/avg/max/mdev = 0.157/0.402/1.098/0.402 ms
۶. یکی از دستورات شبکه در لینوکس دستور Traceroute
traceroute یک ابزار خط فرمان برای ردیابی مسیر کامل از سیستم محلی شما به یک سیستم شبکه دیگر است. این ابزار تعدادی از هاپها (آدرسهای IP روتر) را در مسیری که برای رسیدن به سرور نهایی طی میکنید، چاپ میکند. traceroute یک ابزار آسان برای عیبیابی شبکه پس از دستور ping است.
در این مثال، ما مسیر بستههایی را که از سیستم محلی به یکی از سرورهای گوگل با آدرس IP 216.58.204.46 میگیرد، ردیابی میکنیم:
$ traceroute 216.58.204.46 traceroute to 216.58.204.46 (216.58.204.46), 30 hops max, 60 byte packets 1 gateway (192.168.0.1) 0.487 ms 0.277 ms 0.269 ms 2 5.5.5.215 (5.5.5.215) 1.846 ms 1.631 ms 1.553 ms 3 * * * 4 72.14.194.226 (72.14.194.226) 3.762 ms 3.683 ms 3.577 ms 5 108.170.248.179 (108.170.248.179) 4.666 ms 108.170.248.162 (108.170.248.162) 4.869 ms 108.170.248.194 (108.170.248.194) 4.245 ms 6 72.14.235.133 (72.14.235.133) 72.443 ms 209.85.241.175 (209.85.241.175) 62.738 ms 72.14.235.133 (72.14.235.133) 65.809 ms 7 66.249.94.140 (66.249.94.140) 128.726 ms 127.506 ms 209.85.248.5 (209.85.248.5) 127.330 ms 8 74.125.251.181 (74.125.251.181) 127.219 ms 108.170.236.124 (108.170.236.124) 212.544 ms 74.125.251.181 (74.125.251.181) 127.249 ms 9 216.239.49.134 (216.239.49.134) 236.906 ms 209.85.242.80 (209.85.242.80) 254.810 ms 254.735 ms 10 209.85.251.138 (209.85.251.138) 252.002 ms 216.239.43.227 (216.239.43.227) 251.975 ms 209.85.242.80 (209.85.242.80) 236.343 ms 11 216.239.43.227 (216.239.43.227) 251.452 ms 72.14.234.8 (72.14.234.8) 279.650 ms 277.492 ms 12 209.85.250.9 (209.85.250.9) 274.521 ms 274.450 ms 209.85.253.249 (209.85.253.249) 270.558 ms 13 209.85.250.9 (209.85.250.9) 269.147 ms 209.85.254.244 (209.85.254.244) 347.046 ms 209.85.250.9 (209.85.250.9) 285.265 ms 14 64.233.175.112 (64.233.175.112) 344.852 ms 216.239.57.236 (216.239.57.236) 343.786 ms 64.233.175.112 (64.233.175.112) 345.273 ms 15 108.170.246.129 (108.170.246.129) 345.054 ms 345.342 ms 64.233.175.112 (64.233.175.112) 343.706 ms 16 108.170.238.119 (108.170.238.119) 345.610 ms 108.170.246.161 (108.170.246.161) 344.726 ms 108.170.238.117 (108.170.238.117) 345.536 ms 17 lhr25s12-in-f46.1e100.net (216.58.204.46) 345.382 ms 345.031 ms 344.884 ms
۷. ابزار تشخیص شبکه MTR
MTR در آموزش دستورات شبکه در لینوکس یک ابزار تشخیص شبکه مدرن و خط فرمان است که عملکردهای ping و traceroute را در یک ابزار تشخیصی واحد ترکیب میکند. خروجی آن بهصورت زمان واقعی بهروزرسانی میشود و بهطور پیشفرض تا زمانی که با فشردن کلید q از برنامه خارج نشوید، ادامه مییابد.
سادهترین راه برای اجرای mtr ارائه یک نام میزبان یا آدرس IP بهعنوان آرگومان بهصورت زیر است:
$ mtr google.com OR $ mtr 216.58.223.78
نمونه خروجی:
در زیر یک نمونه خروجی از دستور mtr برای ردیابی مسیر به یک آدرس IP نمایش داده شده است:
poshtvarserver.com (0.0.0.0) Thu Jul 12 08:58:27 2018 First TTL: 1 Host Loss% Snt Last Avg Best Wrst StDev 1. 192.168.0.1 0.0% 41 0.5 0.6 0.4 1.7 0.2 2. 5.5.5.215 0.0% 40 1.9 1.5 0.8 7.3 1.0 3. 209.snat-111-91-120.hns.net.in 23.1% 40 1.9 2.7 1.7 10.5 1.6 4. 72.14.194.226 0.0% 40 89.1 5.2 2.2 89.1 13.7 5. 108.170.248.193 0.0% 40 3.0 4.1 2.4 52.4 7.8 6. 108.170.237.43 0.0% 40 2.9 5.3 2.5 94.1 14.4 7. bom07s10-in-f174.1e100.net 0.0% 40 2.6 6.7 2.3 79.7 16.
شما میتوانید تعداد پینگها را به یک مقدار مشخص محدود کنید و پس از ارسال آن پینگها، از mtr خارج شوید، با استفاده از گزینه -c به شکل زیر:
$ mtr -c 4 google.com
۸. دستور Route
route یک ابزار خط فرمان برای نمایش یا تغییر جدول مسیریابی IP در یک سیستم لینوکس است. این دستور یکی از دستورات مدیریت شبکه در لینوکس است که عمدتاً برای پیکربندی مسیرهای ایستا به میزبانها یا شبکههای خاص از طریق یک رابط استفاده میشود.
برای مشاهده جدول مسیریابی IP هسته، دستور زیر را وارد کنید:
$ route Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 100 0 0 enp0s3 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
شما میتوانید از دستورات متعددی برای پیکربندی مسیریابی استفاده کنید. در اینجا چند مورد مفید آورده شده است:
برای افزودن یک دروازه پیشفرض به جدول مسیریابی، از دستور زیر استفاده کنید:
$ sudo route add default gw <gateway-ip>
جهت افزودن یک مسیر شبکه به جدول مسیریابی، از دستور زیر استفاده کنید:
$ sudo route add -net <network ip/cidr> gw <gateway ip> <interface>
بهمنظور حذف یک ورودی خاص از جدول مسیریابی، از دستور زیر استفاده کنید:
$ sudo route del -net <network ip/cidr>
۹. دستور Nmcli
nmcli یک ابزار خط فرمان ساده و قابل اسکریپت برای گزارش وضعیت شبکه، مدیریت اتصالات شبکه و کنترل NetworkManager است.
جهت مشاهده تمام دستگاههای شبکه خود، دستور زیر را وارد کنید:
$ nmcli dev status DEVICE TYPE STATE CONNECTION virbr0 bridge connected virbr0 enp0s3 ethernet connected Wired connection 1
به منظور بررسی اتصالات شبکه در سیستم خود، دستور زیر را وارد کنید:
$ nmcli con show Wired connection 1 bc3638ff-205a-3bbb-8845-5a4b0f7eef91 802-3-ethernet enp0s3 virbr0 00f5d53e-fd51-41d3-b069-bdfd2dde062b bridge virbr0
برای مشاهده تنها اتصالات فعال، گزینه -a را به دستور اضافه کنید:
$ nmcli con show -a
ابزارهای اسکن شبکه و تحلیل عملکرد
این ابزارها به مدیران سیستم کمک میکنند تا وضعیت شبکه را بررسی کرده و عملکرد آن را بهینهسازی کنند. در زیر برخی از ابزارهای کاربردی در این زمینه آورده شده است:
۱۰. دستور Netstat
netstat یک ابزار خط فرمان است که اطلاعات مفیدی از جمله اتصالات شبکه، جدولهای مسیریابی، آمار رابطها و بسیاری موارد دیگر را در ارتباط با زیرسیستم شبکه لینوکس نمایش میدهد. این ابزار برای عیبیابی شبکه و تحلیل عملکرد بسیار مفید است.
علاوه بر این، netstat به عنوان یک ابزار اساسی برای اشکالزدایی خدمات شبکه نیز به کار میرود تا بررسی کند کدام برنامهها در چه پورتهایی در حال گوش دادن هستند. به عنوان مثال، دستور زیر همه پورتهای TCP در حالت گوش دادن و برنامههایی که در حال گوش دادن به آنها هستند را نمایش میدهد:
$ sudo netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 1257/master tcp 0 0 127.0.0.1:5003 0.0.0.0:* LISTEN 1/systemd tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 1015/dovecot tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1015/dovecot tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 1257/master tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 1404/pdns_server tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1064/pure-ftpd (SER tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 972/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 975/cupsd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1257/master tcp 0 0 0.0.0.0:8090 0.0.0.0:* LISTEN 636/lscpd (lscpd - tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 1015/dovecot tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 1015/dovecot tcp6 0 0 :::3306 :::* LISTEN 1053/mysqld tcp6 0 0 :::3307 :::* LISTEN 1211/mysqld tcp6 0 0 :::587 :::* LISTEN 1257/master tcp6 0 0 :::110 :::* LISTEN 1015/dovecot tcp6 0 0 :::143 :::* LISTEN 1015/dovecot tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::80 :::* LISTEN 990/httpd tcp6 0 0 :::465 :::* LISTEN 1257/master tcp6 0 0 :::53 :::* LISTEN 1404/pdns_server tcp6 0 0 :::21 :::* LISTEN 1064/pure-ftpd (SER tcp6 0 0 :::22 :::* LISTEN 972/sshd tcp6 0 0 ::1:631 :::* LISTEN 975/cupsd tcp6 0 0 :::25 :::* LISTEN 1257/master tcp6 0 0 :::993 :::* LISTEN 1015/dovecot tcp6 0 0 :::995 :::* LISTEN 1015/dovecot
برای مشاهده جدول مسیریابی هسته، از گزینه -r استفاده کنید (که معادل اجرای دستور route در بالا است):
$ netstat -r Destination Gateway Genmask Flags MSS Window irtt Iface default gateway 0.0.0.0 UG 0 0 0 enp0s3 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
توجه: اگرچه netstat ابزاری عالی است، اما اکنون منسوخ شده و جایگزین آن دستور ss است که در زیر توضیح داده شده است.
۱۱. دستور ss
ss (مخفف socket statistics) یک ابزار قدرتمند خط فرمان برای بررسی سوکتها است. این ابزار آمار سوکتها را استخراج کرده و اطلاعات مشابه با netstat را نمایش میدهد. علاوه بر این، نسبت به ابزارهای مشابه اطلاعات بیشتری درباره TCP و وضعیتها ارائه میدهد.
مثال زیر نحوه فهرست کردن تمام پورتهای TCP (سوکتها) که روی یک سرور باز هستند را نشان میدهد:
$ ss -ta State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 100 *:submission *:* LISTEN 0 128 127.0.0.1:fmpro-internal *:* LISTEN 0 100 *:pop3 *:* LISTEN 0 100 *:imap *:* LISTEN 0 128 *:sunrpc *:* LISTEN 0 100 *:urd *:* LISTEN 0 128 *:domain *:* LISTEN 0 9 *:ftp *:* LISTEN 0 128 *:ssh *:* LISTEN 0 128 127.0.0.1:ipp *:* LISTEN 0 100 *:smtp *:* LISTEN 0 128 *:8090 *:* LISTEN 0 100 *:imaps *:* LISTEN 0 100 *:pop3s *:* ESTAB 0 0 192.168.0.104:ssh 192.168.0.103:36398 ESTAB 0 0 127.0.0.1:34642 127.0.0.1:opsession-prxy ESTAB 0 0 127.0.0.1:34638 127.0.0.1:opsession-prxy ESTAB 0 0 127.0.0.1:34644 127.0.0.1:opsession-prxy ESTAB 0 0 127.0.0.1:34640 127.0.0.1:opsession-prxy LISTEN 0 80 :::mysql :::* ...
برای نمایش همه اتصالات TCP فعال همراه با تایمرهای آنها، دستور زیر را اجرا کنید:
$ ss -to
۱۲. دستور NC (NetCat)
NC که به آن “چاقوی ارتش سوئیسی شبکه” نیز گفته میشود، یک ابزار قدرتمند برای انجام تقریباً هر کاری مرتبط با سوکتهای TCP، UDP، یا سوکتهای دامنه UNIX است. این ابزار برای باز کردن اتصالات TCP، گوش دادن روی پورتهای دلخواه TCP و UDP، انجام اسکن پورت و کارهای بیشتری استفاده میشود.
همچنین میتوانید از آن بهعنوان یک پراکسی ساده TCP، برای تست دیمنهای شبکه، بررسی دسترسیپذیری پورتهای راه دور و بسیاری موارد دیگر استفاده کنید. علاوه بر این، میتوانید nc را همراه با دستور pv برای انتقال فایلها بین دو کامپیوتر به کار ببرید.
مثال زیر نحوه اسکن لیست پورتها را نشان میدهد:
$ nc -zv server2.poshtvar.lan 21 22 80 443 3000
همچنین میتوانید یک بازه از پورتها را به صورت زیر مشخص کنید:
$ nc -zv server2.poshtvar.lan 20-90
مثال زیر نشان میدهد که چگونه میتوان از nc برای باز کردن یک اتصال TCP به پورت 5000 در سرور server2.poshtvar.lan، با استفاده از پورت 3000 به عنوان پورت مبدأ و با زمان انتظار 10 ثانیه استفاده کرد:
$ nc -p 3000 -w 10 server2.poshtvar.lan 5000
۱۳. دستور Nmap
Nmap (Network Mapper) یک ابزار قدرتمند و بسیار متنوع برای مدیران سیستم و شبکه لینوکس است. از این ابزار برای جمعآوری اطلاعات درباره یک میزبان خاص یا کاوش کل شبکهها استفاده میشود. همچنین، Nmap برای انجام اسکنهای امنیتی، ممیزیهای شبکه و پیدا کردن پورتهای باز در میزبانهای راه دور و بسیاری موارد دیگر به کار میرود.
برای اسکن یک میزبان با استفاده از نام میزبان یا آدرس IP آن، به عنوان مثال:
$ nmap google.com Starting Nmap 6.40 ( http://nmap.org ) at 2018-07-12 09:23 BST Nmap scan report for google.com (172.217.166.78) Host is up (0.0036s latency). rDNS record for 172.217.166.78: bom05s15-in-f14.1e100.net Not shown: 998 filtered ports PORT STATE SERVICE 80/tcp open http 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 4.92 seconds
همچنین میتوانید به جای نام میزبان از آدرس IP استفاده کنید، به صورت زیر:
$ nmap 192.168.0.103 Starting Nmap 6.40 ( http://nmap.org ) at 2018-07-12 09:24 BST Nmap scan report for 192.168.0.103 Host is up (0.000051s latency). Not shown: 994 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 902/tcp open iss-realsecure 4242/tcp open vrml-multi-use 5900/tcp open vnc 8080/tcp open http-proxy MAC Address: 28:D2:44:EB:BD:98 (Lcfc(hefei) Electronics Technology Co.) Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
ابزارهای جستجوی DNS
ابزارهای جستجوی DNS برای بررسی و اشکالزدایی رکوردهای DNS (Domain Name System) استفاده میشوند. این ابزارها به مدیران شبکه و سیستمها کمک میکنند تا اطلاعات مرتبط با دامنهها و آدرسهای IP را پیدا کنند و مشکلات مربوط به تنظیمات DNS را شناسایی و حل کنند. در ادامه به چند ابزار مهم جستجوی DNS اشاره میشود:
۱۴. دستور host
دستور host یک ابزار ساده برای انجام جستجوهای DNS است. این ابزار نامهای میزبان (hostname) را به آدرسهای IP و بالعکس تبدیل میکند.
$ host google.com google.com has address 172.217.166.78 google.com mail is handled by 20 alt1.aspmx.l.google.com. google.com mail is handled by 30 alt2.aspmx.l.google.com. google.com mail is handled by 40 alt3.aspmx.l.google.com. google.com mail is handled by 50 alt4.aspmx.l.google.com. google.com mail is handled by 10 aspmx.l.google.com.
۱۵. دستور dig
dig (مخفف domain information groper) یک ابزار ساده دیگر برای جستجوی DNS است که برای پرسوجو درباره اطلاعات مربوط به DNS مانند رکورد A، CNAME، MX و غیره استفاده میشود. به عنوان مثال:
$ dig google.com ; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7 <<>> google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23083 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 14 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION: google.com. 72 IN A 172.217.166.78 ;; AUTHORITY SECTION: com. 13482 IN NS c.gtld-servers.net. com. 13482 IN NS d.gtld-servers.net. com. 13482 IN NS e.gtld-servers.net. com. 13482 IN NS f.gtld-servers.net. com. 13482 IN NS g.gtld-servers.net. com. 13482 IN NS h.gtld-servers.net. com. 13482 IN NS i.gtld-servers.net. com. 13482 IN NS j.gtld-servers.net. com. 13482 IN NS k.gtld-servers.net. com. 13482 IN NS l.gtld-servers.net. com. 13482 IN NS m.gtld-servers.net. com. 13482 IN NS a.gtld-servers.net. com. 13482 IN NS b.gtld-servers.net. ;; ADDITIONAL SECTION: a.gtld-servers.net. 81883 IN A 192.5.6.30 b.gtld-servers.net. 3999 IN A 192.33.14.30 c.gtld-servers.net. 14876 IN A 192.26.92.30 d.gtld-servers.net. 85172 IN A 192.31.80.30 e.gtld-servers.net. 95861 IN A 192.12.94.30 f.gtld-servers.net. 78471 IN A 192.35.51.30 g.gtld-servers.net. 5217 IN A 192.42.93.30 h.gtld-servers.net. 111531 IN A 192.54.112.30 i.gtld-servers.net. 93017 IN A 192.43.172.30 j.gtld-servers.net. 93542 IN A 192.48.79.30 k.gtld-servers.net. 107218 IN A 192.52.178.30 l.gtld-servers.net. 6280 IN A 192.41.162.30 m.gtld-servers.net. 2689 IN A 192.55.83.30 ;; Query time: 4 msec ;; SERVER: 192.168.0.1#53(192.168.0.1) ;; WHEN: Thu Jul 12 09:30:57 BST 2018 ;; MSG SIZE rcvd: 487
۱۶. دستور NSLookup
nslookup یک ابزار خط فرمان محبوب دیگر برای پرسوجو از سرورهای DNS به صورت تعاملی و غیرتعامللی است. این ابزار برای پرسوجو از رکوردهای منابع DNS (RR) استفاده میشود. شما میتوانید رکورد “A” (آدرس IP) یک دامنه را به صورت زیر پیدا کنید:
$ nslookup google.com Server: 192.168.0.1 Address: 192.168.0.1#53 Non-authoritative answer: Name: google.com Address: 172.217.166.78
همچنین میتوانید یک جستجوی معکوس دامنه (reverse domain lookup) را به صورت زیر انجام دهید:
$ nslookup 216.58.208.174 Server: 192.168.0.1 Address: 192.168.0.1#53 Non-authoritative answer: 174.208.58.216.in-addr.arpa name = lhr25s09-in-f14.1e100.net. 174.208.58.216.in-addr.arpa name = lhr25s09-in-f174.1e100.net. Authoritative answers can be found from: in-addr.arpa nameserver = e.in-addr-servers.arpa. in-addr.arpa nameserver = f.in-addr-servers.arpa. in-addr.arpa nameserver = a.in-addr-servers.arpa. in-addr.arpa nameserver = b.in-addr-servers.arpa. in-addr.arpa nameserver = c.in-addr-servers.arpa. in-addr.arpa nameserver = d.in-addr-servers.arpa. a.in-addr-servers.arpa internet address = 199.180.182.53 b.in-addr-servers.arpa internet address = 199.253.183.183 c.in-addr-servers.arpa internet address = 196.216.169.10 d.in-addr-servers.arpa internet address = 200.10.60.53 e.in-addr-servers.arpa internet address = 203.119.86.101 f.in-addr-servers.arpa internet address = 193.0.9.1
تحلیلگرهای بستههای شبکه در لینوکس
تحلیلگرهای بستههای شبکه ابزارهایی هستند که برای بررسی و تجزیه و تحلیل ترافیک شبکه استفاده میشوند. این ابزارها به مدیران سیستم و شبکه کمک میکنند تا مشکلات شبکه را شناسایی و بهینهسازی عملکرد شبکه را انجام دهند. در زیر به چند تحلیلگر بستههای شبکه محبوب در لینوکس اشاره میشود:
۱۷. دستور Tcpdump
tcpdump یک ابزار خط فرمان بسیار قدرتمند و پرکاربرد برای شنود شبکه است. از این ابزار برای ضبط و تجزیه و تحلیل بستههای TCP/IP که در یک شبکه از طریق یک رابط خاص ارسال یا دریافت میشوند، استفاده میشود.
برای ضبط بستهها از یک رابط مشخص، آن را با استفاده از گزینه -i مشخص کنید:
$ tcpdump -i eth1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 09:35:40.287439 IP tecmint.com.ssh > 192.168.0.103.36398: Flags [P.], seq 4152360356:4152360552, ack 306922699, win 270, options [nop,nop,TS val 2211778668 ecr 2019055], length 196 09:35:40.287655 IP 192.168.0.103.36398 > tecmint.com.ssh: Flags [.], ack 196, win 5202, options [nop,nop,TS val 2019058 ecr 2211778668], length 0 09:35:40.288269 IP tecmint.com.54899 > gateway.domain: 43760+ PTR? 103.0.168.192.in-addr.arpa. (44) 09:35:40.333763 IP gateway.domain > tecmint.com.54899: 43760 NXDomain* 0/1/0 (94) 09:35:40.335311 IP tecmint.com.52036 > gateway.domain: 44289+ PTR? 1.0.168.192.in-addr.arpa. (42)
برای ضبط تعداد مشخصی از بستهها، از گزینه -c استفاده کنید و تعداد مورد نظر را وارد کنید:
$ tcpdump -c 5 -i eth1
همچنین میتوانید بستهها را ضبط کرده و برای تحلیلهای بعدی در یک فایل ذخیره کنید. از گزینه -w برای مشخص کردن نام فایل خروجی استفاده کنید:
$ tcpdump -w captured.pacs -i eth1
۱۸. ابزار Wireshark
Wireshark یک ابزار محبوب، قدرتمند، چندمنظوره و آسان برای استفاده است که برای ضبط و تجزیه و تحلیل بستهها در یک شبکه بستهای (packet-switched network) به صورت آنی (real-time) به کار میرود.
شما همچنین میتوانید دادههایی که ضبط شدهاند را برای بررسیهای بعدی در یک فایل ذخیره کنید. این ابزار توسط مدیران سیستم و مهندسان شبکه برای نظارت و بررسی بستهها به منظور امنیت و عیبیابی استفاده میشود.
۱۹. ابزار Bmon
bmon یک ابزار قدرتمند مبتنی بر خط فرمان برای نظارت و عیبیابی شبکه در سیستمهای شبه یونیکس است. این ابزار آمار مرتبط با شبکه را ضبط کرده و به صورت بصری و به فرمت قابل فهم برای انسان نمایش میدهد. bmon به عنوان یک مانیتور پهنای باند و تخمینزننده نرخ در زمان واقعی، قابل اعتماد و مؤثر است.
ابزارهای مدیریت فایروال در لینوکس
مدیریت فایروال در سیستمهای لینوکسی یکی از جنبههای حیاتی امنیت شبکه است. ابزارهای مختلفی برای تنظیم و پیکربندی فایروال وجود دارد که به مدیران سیستم کمک میکند تا ترافیک ورودی و خروجی را کنترل کرده و از حملات احتمالی جلوگیری کنند. در این بخش، به معرفی برخی از ابزارهای معتبر و کاربردی برای مدیریت فایروال در لینوکس خواهیم پرداخت.
۲۰. فایروال Iptables
iptables یک ابزار خط فرمان برای پیکربندی، نگهداری و بررسی جداول فیلترینگ بستههای IP و قوانین NAT است. این ابزار برای راهاندازی و مدیریت فایروال لینوکس (Netfilter) مورد استفاده قرار میگیرد. با استفاده از iptables میتوانید قوانین فیلتر بستههای موجود را لیست کنید؛ قوانین فیلتر بسته را اضافه، حذف یا اصلاح کنید؛ و همچنین شمارشگرهای هر قانون فیلتر بسته را مشاهده کنید.
۲۱. مدیریت فایروال در لینوکس با Firewalld: جایگزین مدرن برای Iptables
Firewalld یک دیمون قدرتمند و پویا برای مدیریت فایروال لینوکس (Netfilter) است که مشابه iptables عمل میکند. این ابزار به جای استفاده از زنجیرههای INPUT، OUTPUT و FORWARD در iptables، از “منطقههای شبکه” استفاده میکند. در توزیعهای فعلی لینوکس، مانند RHEL/CentOS 7 و Fedora 21 به بالا، iptables به طور فعال توسط firewalld جایگزین میشود.
نکته مهم: iptables هنوز پشتیبانی میشود و میتوان آن را با مدیر بسته YUM نصب کرد. با این حال، شما نمیتوانید به طور همزمان از Firewalld و iptables در یک سرور استفاده کنید و باید یکی را انتخاب کنید.
۲۲. UFW: ابزار ساده و کارآمد برای پیکربندی فایروال در لینوکس
UFW یک ابزار پیکربندی فایروال شناختهشده و پیشفرض در توزیعهای لینوکس دبیان و اوبونتو است. این ابزار برای فعال/غیرفعال کردن فایروال سیستم، افزودن، حذف، اصلاح و بازنشانی قوانین فیلتر بسته و بسیاری کارهای دیگر مورد استفاده قرار میگیرد.
برای بررسی وضعیت فایروال UFW، دستور زیر را تایپ کنید:
$ sudo ufw status
اگر فایروال UFW فعال نیست، میتوانید آن را با استفاده از دستور زیر فعال کنید:
$ sudo ufw enable
برای غیرفعال کردن فایروال UFW، از دستور زیر استفاده کنید:
$ sudo ufw disable
اگر میخواهید اطلاعات بیشتری درباره یک برنامه خاص پیدا کنید، میتوانید به صفحات راهنمای آن مراجعه کنید، همانطور که در زیر نشان داده شده است:
$ man programs_name
در این آموزش جامع، ابزارها و کاربردهای مهم و پرکاربرد خط فرمان برای مدیریت شبکه در لینوکس را مورد بررسی قرار دادیم. این اطلاعات به مدیران سیستم و همچنین مهندسان و مدیران شبکه کمک میکند تا بتوانند بهصورت مؤثرتر شبکهها را پیکربندی، نگهداری و عیبیابی کنند.
اگر شما نیز ابزار یا اطلاعات مهم دیگری را در این زمینه میشناسید که در این راهنما به آن اشاره نشده، خوشحال میشویم نظرات و تجربیات خود را از طریق فرم نظرات زیر با ما به اشتراک بگذارید. هدف ما ارتقاء آگاهی و بهبود توانمندیهای کاربران در زمینه مدیریت شبکههای لینوکس است