TCPflow - ວິເຄາະແລະການຈາລະຈອນເຄືອຂ່າຍ Debug ໃນ Linux


TCPflow ແມ່ນເຄື່ອງມືທີ່ອີງໃສ່ເສັ້ນ ຄຳ ສັ່ງທີ່ບໍ່ເສຍຄ່າ, ສາມາດໃຊ້ໃນການວິເຄາະການຈະລາຈອນຂອງເຄືອຂ່າຍໃນລະບົບທີ່ຄ້າຍຄືກັບ Unix ເຊັ່ນ Linux. ມັນຈັບຂໍ້ມູນທີ່ໄດ້ຮັບຫຼືໂອນຜ່ານການເຊື່ອມຕໍ່ TCP, ແລະເກັບຮັກສາມັນໄວ້ໃນເອກະສານ ສຳ ລັບການວິເຄາະຕໍ່ມາ, ໃນຮູບແບບທີ່ເປັນປະໂຫຍດທີ່ອະນຸຍາດໃຫ້ມີການວິເຄາະແລະອະພິປາຍ.

ຕົວຈິງແລ້ວມັນແມ່ນເຄື່ອງມືທີ່ຄ້າຍຄື tcpdump ໃນຂະນະທີ່ມັນປຸງແຕ່ງແພັກເກັດຈາກສາຍຫລືຈາກໄຟລ໌ທີ່ເກັບໄວ້. ມັນສະຫນັບສະຫນູນການສະແດງອອກການກັ່ນຕອງທີ່ມີປະສິດທິພາບດຽວກັນທີ່ສະຫນັບສະຫນູນໂດຍຄູ່ຮ່ວມງານຂອງມັນ. ຄວາມແຕກຕ່າງພຽງແຕ່ວ່າ tcpflow ເອົາຊຸດ TCP ທັງ ໝົດ ເຂົ້າເປັນ ລຳ ດັບແລະປະກອບການໄຫລຂອງແຕ່ລະຢ່າງເປັນເອກະສານແຍກຕ່າງຫາກ (ເອກະສານ ສຳ ລັບແຕ່ລະທິດທາງຂອງກະແສ) ສຳ ລັບການວິເຄາະຕໍ່ມາ.

ຊຸດຄຸນນະສົມບັດຂອງມັນປະກອບມີລະບົບປັadvancedກອິນຂັ້ນສູງ ສຳ ລັບການເຊື່ອມຕໍ່ເຊື່ອມຕໍ່ HTTP ທີ່ບີບອັດ, ການເຂົ້າລະຫັດ MIME ທີ່ບໍ່ຖືກຕ້ອງ, ຫຼືການເອີ້ນໂປແກຼມຂອງພາກສ່ວນທີສາມ ສຳ ລັບການປະມວນຜົນຫຼັງແລະອື່ນໆອີກຫຼາຍຢ່າງ.

ມີຫລາຍໆກໍລະນີການ ນຳ ໃຊ້ ສຳ ລັບ tcpflow ເຊິ່ງປະກອບມີການເຂົ້າໃຈກະແສ packet ຂອງເຄືອຂ່າຍແລະຍັງສະ ໜັບ ສະ ໜູນ ການປະຕິບັດການຊີ້ ນຳ ທາງເຄືອຂ່າຍແລະແບ່ງປັນເນື້ອໃນຂອງກອງປະຊຸມ HTTP.

ວິທີການຕິດຕັ້ງ TCPflow ໃນ Linux Systems

TCPflow ມີຢູ່ໃນຫໍສະ ໝຸດ ຢ່າງເປັນທາງການຂອງການແຈກຈ່າຍ GNU/Linux ຫລັກ, ທ່ານສາມາດຕິດຕັ້ງມັນໂດຍໃຊ້ຜູ້ຈັດການຊຸດຂອງທ່ານດັ່ງທີ່ສະແດງໄວ້.

$ sudo apt install tcpflow	#Debian/Ubuntu
$ sudo yum install tcpflow	#CentOS/RHEL
$ sudo dnf install tcpflow	#Fedora 22+

