Питхон

Изградња сопственог мрежног монитора са ПиСхарком

Изградња сопственог мрежног монитора са ПиСхарком

Постојећи алати

Многи алати за мрежну анализу постоје већ дуже време. На пример, под Линуком су то Виресхарк, тцпдумп, нлоад, ифтоп, иптраф, нетхогс, бмон, тцптрацк као и брзинометар и еттерцап. За њихов детаљан опис можете погледати поређење Силвер Моон-а [1].

Па, зашто не бисте користили постојећи алат, и уместо тога написали свој? Разлози које видим су боље разумевање ТЦП / ИП мрежних протокола, учење правилног кодирања или примена само специфичне функције која вам је потребна за ваш случај употребе јер постојећи алати не дају оно што вам заправо треба. Даље, побољшања брзине и оптерећења ваше апликације / система такође могу играти улогу која вас мотивише да се више крећете у овом правцу.

У дивљини постоји прилично неколико Питхон библиотека за мрежну обраду и анализу. За програмирање на ниском нивоу кључ је соцкет библиотека [2]. Библиотеке засноване на протоколима високог нивоа су хттплиб, фтплиб, имаплиб и смтплиб. Да би се надзирали мрежни портови и конкурентни кандидати за ток пакета, користе се питхон-нмап [3], дпкт [4] и ПиСхарк [5]. И за надгледање и за промену тока пакета, скапи библиотека [6] се широко користи.

У овом чланку ћемо погледати библиотеку ПиСхарк и надгледати који пакети стижу на одређени мрежни интерфејс. Као што ћете видети доле, рад са ПиСхарком је једноставан. Документација на веб локацији пројекта помоћи ће вам у првим корацима - помоћу ње ћете врло брзо постићи употребљив резултат. Међутим, што се тиче глатке, потребно је више знања.

ПиСхарк може учинити много више него што се чини на први поглед, а нажалост, у време овог писања, постојећа документација то не покрива у потпуности. То отежава непотребно и пружа добар разлог да се дубље завири испод поклопца мотора.

О ПиСхарку

ПиСхарк [8] је Питхон омот за Тсхарк [10]. Једноставно користи своју способност извоза КСМЛ података користећи њихово рашчлањивање. Сам Тсхарк је верзија Виресхарка са командном линијом. И Тсхарк и ПиСхарк зависе од Пцап библиотеке која заправо снима мрежне пакете и одржава се под окриљем Тцпдумпа [7]. ПиСхарк развија и континуирано одржава Дан (користи име КимиНевт на Твиттеру).

Да би се спречила могућа забуна, постоји алат за слично звучење, Апацхе Спарк [11], који је обједињени аналитички механизам за обраду података великих размера. Име ПиСпарк се користи за Питхон интерфејс за Апацхе Спарк, о чему овде не разговарамо.

Инсталирање ПиСхарк-а

ПиСхарк захтева да се инсталирају и Пцап библиотека и Тсхарк. Одговарајући пакети за Дебиан ГНУ / Линук 10 и Убунту називају се либпцап0.8 и тсхарк и може се подесити на следећи начин помоћу апт-гет:

Списак 1: Инсталирање Пцап библиотеке и Тсхарк

# пип3 инсталирајте питхон-писхарк

Ако још нису инсталирани, морају се додати и Питхон3 и Пип. Одговарајући пакети за Дебиан ГНУ / Линук 10 и Убунту називају се питхон3 и питхон3-пип и могу се инсталирати на следећи начин помоћу апт-гет:

Листа 2: Инсталирајте Питхон 3 и ПИП за Питхон 3

# апт-гет инсталирајте питхон3 питхон3-пип

Сада је време да додамо ПиСхарк. На основу нашег истраживања, ПиСхарк још увек није упакован ни за једну велику Линук дистрибуцију. Његова инсталација се врши помоћу програма за инсталирање пакета Питхон пип3 (пип за Питхон 3) као системски пакет на следећи начин:

Унос 3: Инсталирајте ПиСхарк користећи ПИП

# пип3 инсталирајте питхон-писхарк

Сада је ПиСхарк спреман за употребу у Питхон скриптама на вашем Линук систему. Имајте на уму да извршавате доње скрипте Питхон као административни корисник, на пример, користећи судо, јер Пцап библиотека не дозвољава да тражите пакете као обичан корисник.

Следећа изјава додаје садржај модула ПиСхарк у простор имена ваше Питхон скрипте:

Списак 4: Увезите модул ПиСхарк

импорт писхарк

Методе хватања пакета

ПиСхарк се испоручује са два различита начина рада са којима нуди прикупљање пакета са посматраног мрежног интерфејса. За континуирано прикупљање користите методу ЛивеЦаптуре (), а за спремање у локалну датотеку методу ФилеЦаптуре () из модула ПиСхарк. Резултат је листа пакета (објекат итератора Питхон) која вам омогућава да прођете кроз заробљени пакет података по пакету. Доле наведени списак показује како се користе две методе.

Унос 5: Користите ПиСхарк за снимање са првог Вифи интерфејса влан0

импорт писхарк
хватање = писхарк.ЛивеЦаптуре (интерфејс = 'влан0')

Са претходним изјавама, снимљени мрежни пакети се чувају у меморији. Доступна меморија може бити ограничена, међутим, складиштење снимљених пакета у локалној датотеци је алтернатива. У употреби је формат датотеке Пцап [9]. Ово вам омогућава да обрађујете и тумачите забележене податке помоћу других алата који су такође повезани са Пцап библиотеком.

Списак 6: Користите ПиСхарк за чување снимљених пакета у локалној датотеци

импорт писхарк
хватање = писхарк.ФилеЦаптуре ('/ тмп / нетворкпацкагес.капа')

Покрећући листе 5 и 6, још увек нећете добити излаз. Следећи корак је сужавање пакета који ће се прецизније прикупљати на основу жељених критеријума.

Одабир пакета

Претходно представљени објекат за снимање успоставља везу са жељеним интерфејсом. Даље, две методе снифф () и снифф_цонтинуоусли () објекта за снимање прикупљају мрежне пакете. снифф () се враћа позиваоцу чим су прикупљени сви тражени пакети. Насупрот томе, снифф_цонтинуоусли () испоручује један пакет позиваоцу чим је прикупљен. Ово омогућава пренос мрежног промета уживо.

Даље, две методе омогућавају вам да одредите различита ограничења и механизам филтрирања пакета, на пример, број пакета који користе параметар пацкет_цоунт и период током којег се пакети морају сакупљати помоћу временског ограничења параметра. Списак 7 показује како прикупити 50 мрежних пакета, само као пренос уживо, користећи методу снифф_цонтинуоусли ().

Списак 7: Прикупите 50 мрежних пакета са влан0

импорт писхарк
хватање = писхарк.ЛивеЦаптуре (интерфејс = 'влан0')
за пакет у хватању.снифф_цонтинуоусли (број пакета = 5):
штампа (пакет)

Различити детаљи о пакету су видљиви помоћу исписа изјаве (пакета) (погледајте слику 1).

Слика 1: садржај пакета

На списку 7 прикупили сте све врсте мрежних пакета без обзира на протокол или порт услуге. ПиСхарк вам омогућава напредно филтрирање, користећи такозвани БПФ филтер [12]. Списак 8 показује како прикупити 5 ТЦП пакета који долазе преко порта 80 и штампати тип пакета. Информације се чувају у атрибуту пакета највиши_слој.

Списак 8: Прикупљање само ТЦП пакета

импорт писхарк
хватање = писхарк.ЛивеЦаптуре (интерфејс = 'влан0', бпф_филтер = 'тцп порт 80')
хватање.њушкати (број пакета = 5)
испис (снимање)
за пакет у хватању:
испис (пакет.највиши слој)

Спремите списак 8 као датотеку тцп-снифф.пи и покрените Питхон скрипту. Излаз је следећи:

Листинг 9: Резултат Листинг 8

# питхон3 тцп-снифф.пи

ТЦП
ТЦП
ТЦП
ОЦСП
ТЦП
#

Распакивање преузетих пакета

