centos チュートリアル の次のコラムでは、CentOS で tcpdump ネットワーク パケット キャプチャを使用する方法を紹介します。それを必要としている友達に役立つでしょう。役に立ちます!
yum install tcpdumpUbuntu にインストールします:
apt-get install tcpdumpデフォルトで開始
tcpdump
通常の状況では、tcpdump を直接開始すると、最初のネットワーク インターフェイス上を流れるすべてのデータ パケットが監視されます。 指定したネットワーク インターフェイスのデータ パケットを監視します (ネットワーク カードを必ず確認してください)
tcpdump -i eth1ネットワーク カードを指定しない場合、デフォルトでは tcpdump は最初のネットワーク インターフェイスのみを監視します、通常は eth0。次の例は、ネットワーク インターフェイスが指定されていません。 指定したホストのデータ パケットを監視します日没に出入りするすべてのデータ パケットを出力します。
tcpdump host sundownIP を指定することもできます (たとえば、210.27 をすべてインターセプトする)。 .48.1 ホストが受信し、送信されたすべてのデータ パケットを表示します。
tcpdump host 210.27.48.1ヘリオスとホット、または ace との間で通信されたデータ パケットを出力します。
tcpdump host helios and \( hot or ace \)傍受されたホスト 210.27.48.1 とホスト 210.27.48.2 または 210.27。 48.3 通信
tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)ace と他のホスト間で通信された IP パケットを出力します。ただし、helios を使用したパケットは含まれません。
tcpdump ip host ace and not heliosIP を除くホスト 210.27.48.1 を取得したい場合ホスト 210.27.48.2 以外のすべてのホストによって通信されるパケットを確認するには、次のコマンドを使用します。
tcpdump ip host 210.27.48.1 and ! 210.27.48.2ホスト hostname によって送信されたすべてのデータをインターセプト
tcpdump -i eth0 src host hostnameホスト hostname に送信されたすべてのデータ パケットを監視
tcpdump -i eth0 dst host hostname指定したホストとポートのデータ パケットを監視します。ホスト 210.27.48.1 によって送受信された Telnet パケットを取得する場合は、次のコマンド
tcpdump tcp port 23 and host 210.27.48.1を使用して、ローカル マシンの udp 123 ポート 123 は ntp のサービス ポートです
tcpdump udp port 123指定したネットワークのパケットを監視しますローカル ホストとバークレー ネットワーク上のホスト間のすべての通信パケットを出力します ( nt: ucb-ether, here これは、「バークレー ネットワーク」のネットワーク アドレスとして理解できます。この式の最も本来の意味は、次のように表現できます: ネットワーク アドレス ucb-ether)
tcpdump net ucb-ether# を持つすべてのパケットを出力します。 ##ゲートウェイ スナップを通過するすべての FTP パケットを出力します (式は一重引用符で囲まれており、シェルが括弧を誤って解析するのを防ぐことに注意してください)
tcpdump 'gateway snup and (port ftp or ftp-data)'
送信元アドレスまたは宛先アドレスが次の IP パケットであるすべての IP パケットを出力しますlocal host
(ローカル ネットワークがゲートウェイを介して他のネットワークに接続されている場合、他のネットワークはローカル ネットワークとしてカウントできません。(nt: この文の訳はわかりにくいので補足が必要です)。 localnet を実際に使用する場合は、ローカル ネットワークの名前に置き換える必要があります)
tcpdump ip and not net localnet
指定されたプロトコルのパケットを監視します
#TCP セッションの開始パケットと終了パケットを出力し、パケットの送信元または宛先はローカル ネットワーク上のホストではありません (nt: localnet、実際の使用はローカル ネットワークの名前に置き換える必要があります))tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet'
すべての送信元または宛先のポートを出力します。 80 では、ネットワーク層プロトコルは IPv4 であり、データを含まない SYN、FIN、ACK のみのパケットではなく、データが含まれます (ipv6 バージョンの表現は演習として使用できます)
tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)>2)) != 0)'(nt: ip[2:2] は IP パケット全体の長さを表し、(ip[0]&0xf) をバイトに変換するには、4 を掛ける、つまり 2 だけ左にシフトする必要があります。(tcp[ 12]&0xf0)>>4 は tcp ヘッダーの長さを表します。このフィールドの単位も 32 ビットです。ビット数に変換すると ((tcp[12]&0xf0) >> 4) つまり ((tcp[12]&0xf0)>>2). ((ip[2:2] - ((ip[0]&0xf)>2)) != 0 は、IP パケット全体の長さから IP ヘッダーの長さを引いた後、tcp ヘッダーの長さを引いた値が 0 ではないことを意味します。 , これは、はい、ip パケットに確かにデータがあることを意味します。ipv6 バージョンの場合、考慮する必要があるのは、ipv6 ヘッダーの「ペイロード長」と「tcp ヘッダー長」の違いと、式「ip[ ]' は、'ip6 []' に置き換える必要があります。)
長さが 576 バイトを超え、ゲートウェイ アドレスが snup である IP パケットを印刷します
tcpdump 'gateway snup and ip[2:2] > 576'すべての IP 層ブロードキャスト パケットまたはマルチキャスト パケットを印刷しますただし、物理イーサネット ネットワーク層のブロードキャストまたはマルチキャスト データグラム
tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'「エコー要求」タイプまたは「エコー応答」タイプ以外の ICMP データ パケットを印刷します (たとえば、すべてのデータ パケットを印刷する必要がある場合にこれを使用できます)非 ping プログラムによって生成される) Expression.
(nt: 'echo reuqest' および 'echo Reply' これら 2 種類の ICMP パケットは通常、ping プログラムによって生成されます))
tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'
tcpdump および Wireshark
幸いなことに、Tcpdump があります。 Tcpdump と Wireshark の完璧な組み合わせを使用すると、Linux でパケットをキャプチャし、Windows でパケットを分析することができます。
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap (1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型 (2)-i eth1 : 只抓经过接口eth1的包 (3)-t : 不显示时间戳 (4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包 (5)-c 100 : 只抓取100个数据包 (6)dst port ! 22 : 不抓取目标端口是22的数据包 (7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24 (8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析
使用tcpdump抓取HTTP包
tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854 0x4745 为"GET"前两个字母"GE",0x4854 为"HTTP"前两个字母"HT"。
tcpdump 对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序(如Wireshark)进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。
1、抓取回环网口的包:tcpdump -i lo
2、防止包截断:tcpdump -s0
3、以数字显示主机及端口:tcpdump -n
第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host.
第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。
第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定 的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和 分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。
除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&;或运算 是'or' ,'||';这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。
普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。
# tcpdump tcpdump: listening on fxp0 11:58:47.873028 202.102.245.40.netbios-ns > 202.102.245.127.netbios-ns: udp 50 11:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/C len=43 0000 0000 0080 0000 1007 cf08 0900 0000 0e80 0000 902b 4695 0980 8701 0014 0002 000f 0000 902b 4695 0008 00 11:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97 ffff 0060 0004 ffff ffff ffff ffff ffff 0452 ffff ffff 0000 e85b 6d85 4008 0002 0640 4d41 5354 4552 5f57 4542 0000 0000 0000 00
使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,
使用-c参数指定要监听的数据包数量,
使用-w参数指定将监听到的数据包写入文件中保存
A想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包:
#tcpdump host 210.27.48.1
B想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中适用 括号时,一定要
#tcpdump host 210.27.48.1 and / (210.27.48.2 or 210.27.48.3 /)
C如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
D如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
#tcpdump tcp port 23 host 210.27.48.1
E 对本机的udp 123 端口进行监视 123 为ntp的服务端口
# tcpdump udp port 123
F 系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据:
#tcpdump -i eth0 src host hostname
G 下面的命令可以监视所有送到主机hostname的数据包:
#tcpdump -i eth0 dst host hostname
H 我们还可以监视通过指定网关的数据包:
#tcpdump -i eth0 gateway Gatewayname
I 如果你还想监视编址到指定端口的TCP或UDP数据包,那么执行以下命令:
#tcpdump -i eth0 host hostname and port 80
J 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包
,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
K 想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令
:(在命令行中适用 括号时,一定要
#tcpdump host 210.27.48.1 and / (210.27.48.2 or 210.27.48.3 /)
L 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
M 如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
#tcpdump tcp port 23 host 210.27.48.1
第三种是协议的关键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型
除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,
greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'o
r' ,'||';
第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,
如果我们只需要列出送到80端口的数据包,用dst port;如果我们只希望看到返回80端口的数据包,用src port。
#tcpdump –i eth0 host hostname and dst port 80 目的端口是80
或者
#tcpdump –i eth0 host hostname and src port 80 源端口是80 一般是提供http的服务的主机
如果条件很多的话 要在条件之前加and 或 or 或 not
#tcpdump -i eth0 host ! 211.161.223.70 and ! 211.161.223.71 and dst port 80
如果在ethernet 使用混杂模式 系统的日志将会记录
May 7 20:03:46 localhost kernel: eth0: Promiscuous mode enabled.
May 7 20:03:46 localhost kernel: device eth0 entered promiscuous mode
May 7 20:03:57 localhost kernel: device eth0 left promiscuous mode
tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。
# tcpdump -i eth1 src host 211.167.237.199 00:02:03.096713 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 2010208:2010352(144) ack 33377 win 8576 00:02:03.096951 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 2010352:2010496(144) ack 33377 win 8576 00:02:03.100928 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 2010496:2010640(144) ack 33377 win 8576 00:02:03.101165 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 2010640:2010784(144) ack 33377 win 8576 00:02:03.102554 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 2010784:2010928(144) ack 33425 win 8576
表明在00:02:03点的时候,211.167.237.199通过ssh源端口连接到221.216.165.189的1467端口
#tcpdump -i eth1 src host 211.167.237.199 and dst port 1467 00:09:27.603075 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 180400:180544(144) ack 2833 win 8576 00:09:27.605631 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 180544:180688(144) ack 2881 win 8576
截获所有由eth0进入、源地址(src)为192.168.0.5的主机(host),并且(and)目标(dst)端口(port)为80的数据包
观看网卡传送、接收数据包的状态
$ netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 14639 0 0 0 5705 119 0 0 BMRU Iface: 网卡 RX-OK RX-ERR RX-DRP RX-OVR : 网卡正确接收数据包的数量以及发生错误、流失、碰撞的总数 TX-OK TX-ERR TX-DRP TX-OVR : 网卡正确发送数据包的数量以及发生错误、流失、碰撞的总数
以上がCentOS で tcpdump を使用してネットワーク パケットをキャプチャする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Centosは、安定して安全で無料であるため、エンタープライズクラスサーバーオペレーティングシステムとして適しています。 1)RHELに基づいており、RHELとの高い互換性を提供します。 2)パッケージ管理にYumを使用して、ソフトウェアのインストールと更新が簡単であることを確認します。 3)コミュニティは、最大10年のサポートサイクルで、セキュリティパッチを定期的にリリースします。

Centosが維持を停止した理由は、Redhatの戦略的変化です。ユーザーの応答戦略には、次のものが含まれます。1。Ubuntuserver、Debian、Rockylinuxなどの他の分布に移行する。 2。2024年6月までCentos7を使用し続けます。 3。Centosstreamに転向。 4. RHELに基づくカスタム分布やコンテナテクノロジーの使用など、ソリューションを構築します。

redhatedSuportforcentosososososowardsAcommercusedModelwithsostream.1)CentoStransitionedTocentSossTreamForrheldevelopment.2)thisencouragedUserstometorhel.3)代替Lockylinux、Rockylinux、andoraclelenexemergededasreplecements。