ຫຼັງຈາກການຕິດຕັ້ງ tcpflow, ທ່ານສາມາດແລ່ນມັນດ້ວຍສິດທິພິເສດ, ຖ້າບໍ່ດັ່ງນັ້ນໃຊ້ ຄຳ ສັ່ງ sudo. ໃຫ້ສັງເກດວ່າມັນຟັງຢູ່ໃນອິນເຕີເຟດເຄືອຂ່າຍທີ່ມີການເຄື່ອນໄຫວ (ຕົວຢ່າງ enp0s3).

$ sudo tcpflow

tcpflow: listening on enp0s3

ໂດຍຄ່າເລີ່ມຕົ້ນຂອງ Tcpflow ເກັບຂໍ້ມູນທີ່ຖືກຈັບໄດ້ທັງ ໝົດ ໃນແຟ້ມທີ່ມີຊື່ໃນຮູບແບບ (ນີ້ອາດຈະແຕກຕ່າງກັນຖ້າທ່ານໃຊ້ຕົວເລືອກທີ່ແນ່ນອນເຊັ່ນ timestamp).

sourceip.sourceport-destip.destport
192.168.043.031.52920-216.058.210.034.00443

ຕອນນີ້ໃຫ້ເຮັດລາຍຊື່ໄດເລກະທໍລີເພື່ອເບິ່ງວ່າການໄຫລວຽນຂອງ tcp ຖືກຈັບຢູ່ໃນແຟ້ມໃດໆ.

$ ls -1

total 20
-rw-r--r--. 1 root    root     808 Sep 19 12:49 192.168.043.031.52920-216.058.210.034.00443
-rw-r--r--. 1 root    root      59 Sep 19 12:49 216.058.210.034.00443-192.168.043.031.52920

ດັ່ງທີ່ພວກເຮົາໄດ້ກ່າວມາກ່ອນ ໜ້າ ນີ້, ແຕ່ລະການໄຫລຂອງ TCP ແມ່ນເກັບຢູ່ໃນເອກະສານຂອງມັນເອງ. ຈາກຜົນໄດ້ຮັບຂ້າງເທິງ, ທ່ານສາມາດເຫັນໄດ້ວ່າມີສາມເອກະສານສົ່ງຂໍ້ມູນ, ເຊິ່ງສະແດງໃຫ້ເຫັນ tcp flow ໃນສອງທິດທາງກົງກັນຂ້າມ, ບ່ອນທີ່ IP ແຫຼ່ງໃນເອກະສານ ທຳ ອິດແລະ IP ປາຍທາງໃນເອກະສານທີສອງແລະໃນທາງກັບກັນ.

ເອກະສານ ທຳ ອິດ 192.168.043.031.52920-216.058.210.034.00443 ມີຂໍ້ມູນໂອນຈາກເຈົ້າພາບ 192.168.043.031 (localhost ທີ່ tcpflow ຖືກແລ່ນ) ຜ່ານ port 52920, ໄປທີ່ 216.058.210.034 (host ຫ່າງໄກສອກຫຼີກ) ຜ່ານ port 443.

ແລະເອກະສານທີສອງ 216.058.210.034.00443-192.168.043.031.52920 ມີຂໍ້ມູນທີ່ຖືກສົ່ງມາຈາກເຈົ້າພາບ 216.058.210.034 (ເຈົ້າພາບທາງໄກ) ຜ່ານ port 443 ທີ່ຈະເປັນເຈົ້າພາບ 192.168.043.031 (localhost ທີ່ມີການບີບອັດການເຊື່ອມຕໍ່) ຜ່ານ port 52920.

ມັນຍັງມີບົດລາຍງານ XML ທີ່ຜະລິດ, ເຊິ່ງມີຂໍ້ມູນກ່ຽວກັບໂປແກຼມເຊັ່ນວ່າມັນຖືກລວບລວມແນວໃດ, ແລະຄອມພິວເຕີ້ທີ່ມັນໃຊ້ຢູ່ແລະບັນທຶກຂອງທຸກໆເຊື່ອມຕໍ່ tcp.

ດັ່ງທີ່ທ່ານອາດຈະໄດ້ສັງເກດເຫັນ, tcpflow ເກັບຮັກສາແຟ້ມຂໍ້ມູນທີ່ຢູ່ໃນໄດເລກະທໍລີປັດຈຸບັນໂດຍຄ່າເລີ່ມຕົ້ນ. ຕົວເລືອກ -o ສາມາດຊ່ວຍໃຫ້ທ່ານລະບຸໄດເລກະທໍລີຜົນຜະລິດທີ່ຈະຂຽນເອກະສານຂໍ້ມູນຈາກການໂອນຍ້າຍ

$ sudo tcpflow -o tcpflow_files
$ sudo ls -l tcpflow_files

total 32
-rw-r--r--. 1 root root 1665 Sep 19 12:56 157.240.016.035.00443-192.168.000.103.45986
-rw-r--r--. 1 root root   45 Sep 19 12:56 169.044.082.101.00443-192.168.000.103.55496
-rw-r--r--. 1 root root 2738 Sep 19 12:56 172.217.166.046.00443-192.168.000.103.39954
-rw-r--r--. 1 root root   68 Sep 19 12:56 192.168.000.102.00022-192.168.000.103.42436
-rw-r--r--. 1 root root  573 Sep 19 12:56 192.168.000.103.39954-172.217.166.046.00443
-rw-r--r--. 1 root root 4067 Sep 19 12:56 192.168.000.103.45986-157.240.016.035.00443
-rw-r--r--. 1 root root   38 Sep 19 12:56 192.168.000.103.55496-169.044.082.101.00443
-rw-r--r--. 1 root root 3159 Sep 19 12:56 report.xml

ທ່ານຍັງສາມາດພິມເນື້ອໃນຂອງແພັກເກັດໄປ stdout ຕາມທີ່ພວກເຂົາໄດ້ຮັບ, ໂດຍບໍ່ຕ້ອງເກັບຂໍ້ມູນໃດໆທີ່ຖືກຈັບເຂົ້າໄປໃນແຟ້ມ, ໂດຍໃຊ້ທຸງ -c ດັ່ງຕໍ່ໄປນີ້.

ເພື່ອທົດສອບສິ່ງນີ້ຢ່າງມີປະສິດທິຜົນ, ເປີດສະຖານີທີ່ສອງແລະແລ່ນປິງປິງ, ຫລືທ່ອງອິນເຕີເນັດ. ທ່ານຄວນຈະສາມາດເບິ່ງລາຍລະອຽດ ping ຫຼືລາຍລະອຽດການຊອກຫາຂອງທ່ານຖືກຈັບໂດຍ Tcpflow.

$ sudo tcpflow -c

ມັນເປັນໄປໄດ້ທີ່ຈະເກັບ ກຳ ການເຂົ້າຊົມທັງ ໝົດ ໃນພອດສະເພາະ, ຕົວຢ່າງ port 80 (HTTP). ໃນກໍລະນີຂອງການຈະລາຈອນ HTTP, ທ່ານຈະສາມາດເຫັນຫົວຂໍ້ HTTP ທີ່ຕິດຕາມດ້ວຍເນື້ອຫາທັງ ໝົດ ຢູ່ໃນ stdout ຫຼືໃນເອກະສານດຽວຖ້າປຸ່ມ -c ຖືກລຶບອອກ.

$ sudo tcpflow port 80

ເພື່ອຈັບເອົາແພັກເກັດຈາກອິນເຕີເນັດເຄືອຂ່າຍສະເພາະ, ໃຊ້ທຸງ -i ເພື່ອລະບຸຊື່ຂອງອິນເຕີເຟດ.

$ sudo tcpflow -i eth0 port 80

ທ່ານຍັງສາມາດລະບຸເຈົ້າຂອງເປົ້າ ໝາຍ (ຄ່າທີ່ຍອມຮັບແມ່ນ IP address, hostname ຫຼືໂດເມນ), ດັ່ງທີ່ສະແດງ.

$ sudo tcpflow -c host 192.68.43.1
OR
$ sudo tcpflow -c host www.google.com 