Снимљени објекат ради као руска лутка Матроска - слој по слој, садржи садржај одговарајућег мрежног пакета. Распакивање је некако попут Божића - никад не знате које информације пронађете унутра док их нисте отворили. Листинг 10 приказује хватање 10 мрежних пакета и откривање његовог типа протокола, изворног и одредишног порта и адресе.

Списак 10: Приказ извора и одредишта ухваћеног пакета

импорт писхарк
време увоза
# дефиниши интерфејс
нетворкИнтерфаце = "енп0с3"
# дефинише објекат хватања
хватање = писхарк.ЛивеЦаптуре (интерфаце = нетворкИнтерфаце)
принт ("слушање на% с"% нетворкИнтерфаце)
за пакет у хватању.снифф_цонтинуоусли (број пакета = 10):
# прилагођени излаз
покушати:
# добити временску ознаку
лоцалтиме = време.асктиме (време.по локалном времену (тиме.време()))
# добити пакетни садржај
протокол = пакет.транспорт_лаиер # тип протокола
срц_аддр = пакет.ип.срц # адреса извора
срц_порт = пакет [протокол].срцпорт # изворни порт
дст_аддр = пакет.ип.дст # одредишна адреса
дст_порт = пакет [протокол].дстпорт # одредишни порт
# информације о излазном пакету
принт ("% с ИП% с:% с <-> % с:% с (% с) "% (локално време, срц_аддр, срц_порт, дст_аддр, дст_порт, протокол))
осим АттрибутеЕррор као е:
# занемари пакете који нису ТЦП, УДП и ИПв4
проћи
испис ("")

Скрипта генерише излаз, као што је приказано на слици 2, један ред по примљеном пакету. Свака линија почиње временском ознаком, затим изворна ИП адреса и порт, затим одредишна ИП адреса и порт и, на крају, врста мрежног протокола.


Слика 2: Извор и одредиште за преузете пакете

Закључак

Изградња сопственог мрежног скенера никада није била лакша од тога. Заснован на основама Виресхарка, ПиСхарк вам нуди свеобухватан и стабилан оквир за надгледање мрежних интерфејса вашег система онако како ви то захтевате.

Везе и референце

  • [1] Силвер Моон: 18 команди за надгледање мрежне пропусности на Линук серверу, хттпс: // ввв.бинаритидес.цом / линук-цомманд-монитор-нетворк /
  • [2] Питхон библиотека сокета, хттпс: // доцс.питон.орг / 3 / либрари / соцкет.хтмл
  • [3] питхон-нмап, хттпс: // пипи.орг / пројецт / питхон3-нмап /
  • [4] дпкт, хттпс: // пипи.орг / пројецт / дпкт /
  • [5] ПиСхарк, хттпс: // пипи.орг / пројецт / писхарк /
  • [6] скапи, хттпс: // пипи.орг / пројецт / сцапи /
  • [7] Тцпдумп и либпцап, хттп: // ввв.тцпдумп.орг /
  • [8] ПиСхарк, веб локација пројекта, хттп: // киминевт.гитхуб.ио / писхарк /
  • [9] Либпцап формат датотеке, Виресхарк Вики, хттпс: // гитлаб.цом / виресхарк / виресхарк / - / викис / Девелопмент / ЛибпцапФилеФормат
  • [10] Тсхарк, хттпс: // ввв.виресхарк.орг / доцс / ман-пагес / тсхарк.хтмл
  • [11] Апацхе Спарк, хттпс: // искра.апацхе.орг /
  • [12] БПФ филтер, хттпс: // вики.виресхарк.орг / ЦаптуреФилтерс
Како променити показивач миша и величину, боју и шему курсора на Виндовс 10
Показивач миша и курсор у оперативном систему Виндовс 10 су врло важни аспекти оперативног система. То се може рећи и за друге оперативне системе, так...
Бесплатни и отворени кодни покретачки програми за развој Линук игара
Овај чланак ће обухватити листу бесплатних покретача игара отвореног кода који се могу користити за развој 2Д и 3Д игара на Линуку. Бројни су такви мо...
Водич за сенку Томб Раидера за Линук
Схадов оф тхе Томб Раидер је дванаести додатак серији Томб Раидер - акцијско-авантуристичкој игри коју је створио Еидос Монтреал. И критичари и фанови...