اطلاعیه

بستن
No announcement yet.

راهنمای جامع برای یک Sysadmin لینوکس به منظور مدیریت، Troubleshoot و Debug شبکه

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    راهنمای جامع برای یک Sysadmin لینوکس به منظور مدیریت، Troubleshoot و Debug شبکه

    تسک های روتین یک ادمین شبکه شامل تنظیمات، نگهداری، عیب یابی و مدیریت سرورها و شبکه در دیتا سنترها میباشد. ابزار و نرم افزارهای زیادی در لینوکس برای چنین اهداف مدیریتی وجود دارند. در این پست ما به بررسی چندین ابزار command line مورد استفاده برای مدیریت شبکه در linux تحت گروه های متفاوت خواهیم پرداخت. ما در اینجا یکسری مثال های پرکاربرد را شرح خواهیم داد که مدیریت شبکه در لینوکس را آسانتر میسازد.



    ابزار Config, Troubleshoot و Debug شبکه


    1 - دستور Ifconfig

    دستور ifconfig یک ابزار command line برای کانفیگ interface شبکه میباشد و همچنین برای start کردن یک اینترفیس به هنگام boot سیستم مورد استفاده قرار میگرد. به محض اینکه یک سرور start میشود میتوان یک ip به اینترفیس آن اختصاص داد و اینترفیس آن را بر حسب نیاز فعال یا غیر فعال کرد.

    از این دستور همچنین برای نمایش وضعیت ip آدرس، سخت افزار/مک آدرس و MTU Size (مخفف Maximum Transmission Unit) از اینترفیس فعال موجود استفاده میکنیم. بنابراین ifconfig برای debug یا کنترل سیستم مفید است.

    در زیر نمونه ای از نمایش وضعیت همه اینترفیس های فعال شبکه را مشاهده میکنید.
    کد PHP:
    # ifconfig
    eno16780032flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 172.17.107.15  netmask 255.255.255.192  broadcast 172.17.107.63
            inet6 fe80
    ::250:56ff:feba:500f  prefixlen 64  scopeid 0x20<link>
            
    ether 00:50:56:ba:50:0f  txqueuelen 1000  (Ethernet)
            
    RX packets 1059985  bytes 128848763 (122.8 MiB)
            
    RX errors 0  dropped 3894  overruns 0  frame 0
            TX packets 1009059  bytes 100963870 
    (96.2 MiB)
            
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    lo
    flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 
    ::1  prefixlen 128  scopeid 0x10<host>
            
    loop  txqueuelen 1000  (Local Loopback)
            
    RX packets 258  bytes 30688 (29.9 KiB)
            
    RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 258  bytes 30688 
    (29.9 KiB)
            
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 
    برای لیست کردن همه اینترفیس های موجود چه up‌ باشند و چه down از آپشن -a استفاده میکنید.
    کد PHP:
    # ifconfig -a 
    برای اختصاص دادن یک ip به یک اینترفیس از دستور زیر استفاده میکنیم.
    کد PHP:
    # sudo ifconfig eth0 192.168.56.5 netmask 255.255.255.0 
    برای فعال کردن یک اینترفیس شبکه دستور زیر را استفاده میکنیم.
    کد PHP:
    # sudo ifconfig up eth0 
    برای غیر فعال کردن یا خاموش کردن یک اینترفیس شبکه دستور زیرا را استفاده میکنیم.
    کد PHP:
    # sudo ifconfig down eth0 

    نکته : اگر چه ifconfig یک ابزار بی نظیر است اما در حال حاضر منسوخ شده است و با دستور Ip جایگزین شده است که در زیر به توضیح آن میپردازیم.



    2 - دستور IP

    دستور ip یکی دیگر از ابزار کامند لاینی مفید دیگر برای نمایش و اجرای routing دیوایس های شبکه اینترفیس ها میباشد. این دستور جایگزینی برای ifconfig و بسیاری از دستورات دیگر شبکه می باشد. (پیشنهاد میشود برای مطالعه بیشتر پست "تفاوت بین دستورات ifconfig و ip" را بررسی نمایید.)

    دستور زیر ip آدرس و اطلاعات دیگر درباره یک اینترفیس شبکه را نمایش میدهد.
    کد PHP:
    # ip addr show
    1lo: <LOOPBACK,UP,LOWER_UPmtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        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
    eno16780032: <BROADCAST,MULTICAST,UP,LOWER_UPmtu 1500 qdisc mq state UP group default qlen 1000
        link
    /ether 00:50:56:ba:50:0f brd ff:ff:ff:ff:ff:ff
        inet 172.17.107.15
    /26 brd 172.17.107.63 scope global noprefixroute eno16780032
           valid_lft forever preferred_lft forever
        inet6 fe80
    ::250:56ff:feba:500f/64 scope link
           valid_lft forever preferred_lft forever 
    برای اینکه به صورت موقت به اینترفیس خاصی (eth0) از شبکه ip address اختصاص دهیم دستور زیر را استفاده کنید.
    کد PHP:
    sudo ip addr add 192.168.56.1 dev eth0 
    برای حذف ip‌ آدرس یک اینترفیس (eth0) دستور زیر را استفاده میکنیم.
    کد PHP:
    sudo ip addr del 192.168.56.15/24 dev eth0 
    برای نمایش جدول همسایگی جاری در kernel دستور زیر را اجرا کنید.
    کد PHP:
    # ip neigh
    172.17.107.10 dev eno16780032 lladdr 00:50:56:bd:6c:cd STALE
    172.17.107.1 dev eno16780032 lladdr 00
    :09:0f:09:00:26 REACHABLE 


    3 - دستورات Ifup, Ifdown و Ifquery

    دستور ifup یک اینترفیس شبکه را فعال میکند و آنرا برای ارسال و دریافت دیتا در دسترس میسازد.
    کد PHP:
    sudo ifup eth0 
    دستور ifdown یک اینترفیس شبکه را غیرفعال میکند و آنرا در وضعیتی نگه میدارد که قادر به ارسال و دریافت دیتا نیست.
    کد PHP:
    sudo ifdown eth0 
    دستور ifquery برای parse کردن کانفیگ اینترفیس شبکه مورد استفاده قرار میگیرد همچنین شما را به دریافت جواب به query درباره نحوه کانفیگ موجود قادر میسازد.
    کد PHP:
    sudo ifquery eth0 


    4 - دستور Ethtool

    Ethtool یک ابزار کامند لاینی برای query گرفتن و تغییر پارامترهای کنترلر اینترفیس شبکه و درایورهای دیوایس میباشد. مثال زیر استفاده از ethtool و دستوری برای نمایش پارامترهای اینترفیس شبکه را نمایش میدهد.
    کد PHP:
    # ethtool eno16780032
    Settings for eno16780032:
            
    Supported ports: [ TP ]
            
    Supported link modes:   1000baseT/Full
                                    10000baseT
    /Full
            Supported pause frame 
    use: No
            Supports auto
    -negotiationNo
            Supported FEC modes
    Not reported
            Advertised link modes
    :  Not reported
            Advertised pause frame 
    use: No
            Advertised auto
    -negotiationNo
            Advertised FEC modes
    Not reported
            Speed
    10000Mb/s
            Duplex
    Full
            Port
    Twisted Pair
            PHYAD
    0
            Transceiver
    internal
            Auto
    -negotiationoff
            MDI
    -XUnknown
            Supports Wake
    -onuag
            Wake
    -ond
            Link detected
    yes 


    5 - دستور Ping

    Ping (مخفف Packet INternet Groper) ابزاری برای تست کردن ارتباط بین دو سیستم روی یک شبکه LAN (مخفف Local Area Network) یا WAN (مخفف Wide Area Network) مورد استفاده قرار میگیرد. این ابزار از پروتکل ICMP (مخفف Internet Control Message Protocol)‌ برای برقرار ارتباط با node های روی یک شبکه استفاده میکند.

    برای تست کردن ارتباط با node دیگر به آسانی ip یا hostname آنرا ping کنید. برای مثال :
    کد PHP:
    # ping 172.16.90.166
    PING 172.16.90.166 (172.16.90.16656(84bytes of data.
    64 bytes from 172.16.90.166icmp_seq=1 ttl=121 time=3.01 ms
    64 bytes from 172.16.90.166
    icmp_seq=2 ttl=121 time=1.44 ms
    64 bytes from 172.16.90.166
    icmp_seq=3 ttl=121 time=1.48 ms
    64 bytes from 172.16.90.166
    icmp_seq=4 ttl=121 time=0.845 ms
    64 bytes from 172.16.90.166
    icmp_seq=5 ttl=121 time=1.14 ms
    64 bytes from 172.16.90.166
    icmp_seq=6 ttl=121 time=1.74 ms
    64 bytes from 172.16.90.166
    icmp_seq=7 ttl=121 time=1.17 ms
    64 bytes from 172.16.90.166
    icmp_seq=8 ttl=121 time=0.904 ms
    64 bytes from 172.16.90.166
    icmp_seq=9 ttl=121 time=0.978 ms
    ^C
    --- 172.16.90.166 ping statistics ---
    9 packets transmitted9 received0packet losstime 8012ms
    rtt min
    /avg/max/mdev 0.845/1.414/3.011/0.631 ms 
    همچنین شما میتوانید به دستور ping اعلام کنید که بعد از تعداد مشخصی از پکت های ECHO_REQUEST اجرا را متوقف کند. که همانند زیر از آپشن -c استفاده میکنیم.
    کد PHP:
    # ping -c 4 172.16.90.166
    PING 172.16.90.166 (172.16.90.16656(84bytes of data.
    64 bytes from 172.16.90.166icmp_seq=1 ttl=121 time=1.03 ms
    64 bytes from 172.16.90.166
    icmp_seq=2 ttl=121 time=1.10 ms
    64 bytes from 172.16.90.166
    icmp_seq=3 ttl=121 time=1.21 ms
    64 bytes from 172.16.90.166
    icmp_seq=4 ttl=121 time=1.05 ms

    --- 172.16.90.166 ping statistics ---
    4 packets transmitted4 received0packet losstime 3003ms
    rtt min
    /avg/max/mdev 1.035/1.101/1.212/0.079 ms 


    6 - دستور Traceorute

    Traceroute یک ابزار کامند لاینی برای trace کردن مسیر کامل از سیستم local شما به سیستم شبکه ای دیگر میباشد. این دستور تعداد hop ها (ip روترها) در آن مسیر که شما برای رسیدن به سرور مقصد طی مکنید را نمایش میدهد. دستور traceroute یک ابزار آسان برای ترابل شوت شبکه بعد از دستور ping میباشد.

    در این مثال ما پکت های route که از سیستم لوکال به یکی از سرورهای گوگل با ip آدرس 8.8.8.8 ارسال میشوند را trace میکند.
    کد PHP:
    traceroute 216.58.204.46
    traceroute to 216.58.204.46 
    (216.58.204.46), 30 hops max60 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 


    7 - ابزار MTR برای بررسی شبکه

    MTR یک ابزار کامند لاینی جدید برای بررسی شبکه میباشد که کاربرد ping و traceroute را به صورت ترکیبی در یک دستور دارد. خروجی آن به صورت real time به طور پیش فرض تا زمانی که شما با فشردن "q" از برنامه خارج نشدید، آپدیت میشود.

    آسانترین راه برای اجرا کردن MTR اجرا کردن آن با یک ip آدرس یا hostname به عنوان یک argument میباشد.
    کد PHP:
    mtr google.com
    OR
    mtr 216.58.223.78 

    نمونه خروجی
    کد PHP:
                                                          My traceroute  [v0.85]
    asterisk-campain (0.0.0.0)                                                                               Mon Jul 23 10:49:49 2018
    Resolver
    Received error response 2. (server failure)er of fields   quit
                                                                                             Packets               Pings
     Host                                                                                  Loss
    %   Snt   Last   Avg  Best  Wrst StDev
     1. 172.17.107.1                                                                        0.0
    %    33    0.2   0.2   0.1   0.3   0.0
     2. 172.19.17.122                                                                       0.0
    %    33    0.8   0.7   0.5   1.1   0.0
     3. 172.19.17.153                                                                       0.0
    %    33    0.4   0.4   0.3   0.6   0.0
     4. 172.19.17.2                                                                         0.0
    %    33    2.8   3.5   1.9  32.5   5.2
     5. 10.201.177.41                                                                       0.0
    %    33    2.0   4.5   1.3  31.1   6.8
     6. 10.201.177.246                                                                      0.0
    %    33    4.4   4.7   3.2   9.4   1.2
     7. pos0
    -2-1-0.franco72.fra.seabone.net                                                 0.0%    33   72.7  72.6  71.8  74.0   0.2
     8. racc
    .milano1.mil.seabone.net                                                        0.0%    32   73.5  73.0  71.6  87.5   2.7
     9. 72.14.205.162                                                                       0.0
    %    32   72.5  72.7  71.9  74.5   0.3
    10. 
    ???
    11. 216.239.40.234                                                                      0.0%    32   74.8  74.6  73.9  77.0   0.4
    12. 108.170.252.82                                                                      0.0
    %    32   72.6  73.5  72.0  85.5   2.8
    13. 108.170.238.60                                                                      0.0
    %    32   73.0  73.4  72.5  74.7   0.3
    14. 209.85.242.78                                                                       0.0
    %    32   72.2  73.2  71.7  84.0   2.2
    15. 108.170.251.129                                                                     0.0
    %    32   72.6  72.7  71.7  73.6   0.0
    16. 72.14.234.115                                                                       0.0
    %    32   72.8  72.7  72.0  73.6   0.0
    17. fra15s18
    -in-f110.1e100.net                                                          0.0%    32   72.0  72.6  72.0  73.1   0.0 
    شما میتوانید تعداد ping ها را به مقدار خاصی limit کنید و از mtr بعد از آن مقدار خارج شوید که این مورد با استفاده از آپشن -c انجام میشود.
    کد PHP:
    mtr -c 4 google.com 


    8 - دستور Route

    دستور Route یکی از ابزارهای کامند لاینی برای نمایش و بررسی جدول ip routing روی یکی سیستم لینوکسی میباشد. این ابزار صورت اصلی برای کانفیگ روت های static به هاست یا شبکه های خاص از طریق یک اینترفیس،‌ مورد استفاده قرار میگیرد.

    شما میتوانید جدول ip routing کرنل را با اجرا کردن دستور زیر مشاهده کنید.
    کد PHP:
    # route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    
    Use Iface
    default         172.17.107.1    0.0.0.0         UG    100    0        0 eno16780032
    172.17.107.0    0.0.0.0         255.255.255.192 U     100    0        0 eno16780032 
    دستورهای بیشماری وجود دارد که شما میتوانید با استفاده از آنها routing را کانفیگ کنید. در اینجا یکسری از دستورات مفید را بررسی میکنیم.


    اضافه کردن یک defualt gateway به جدول routing :
    کد PHP:
    sudo route add default gw <gateway-ip
    اضافه کردن یک route شبکه به جدول routing :
    کد PHP:
    sudo route add -net <network ip/cidrgw <gateway ip> <interface> 
    حذف یک route خاص از جدول routing
    کد PHP:
    sudo route del -net <network ip/cidr


    9 - دستور Nmcli

    Nmcli یک ابزار کامند لاینی آسان و قابل اسکریپت نویسی برای گزارش وضعیت شبکه، مدیریت ارتباطات شبکه و کنترل network manager میباشد.

    برای نمایش همه دیوایس های شبکه خود دستور زیر را اجرا کنید.
    کد PHP:
    # nmcli device status
    DEVICE       TYPE      STATE      CONNECTION
    eno16780032  ethernet  connected  eno16780032
    lo           loopback  unmanaged  
    -- 
    برای بررسی ارتباطات شبکه روی سیستم تان دستور زیر را اجرا کنید.
    کد PHP:
    # nmcli connection show
    NAME         UUID                                  TYPE      DEVICE
    eno16780032  4056812d
    -86be-4482-be16-8774ea551d0f  ethernet  eno16780032 
    برای مشاهده فقط ارتباطات فعال آپشن -a را استفاده کنید.
    کد PHP:
    nmcli connection show -


    ابزار آنالیز کارایی و اسکن شبکه


    10 - دستور Netstat

    Netstat یک ابزار کامند لاینی برای نمایش اطلاعات مفید مانند ارتباطات شبکه، جدول های routing، آمار اینترفیس و موارد بیشمار دیگر مرتبط با سیستم شبکه لینوکس میباشد. این ابزار برای ترابل شوتینگ و آنالیز performace بسیار مفید است.

    علاوه بر این،‌ این ابزار یک سرویسی برای debug کردن اساسی شبکه میباشد که برای بررسی اینکه چه برنامه هایی روی چه پورت هایی در حال listen کردن هستند استفاده میشود. برای مثال دستور زیر تمام پورت های TCP که در حال listen هستند و برنامه هایی که روی آنها listen میکند را نمایش خواهد داد.
    کد PHP:
    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 
    برای نمایش جدول routing کرنل آپشن -r را استفاده کنید. (که برابر است با اجرا کردن دستور route)
    کد PHP:
    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 جایگزین شده است که در ادامه به توضیح آن میپردازیم.



    11 - دستور SS

    ss (مخفف Socket Statistics) یک ابزار کامند لاینی قدرتمند برای جستجو کردن سوکت ها میباشد. این دستور آمار سوکت را پاک میکند و اطلاعات شبیه به netstat را نمایش میدهد. علاوه بر این اطلاعات بیشتری درباره TCP و وضعیت سرویس ها در مقایسه با سایر ابزارهای مشابه میدهد.

    مثال زیر نحوه لیست کردن همه پورت های TCP (سوکت ها (sockets)) که روی یک سرور باز هستند را نمایش میدهد.
    کد PHP:
    # ss -ta
    State      Recv-Q Send-Q                  Local Address:Port                                   Peer Address:Port
    LISTEN     0      50                                  
    *:mysql                                             *:*
    LISTEN     0      128                                 *:ssh                                               *:*
    LISTEN     0      10                          127.0.0.1:smtp                                              *:*
    ESTAB      0      64                      172.17.107.15:ssh                                   172.16.90.166:50686
    ESTAB      0      0                       172.17.107.15
    :ssh                                   172.16.90.166:53273
    ESTAB      0      0                       172.17.107.15
    :ssh                                   172.16.90.166:51489
    LISTEN     0      128                                
    :::http                                             :::*
    LISTEN     0      128                                :::ssh                                              :::* 
    برای نمایش همه ارتبا طات فعال TCP به همراه timer آنها دستور زیر را اجرا کنید.
    کد PHP:
    ss -to 


    12 - دستور NC

    NC (مخفف NetCat)‌ که همچنین با عنوان "Network Swiss Army Knife" شناخته میشود یک ابزار قدرتمند میباشد که عموما برای هر تسک مرتبط با سوکت های TCP, UDP یا UNIX Domain مورد استفاده قرار میگیرد.

    این ابزار از ارتباطات باز TCP استفاده میکند به پورت های استاندارد TCP و UDP گوش میدهد. port scaning و تسک های بیشمار دیگری را انجام میدهد.

    شما همچنین میتوانید آنرا به عنوان یک proxy ساده TCP برای تست سرویس شبکه، بررسی اینکه آیا پورت های ریموت قابل دسترسی هستند یا خیر و موارد بیشمار دیگری استفاده کنید. علاوه بر این شما میتوانید nc را به همراه دستور pv برای انتقال فایل بین دو کامپیوتر استفاده کنید.

    مثال زیر نحوه اسکن لیستی از پورت ها را نمایش میدهد.
    کد PHP:
    nc -zv server2.linuxzone.lan 21 22 80 443 3000 
    شما همچنین میتوانید رنجی از پورت ها را همانند زیر مشخص کنید.
    کد PHP:
    nc -zv server2.linuxzone.lan 20-90 
    مثال زیر نحوه استفاده از nc برای باز کردن یک ارتباط TCP به پورت 5000 روی server2.linuxzone.lan با استفاده از پورت 3000 به عنوان پورت مبداء و با time oute 10 ثانیه را نمایش میدهد.
    کد PHP:
    nc -p 3000 -w 10 server2.linuxzone.lan 5000 


    13 - دستور Nmap

    Nmap (مخفف Network Mapper)‌ یک ابزار قدرتمند و همه کاره برای مدیران شبکه/سیستم لینوکس میباشد. از این ابزار برای جمع کردن اطلاعات از یک هاست مجزا یا پیدا کردن شبکه های یک شبکه کلی مورد استفاده قرار میگیرد. همچنین از nmap برای اجرا کردن اسکن های امنیتی، ممیزی شبکه، و یافتن پورت های باز روی هاست های ریموت و موارد بیشتر دیگر استفاده میشود.

    شما میتوانید یک هاست را با استفاده از hostname یا ip آدرس آن اسکن کنید. برای مثال :
    کد PHP:
    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.78bom05s15-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 upscanned in 4.92 seconds 
    همچنین میتوانید همانند زیر یک ip آدرس استفاده کنید.
    کد PHP:
    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 shown994 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(hefeiElectronics Technology Co.)
    Nmap done1 IP address (1 host upscanned in 0.13 seconds 

    همچنین توصیه میشود مطالعه کنید.

    نحوه استفاده از Nmap Script Engine (یا NSE) در اسکریپت های لینوکس (به زودی)

    راهنمای عملی استفاده از Nmap در Kali لینوکس (Network Security Scanner)

    اسکن IP Address هاست های موجود و متصل در شبکه با Nmap



    ابزارهای DNS Lookup


    14 - دستور Host

    دستور Host یک ابزار ساده برای انجام دادن DNS Lookup میباشد. این دستور hostname را به ip آدرس و بالعکس ترجمه میکند.
    کد PHP:
    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


    15 - دستور DIG

    Dig ( مخفف Domain Information Groper)‌ همچنین یکی دیگر از ابزارهای آسان به منظور DNS Lookup میباشد که برای کوئری گرفتن از اطلاعات مرتبط با DNS همانند A Record, CNAME, MX Record و غیره مورد استفاده قرار میگیرد. برای مثال :
    کد PHP:
    dig google.com
    ; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7 <<>> google.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>
    HEADER<<- opcodeQUERYstatusNOERRORid23083
    ;; flagsqr rd raQUERY1ANSWER1AUTHORITY13ADDITIONAL14
    ;; OPT PSEUDOSECTION:
    EDNSversion0flags:; udp4096
    ;; 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 time4 msec
    ;; SERVER192.168.0.1#53(192.168.0.1)
    ;; WHENThu Jul 12 09:30:57 BST 2018
    ;; MSG SIZE  rcvd487 


    16 - دستور NSLookup

    NSLookup یک ابزار معروف و رایج برای کوئری گرفتن از سرورهای DNS میباشد، این ابزار برای کوئری گرفتن از DNS resource records (یا RR) مورد استفاده قرار میگیرد. شما میتوانید A Record یک دامین را همانند زیر پیدا کنید.
    کد PHP:
    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 همانند زیر اجرا کنید.
    کد PHP:
    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 



    آنالیزورهای پکت های شبکه در Linux


    17 - دستور Tcpdump

    Tcpdump یک sniffer کامند لاینی قدرتمند و بسیار پر کاربرد و پر استفاده برای شبکه میباشد. از این ابزار برای مانیتور و آنالیز کردن پکت های TCP/IP که در بستر یک شبکه روی یک اینترفیس خاص ارسال یا دریافت میشوند مورد استفاده قرار میگیرند.

    برای capture کردن پکت ها از یک اینترفیس مشخص از آپشن -i استفاده کنید.
    کد PHP:
    tcpdump -i eth1
    tcpdump
    verbose output suppressed, use -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.36398Flags [P.], seq 4152360356:4152360552ack 306922699win 270options [nop,nop,TS val 2211778668 ecr 2019055], length 196
    09:35:40.287655 IP 192.168.0.103.36398 tecmint.com.sshFlags [.], ack 196win 5202options [nop,nop,TS val 2019058 ecr 2211778668], length 0
    09:35:40.288269 IP tecmint.com.54899 gateway.domain43760PTR103.0.168.192.in-addr.arpa. (44)
    09:
    35:40.333763 IP gateway.domain tecmint.com.5489943760 NXDomain0/1/(94)
    09:
    35:40.335311 IP tecmint.com.52036 gateway.domain44289PTR1.0.168.192.in-addr.arpa. (42
    برای capture کردن تعداد مشخصی از پکت ها از آپشن -c همانند زیر استفاده کنید.
    کد PHP:
    tcpdump -c 5 -i eth1 
    شما همچنین میتوانید پکت ها را در یک فایل به منظور آنالیز های بعدی capture و ذخیره کنید. که برای این منظور از آپشن -w برای مشخص کردن فایل خروجی استفاده کنید.
    کد PHP:
    tcpdump -w captured.pacs -i eth1 


    18 - ابزار Wireshark

    Wireshark یک ابزار آسان قدرتمند و همه کاره برای capture و آنالیز پکت ها به صورت real time در یک شبکه packet swithch مورد استفاده قرار میگیرد.

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



    19 - ابزار Bmon

    Bmon یک ابزار کامند لاینی،‌ قدرتمند برای مانیتورینگ و دیباگ شبکه بر روی سیستم های شبیه UNIX میباشد. این ابزار آما مرتبط با شبکه را capture و آنها را به فرمت قابل خواندن توسط انسان (human friendly) نمایش میدهد. این ابزار یک تخمین زن مفید،‌ ماثر و real time برای مانیتور پهنای باند و rate میباشد.


    همچنین توصیه میشود مطالعه کنید.

    Bmon - یک ابزار عیب یابی و مانیتورینگ قدرتمند پهنای باند شبکه (به زودی)



    ابزار مدیریت فایروال لینوکس


    20 - فایروال IPTables

    IPTables یک ابزار کامندلاینی برای کانفیگ، نگهداری و بررسی packet filtring جدول ip و مجموعه قوانین NAT میباشد. این ابزار برای نصب و مدیریت فایروال لینوکسی (Netfilter) مورد استفاده قرار میگیرد. این ابزار به شما این امکان را میدهد که قوانین موجود برای فیلتر کردن پکت ها را لیست، اضافه یا حذف یا تغییر دهید.


    شما میتوانید نحوه استفاده از iptables برای اهداف گوناگون را از پست های زیر مطالعه و بررسی کنید.

    آموزش، دستورات و ترفندهای ابتدای IPTables (فایروال لینوکس)

    25 rule مفید در فایروال IPTables که هر ادمین لینوکسی باید آنها را بداند. (به زودی)

    نحوه تنظیمات فایروال IPTables برای دسترسی دادن به سرویس ها و پورت ها (به زودی)

    نحوه مسدود کردن درخواست های ICMP در Ping بر روی سیستم های لینوکسی



    21 - Firewalld

    Firewalld یک سرویس قدرتمند و داینامیک برای مدیریت فایروال لینوکسی (Netfilter) دقیقا همانند iptables میباشد. این ابزار به جای CHAIN های INPUT, OUTPUT و FORWARD در iptables از "networks zones" استفاده میکند، روی توزیع های لینوکسی اخیر همانند RHEL/CentOS7 و Fedora21+ سرویس iptables با سرویس firewalld جایگزین شده است.


    همچنین توصیه میشود مطالعه کنید.

    Rule های کاربردی FirewallD برای تنظیمات و مدیریت فایروال در Linux

    نحوه نصب و راه اندازی FirewallD در RHEL/CentOS 7 و Fedora 21

    نحوه Start/Stop و Enable/Disable کردن FirewallD و Iptables در Linux (به زودی)

    تنظیمات Samba و FirewallD و SELinux برای اجازه دادن دسترسی به فایل های به اشتراک گذاشته شده در Linux/Windows (به زودی)



    نکته : iptables همچنان پشتیبانی میشود و میتوان آنرا با استفاده از yum نصب کرد. به هر حال شما نمیتوانید firewalld و iptables را همزمان روی یک سرور استفاده کنید. شما باید یکی از آنها را انتخاب کنید.



    22 - UFW (Uncomplicated Firewall)

    UFW ابزار شناخته شده برای کانفیگ فایروال پیش فرض روی توزیع های لینوکسی دبیان و اوبونتو میباشد. از این دستور برای فعال و غیر فعال کردن سیستم فایروال اضافه/حذف/تغییر و reset قوانین فیلتر پکت و ... استفاده میشود.

    برای بررسی وضعیت فایروال UFW دستور زیر را اجرا کنید.
    کد PHP:
    sudo ufw status 
    اگر فایروال UFW فعال نیست شما میتوانید آنرا با استفاده از دستور زیر فعال کنید.
    کد PHP:
    sudo ufw enable 
    برای غیر فعال کردن فایروال UFW از دستور زیر استفاده کنید.
    کد PHP:
    sudo ufw disable 
    برای بررسی بیشتر UFW پست نحوه پیاده سازی فایروال UFW روی اوبونتو و دبیان را مطالعه کنید.


    اگر شما میخواهید که اطلاعات بیشتری درباره یک برنامه خاص بدانید میتوانید صفحه man آنرا مطالعه کنید.
    کد PHP:
    man programs_name 
    در این مقاله گسترده ما بعضی از ابزارهای کامندلاینی برای مدیریت شبکه در لینوکس تحت گروه های متفاوت و برای ادمین های سیستم و همجنین مهندسان فول تایم شبکه را مرور کردیم.

    شما میتوانید نظرات خود را در مورد این پست با ما مطرح کنید. همچنین میتوانید ابزارهای شبکه ای لینوکس یا هر اطلاعات مرتبط مفیدی را با ما به اشتراک بگذارید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 07-23-2018, 11:43 AM.

درباره انجمن منطقه لینوکسی ها

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

شبکه های اجتماعی

ایمیل مدیریت

Habili@linux-zone.org

در حال انجام ...
X