ທ່ານສາມາດເປີດໃຊ້ງານທຸກຂັ້ນຕອນໂດຍໃຊ້ເຄື່ອງສະແກນທຸກເຄື່ອງດ້ວຍທຸງ -a , ນີ້ເທົ່າກັບ -e ສັບປ່ຽນທັງ ໝົດ.

$ sudo tcpflow -a  
OR
$ sudo tcpflow -e all

ເຄື່ອງສະແກນສະເພາະຍັງສາມາດເປີດໃຊ້ງານໄດ້; ເຄື່ອງສະແກນທີ່ມີຢູ່ປະກອບມີ md5, http, netviz, tcpdemux ແລະ wifiviz (ໃຊ້ tcpflow -H ເພື່ອເບິ່ງຂໍ້ມູນລະອຽດກ່ຽວກັບເຄື່ອງສະແກນແຕ່ລະເຄື່ອງ).

$ sudo tcpflow -e http
OR
$ sudo tcpflow -e md5
OR
$ sudo tcpflow -e netviz
OR
$ sudo tcpflow -e tcpdemux
OR
$ sudo tcpflow -e wifiviz

ຕົວຢ່າງຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນວິທີການເປີດໃຊ້ເຄື່ອງສະແກນທັງ ໝົດ ຍົກເວັ້ນ tcpdemux.

$ sudo tcpflow -a -x tcpdemux 

TCPflow ມັກຈະພະຍາຍາມເຮັດໃຫ້ອິນເຕີເຟດເຄືອຂ່າຍເຂົ້າໄປໃນຮູບແບບທີ່ລ້າສຸດກ່ອນທີ່ຈະຈັບເອົາແພັກເກັດ. ທ່ານສາມາດປ້ອງກັນສິ່ງນີ້ໂດຍໃຊ້ -p ທຸງດັ່ງທີ່ສະແດງໄວ້.

$ sudo tcpflow -p -i eth0

ເພື່ອອ່ານແພັກເກັດຈາກແຟ້ມ tcpdump pcap, ໃຫ້ໃຊ້ທຸງ -r .

$ sudo tcpflow -f file.pcap

ທ່ານສາມາດເປີດໃຊ້ ໂໝດ verbose ໂດຍໃຊ້ຕົວເລືອກ -v ຫຼື -d 10 .

$ sudo tcpflow -v
OR
$ sudo tcpflow -d 10

ສິ່ງ ສຳ ຄັນ: ຂໍ້ ຈຳ ກັດ ໜຶ່ງ ຂອງ tcpflow ແມ່ນວ່າ, ໃນປັດຈຸບັນມັນບໍ່ເຂົ້າໃຈຊິ້ນສ່ວນ IP, ສະນັ້ນຂໍ້ມູນທີ່ຖືກສົ່ງຕໍ່ເປັນສ່ວນ ໜຶ່ງ ຂອງການເຊື່ອມຕໍ່ TCP ທີ່ບັນຈຸຊິ້ນສ່ວນ IP ຈະບໍ່ຖືກຈັບໄດ້ຢ່າງຖືກຕ້ອງ.

ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມແລະທາງເລືອກໃນການ ນຳ ໃຊ້, ເບິ່ງ ໜ້າ tcpflow.

$ man tcpflow 

ບ່ອນເກັບຮັກສາ TCPflow Github: https://github.com/simsong/tcpflow

ດຽວນີ້ ໝົດ ແລ້ວ! TCPflow ແມ່ນເຄື່ອງບັນທຶກການໄຫລວຽນ TCP ທີ່ມີປະສິດທິພາບເຊິ່ງມີປະໂຫຍດຕໍ່ການເຂົ້າໃຈກະແສຂອງເຄືອຂ່າຍແລະການປະຕິບັດການຕັດສິນຂອງເຄືອຂ່າຍແລະອື່ນໆ. ທົດລອງໃຊ້ແລະແບ່ງປັນຄວາມຄິດຂອງທ່ານກ່ຽວກັບມັນກັບພວກເຮົາໃນ ຄຳ ເຫັນ.