O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Linux network monitoring hands-on pratice

1.570 visualizações

Publicada em

Install and configure network monitoring tools in Linux.

Publicada em: Internet
  • Seja o primeiro a comentar

Linux network monitoring hands-on pratice

  1. 1. 網路監控 實作 by netman<netman@study-area.org>
  2. 2. 主題大綱 ● Tcpdump ● Wireshark ● Ntop ● Mrtg ● Cacti ● Nagios ● OpenNMS
  3. 3. tcpdump
  4. 4. tcpdump ● http://www.tcpdump.org/ ● CLI 模式的封包截取工具 ● 使用 libpcap 作為封包處理函式庫 ● 大多數 Unix-based 作業系統均內建
  5. 5. 截取參數 -D 顯示所有可截取的網卡 -i [interface] 選擇網卡 any 表示所有的網卡 -p 不將網卡切入 promiscuous mode -F [file] 由指定的檔案讀取 Filter Expression -s 限制封包長度 (預設為 68 bytes) 0 表示不限制,錄下完整封包
  6. 6. 儲存參數 -c [封包數] 錄下指令數量的封包後停止 -C [檔案大小] 限制記錄檔案之大小 (搭配 -w 指定檔名) 達到上限時將開新檔繼續儲存 單位為 1,000,000 bytes -W [檔案數] 限制 -C 參數儲存之檔案數量
  7. 7. 檔案參數 -w [file] 將截取封包寫入至檔案 -U 搭配 -w 寫入檔案時,不作緩存 -r [file] 由指定檔案取得封包
  8. 8. 顯視參數 -A 以 ASCII 字元顯示封包內容 -e 顯示 Link Layer 資訊 (例如MAC-Address) -n 不作名稱解析 (主機名稱、服務名稱… etc) -v 顯示較詳細的封包資訊 -v 、 -vv 、 -vvv 三種等級 -x / -xx 將封包內容以 hex 格式顯示 -X / -XX 將封包內容以 hex 及 ASCII 格式顯示
  9. 9. 時間參數 -t 不顯示時間戳記 -tt 顯示 UNIX timestamp 格式 -ttt 顯示每個封包之間隔 (micro seconds) -tttt 顯示標準格式 (yyyy-mm-dd hh:mm:ss.ms)
  10. 10. 協定參數 Layer 2 arp rarp stp vlan Layer 3 ip ip6 Layer 4 tcp udp icmp
  11. 11. 目標參數 src/dst ether host net port
  12. 12. 封包參數 broadcast multicast
  13. 13. 數值運算 = : equal < : less > : greater
  14. 14. 羅輯運算 ! : not && : and || : or
  15. 15. 範例 ● 觀察eth0網頁連線 tcpdump -i eth0 tcp port 80 ● 觀察 eth1 arp 封包 tcpdump -i eth1 arp ● 觀察對 168.95.1.1 之 DNS 查詢 tcpdump host 168.95.1.1 and udp port 53 ● 錄下 POP3封包 tcpdump -w pop3.pcap tcp port 110 ● 觀察 TCP SYN 封包 tcpdump ‘tcp[tcpflags] == 2’
  16. 16. 練習1 ● 請問如下是什麼指令引起的封包? ● 從哪個來源發起至哪個目的地?
  17. 17. 練習2 ● 請從下載的封包檔中提取管理員(root)的密碼
  18. 18. wireshark
  19. 19. Wireshark ● http://www.wireshark.org/ ● 早期名稱為 ethereal ● GUI 界面的封包截取工具 ● 可作為 sniffer 截取封包來分析 ● 亦可重組封包取出資料區
  20. 20. 下載 http://www.wireshark.org/download.html
  21. 21. 安裝 yum -y install wireshark wireshark-gnome
  22. 22. Sample Captures http://wiki.wireshark.org/SampleCaptures
  23. 23. 執行
  24. 24. 配置
  25. 25. 截取選項
  26. 26. 截取
  27. 27. 分析 ● Follow Stream
  28. 28. IP來源分析 ● MaxMind GeoIP Database http://geolite.maxmind.com/download/geoip/da tabase/ ● How To Use GeoIP With Wireshark http://wiki.wireshark.org/HowToUseGeoIP
  29. 29. IP來源分析 ● 起用 GeoIP
  30. 30. 統計 ● 總覽
  31. 31. 統計 ● 協定層級
  32. 32. 統計 ● 對談
  33. 33. 另存為...
  34. 34. 參考資源 ● User’s Guide http://www.wireshark.org/docs/wsug_html_chunked/ ● Display Filter Reference http://www.wireshark.org/docs/dfref/ ● Wiki http://wiki.wireshark.org/ ● Manual http://www.wireshark.org/docs/man-pages/ ● FAQ http://www.wireshark.org/faq.html
  35. 35. ntop
  36. 36. ntop ● http://www.ntop.org/ ● 即時的流量分析/統計工具 ● 功能 – Mirror Traffic – NetFlow/sFlow – In-Line Analysis
  37. 37. 下載 http://www.ntop.org/download.html
  38. 38. 安裝 wget http://pkgs.repoforge.org/rpmforge-release/ rpmforge-release-0.5.2-2.el5.rf.i386.rpm rpm -ivh rpmforge-release-0.5.2-2.el5.rf.i386.rpm yum install ntop
  39. 39. 設定 ● 編輯 /etc/ntop.conf – --http-server=3000 ● 可變更 http server port – --interface=eth0 ● 可變更聆聽之網路界面 – --local-subnets=xx.xx.xx.xx/yy ● 定義本地端網段 – 以及其他開放項目都要增加=
  40. 40. 設定 ● 編輯 /etc/init.d/ntop (CentOS Only) – 把這行 daemon $prog -d -L @/etc/ntop.conf – 修改為: daemon $prog @/etc/ntop.conf -d -L
  41. 41. 啟動 ● ntop -A – 輸入登入密碼 – Ctrl+C 停止 ● service ntop start ● chkconfig ntop on
  42. 42. 登入 http://[IP]:3000/
  43. 43. 參考資源 ● Ntop Blog http://www.ntop.org/blog/ ● Ntop Overview http://www.ntop.org/ntop-overview.pdf ● Ntop Presentation http://www.ntop.org/OpenSourceConf_Athens2 008.pdf ● Manpage http://www.ntop.org/ntop-man.html
  44. 44. mrtg
  45. 45. mrtg ● http://www.mrtg.org/ ● Multi Router Traffic Grapher ● 利用SNMP、或客製指令抓取資料,並產生趨 勢圖表 ● 可產生 日/週/月/年 下之平均數據 ● 常用來紀錄 – 網路界面流量 – 主機負載 (CPU/Memory/ … etc) – 磁碟使用率In-Line Analysis
  46. 46. 安裝 yum install mrtg net-snmp net-snmp-utils
  47. 47. 設定 ● 修改 /etc/snmp/snmpd.conf ● 在如下句子下修改: # YOU SHOULD CHANGE THE "COMMUNITY" TOKEN BELOW TO A NEW KEYWORD ONLY ● 主要修改: com2sec local localhost netadmin com2sec mynetwork 10.10.10.0/24 netadmin
  48. 48. 設定 ● 取消下行註解 group MyRWGroup any local group MyROGroup any mynetwork view all included .1 80 access MyROGroup "" any noauth 0 all none none access MyRWGroup "" any noauth 0 all all all
  49. 49. 設定 ● 重新運行 snmpd service snmpd restart chkconfig snmpd on ● 并以 snmpwalk 進行測試 snmpwalk localhost -c netadmin -v 1
  50. 50. 設定 ● 產生mrtg設定檔 cd /etc/mrtg cfgmaker netadmin@[IP] >> mrtg.cfg ● 執行 LANG=C mrtg /etc/mrtg/mrtg.cfg ● 執行三次 ● 產生mrtg首頁 indexmaker --columns=1 --output=/var/www/mrtg/index.html /etc/mrtg/mrtg.cfg
  51. 51. 觀察結果 ● 起動 apache: service httpd restart chkconfig httpd on ● 用瀏覽器察看: http://[ip]/mrtg ● 或需修改: /etc/httpd/conf.d/mrtg.conf
  52. 52. cacti
  53. 53. cacti ● http://www.cacti.net/ ● 利用 php + mysql + rrdtool 畫出各種圖表的網 管軟體 ● 常用來取代傳統的 mrtg ● 可為各常用設備定義 template,套用方便
  54. 54. 需求 ● php – 執行網頁界面 ● mysql – 存放網頁界面資料庫 ● rrdtool – 處理 rrd 資料 ● net-snmp – 抓取 snmp 資料
  55. 55. 下載 http://www.cacti.net/download_cacti.php
  56. 56. 安裝 yum -y install cacti mysql-server
  57. 57. 資料庫處理 ● 啟動 MySQL – service mysqld start – chkconfig mysqld on ● 建立 cacti 資料庫、帳號 – mysql ● mysql> create database cacti; ● mysql> grant all on cacti.* to cacti@localhost identified by 'password'; ● mysql> quit ● 匯入資料庫 – mysql cacti -u cacti -p < /var/www/cacti/cacti.sql
  58. 58. ● 編輯設定檔 – vim /var/www/cacti/include/config.php ● $database_type = "mysql"; ● $database_default = "cacti"; ● $database_hostname = "localhost"; ● $database_username = "cacti"; ● $database_password = "password"; ● $database_port = "3306"; ● $url_path = “/cacti/”; ● 重新起點 apache service apache restart
  59. 59. 進入安裝界面 http://[IP]/cacti/install/
  60. 60. 選擇 New Install
  61. 61. 選擇 Finish
  62. 62. 登入 ● http://[IP]/cacti/ ● 預設帳密為 admin/admin,登入後需改密碼
  63. 63. 新增步驟 ● 新增主機 – Devices → Add ● 填入Description、Hostname ● 選擇Host Template ● 設定 SNMP Options(community) ● Create
  64. 64. 新增主機
  65. 65. 新增步驟 ● 建立圖表 – Devices → 點進該設備 → Create Graphs for this Host ● 勾選欲建立之圖表後 ● Create
  66. 66. 建立圖表 建立圖表
  67. 67. 新增步驟 ● 放置圖表 – Devices → 勾選選擇該設備 (最右邊) ● 下拉選單: – Place on a Tree ● Go & Continue
  68. 68. 放置圖表
  69. 69. ● 管理圖表 – Graph Trees → Add ● 可建出各類設備之樹狀結構 – Graph Management ● 勾選欲置放之圖表 ● Choose an action: Place on a Tree – Destination Branch (如有子節點) – Yes
  70. 70. ● 觀看圖表 – 切換至 Graphs 標簽 ● 展開 Graph Tree ● 選擇主機
  71. 71. 觀看圖表
  72. 72. 取得Host Template http://forums.cacti.net/forum-12.html
  73. 73. http://www.debianhelp.co.uk/cactitemplates.htm
  74. 74. 匯入 Template
  75. 75. poller ● cmd.php – 以 php 開發 – cacti 預設的 poller script – 偵測主機多時效率不佳 ● spine (cactid) – 使用 C 語言開發 – 以multi-process + multi-thread執行,效率較好
  76. 76. spine (cactid) http://www.cacti.net/spine_download.php
  77. 77. 安裝spine ● yum install cacti-spine
  78. 78. 設定spine ● 編輯設定檔 – vim /etc/spine.conf ● DB_Host localhost ● DB_Database cacti ● DB_User cacti ● DB_Pass password ● DB_Port 3306
  79. 79. 使用 spine 設定 spine 路徑(settings → Path: /usr/bin/spine)
  80. 80. 更改 Poller Type
  81. 81. opennms
  82. 82. opennms ● http://www.opennms.org/ ● Open Source / Free 的監控工具 ● 網路狀態監控工具 ● 可發出即時 Alert ● 常用於觀察 ● 主機服務 ● 網路節點狀態
  83. 83. 安裝 yum install opennms opennms-plugins opennms-plugins-nrpe * or 參考: http://eggchang.pixnet.net/blog/post/32659238
  84. 84. 安裝與設定 PostgreSQL ● 安裝 postgresql yum -y install postgresql postgresql-server postgresql-jdbc ● 讓 postgresql 於開機時自動執行 chkconfig --level 345 postgresql on ● 第一次啟動 postgresql service postgresql start
  85. 85. ● 修改 postgresql 啟動參數 cd /var/lib/pgsql/data mv pg_hba.conf pg_hba.conf.bak sed 's/ident sameuser/trust/g' pg_hba.conf.bak > pg_hba.conf ● 重新啟動 postgresql service postgresql restart
  86. 86. 安裝與設定 JDK ● 下載 jdk wget http://download.oracle.com/otn-pub/ java/jdk/6u22-b04/jdk-6u22-linux-i586- rpm.bin ● 安裝 JDK bash jdk-6u22-linux-i586-rpm.bin
  87. 87. ● 設定環境變數 cat << EOF > /etc/profile.d/java.sh export JAVA_HOME=/usr/java/default export PATH=$JAVA_HOME/bin:$PATH EOF cat << EOF > /etc/profile.d/java.csh set JAVA_HOME=/usr/java/default set PATH=$JAVA_HOME/bin:$PATH EOF source /etc/profile.d/java.sh
  88. 88. 下載與安裝 OpenNMS ● 安裝 OpenNMS 的 yum repositories rpm -ivh http://yum.opennms.org/repofiles/open nms-repo-stable-rhel5.noarch.rpm ● 建立與設定資料庫 sudo -u postgres createdb -U postgres -E UNICODE opennms yum -y install iplike
  89. 89. ● 安裝 OpenNMS yum -y install opennms mib2opennms opennms-* ● 設定 OpenNMS /opt/opennms/bin/runjava -s /opt/opennms/bin/install -dis chkconfig opennms on ● 啟動 OpenNMS service opennms start
  90. 90. http://[IP]:8980/opennms/
  91. 91. 參考資源 ● OpenNMS Documentation – http://www.opennms.org/documentation ● Official OpenNMS Documentation – http://support.opennms.com/knowledgebase/officialdocs ● OpenNMS Wiki – http://wiki.opennms.org/index.php/Main_Page ● Installation:Yum – http://www.opennms.org/wiki/Installation:Yum ● OpenNMS Documentation Overview – http://www.opennms.org/wiki/Docu-overview ● OpenNMS FAQ – http://www.opennms.org/wiki/FAQ
  92. 92. nagios
  93. 93. Nagios ● http://www.nagios.org/ ● Open Source / Free 的監控工具 ● 網路狀態監控工具 ● 可發出即時 Alert ● 常用於觀察 – 主機服務 – 網路節點狀態
  94. 94. 安裝 ● YUM yum install nagios*
  95. 95. 系統設定 ● 建立httpd帳號 htpasswd -c /etc/nagios/htpasswd.users nagiosadmin htpasswd /etc/nagios/htpasswd.users nagiosuser ● 啟動服務 service httpd restart service nagios start chkconfig httpd on chkconfig nagios on
  96. 96. 測試連線 ● 檢查設定檔語法 nagios -v /etc/nagios/nagios.cfg ● http://127.0.0.1/nagios/ – 以 nagiosadmin 登入
  97. 97. 設定 ● 修改管理員信箱 vi /etc/nagios/objects/contacts.cfg define contact{ email user@domain ;
  98. 98. 設定 ● 設定 nrpe echo 'nrpe 5666/tcp' >> /etc/services serivce nrpe start chkconfig nrpe on
  99. 99. 設定 ● 測試 nrpe /usr/lib/nagios/plugins/check_nrpe -H localhost -c check_users /usr/lib/nagios/plugins/check_nrpe -H localhost -c check_load /usr/lib/nagios/plugins/check_nrpe -H localhost -c check_total_procs /usr/lib/nagios/plugins/check_nrpe -H localhost -c check_zombie_procs
  100. 100. 設定 ● 測試硬碟空間 vi /etc/nagios/nrpe.cfg allowed_hosts=127.0.0.1,ip.ip.ip.ip command[check_root_space]=/usr/l ib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/VG/root_LV serive nrpe restart /usr/lib/nagios/plugins/check_nrpe -H localhost -c check_root_space
  101. 101. 設定 ● 建立主機組態 cp /etc/nagios/objects/windows.cfg /etc/nagios/objects/linux.cfg vi /etc/nagios/objects/linux.cfg ● use linux-server ● host_name linuxserver ● Address 10.10.2.1 ● hostgroup_name linux-servers
  102. 102. 設定 ● vi /etc/nagios/objects/linux.cfg – 把全部 host_name 從 winserver 修改 為 linuxserver (前面定義的) – 刪除多餘的 service { … } define service{ use generic-service host_name linuxserver service_description Online Users check_command check_nrpe!check_users }
  103. 103. 設定 ● 定義 nrpe 命令 vi /etc/nagios/objects/commands.cfg # 'check_nrpe' command definition define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
  104. 104. 設定 ● 修改 /etc/nagios/nagios.cfg : cfg_file=/etc/nagios/objects/linux.cfg ● 檢查組態 nagios -v /etc/nagios/nagios.cfg ● 重新執行服務 service nagios restart
  105. 105. 參考資源 ● OpenNagios – http://software.opensuse.org/ymp/openS USE:11.3/standard/nagios.ymp ● Nagios Plugins – http://software.opensuse.org/ymp/openS USE:11.3/standard/nagios-plugins.ymp ● Nagios Addons Extras – http://software.opensuse.org/ymp/openS USE:11.3/standard/nagios-plugins-extras. ymp
  106. 106. Q & A

×