Centosは、サーバー環境に適したRedhatenterpriselinuxに基づくオープンソースオペレーティングシステムです。 1.インストール中に適切なメディアとオプションを選択し、ネットワーク、ファイアウォール、ユーザー許可を構成します。 2。ユーザーとサービスを管理し、ソフトウェアパッケージを定期的に更新するために、useradd、usermod、およびsystemctlコマンドを使用します。 3.基本操作には、YumインストールソフトウェアとSystemCTL管理サービスの使用、およびSELINUXなどの高度な機能がセキュリティを強化することが含まれます。 4.システムログを確認して、一般的なエラーを解決します。パフォーマンスを最適化するには、リソースの監視と不必要なファイルのクリーニングが必要です。

Centosは、優れたセキュリティ、安定性、パフォーマンスのために、サーバー環境とエンタープライズ環境にとって最初の選択肢です。 1)セキュリティは、システムセキュリティを改善するために、SELINUXを介した強制アクセス制御を提供します。 2)システムの安定性を確保するために、安定性はLTSバージョンによって最大10年間サポートされています。 3)パフォーマンスにより、カーネルとシステムの構成を最適化することにより、システムの応答速度とリソースの使用率が大幅に向上します。

Centosの代替品には、安定性、互換性、コミュニティサポート、パッケージ管理の特性が必要です。 1.Almalinuxは10年のサポートを提供します。2。Centosの創設者によってRockylinuxが開始され、Centosとの互換性が確保されます。選択する際には、移行コストとパフォーマンスの最適化を考慮する必要があります。

Centosは、RedhatenterPriselinuxに基づいたオープンソースの分布であり、さまざまなサーバー環境に適した安定性と長期的なサポートに焦点を当てています。 1. Centosの設計哲学は安定しており、Web、データベース、アプリケーションサーバーに適しています。 2。Yumをパッケージマネージャーとして使用して、セキュリティの更新を定期的にリリースします。 3.簡単なインストールでは、いくつかのコマンドを備えたWebサーバーを構築できます。 4.高度な機能には、Selinuxを使用したセキュリティの強化が含まれます。 5.ネットワーク構成やソフトウェアの依存関係などのよくある質問は、NMCLIおよびYumDeplistコマンドを介してデバッグできます。 6.パフォーマンス最適化の提案には、カーネルパラメーターの調整と軽量Webサーバーの使用が含まれます。

Centosは、サーバー管理とWebホスティングで広く使用されています。特定の方法には、1)YumとSystemCTLを使用してサーバーを管理し、2)WebホスティングにNGINXをインストールして構成する、3)TOPとMPSTATを使用してパフォーマンスを最適化する、4)ファイアウォールを正しく構成し、一般的な問題を回避するためにディスクスペースを管理する。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック









