質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

解決済

2回答

1263閲覧

CentOS 7.8 で tcpdump のscript を service に登録してもうまく動きません。

UserOfJava

総合スコア57

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

1クリップ

投稿2020/09/26 09:54

script内容
synflood.sh

#!/bin/bash tcpdump -i ens33 port 443 -n > /home/userid/synflood.txt

/etc/systemd/system/synflood.service

[Unit] Description = synflood log After=network.service [Service] ExecStart = /root/synflood.sh Restart = always Type = simple [Install] WantedBy = multi-user.target

#systemctl enabel synflood
#systemctl start synflood
#systemctl status synflood

● synflood.service - synflood log
Loaded: loaded (/etc/systemd/system/synflood.service; enabled; vendor preset: disabled)
Active: active (running) since 土 2020-09-26 18:46:52 JST; 3s ago
Main PID: 2257 (synflood.sh)
CGroup: /system.slice/synflood.service
├─2257 /bin/bash /root/synflood.sh
└─2258 tcpdump -i ens33 port 443 -n

9月 26 18:46:52 localhost.localdomain systemd[1]: Started synflood log.
9月 26 18:46:52 localhost.localdomain synflood.sh[2257]: tcpdump: verbose o...
9月 26 18:46:52 localhost.localdomain synflood.sh[2257]: listening on ens33...

しかし、/home/userid/synflood.txt
はゼロバイトのまま。

単純に
#./syflood.sh
なら、ダウンプ結果を出力してくれます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hana_yama_san

2020/09/26 10:34

systemctl list-unit-files --type=service の結果を表示していたけますか。
UserOfJava

2020/09/27 04:59

synflood.service enabled になっています。
hana_yama_san

2020/09/27 09:14

承知しました。 tcpdump -i ens33 port 443 -n > /home/userid/synflood.txt ではなく tcpdump -i ens33 port 443 -n -w /home/userid/synflood.txt ではどうなるでしょうか。
UserOfJava

2020/09/28 01:06

ありがとうございます。 バイナリーでの出力はあまり考えていません。
guest

回答2

0

自己解決

tcpdump -i ens33 port 443 -n > /home/userid/synflood.txt

tcpdump -i ens33 port 443 -n >> /home/userid/synflood.txt

にするとlogは取れるようになりました。

投稿2020/09/28 04:48

UserOfJava

総合スコア57

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

tcpdump が標準出力をバッファリングしているのだと思います。
-l オプションを付けるとどうでしょうか?

投稿2020/09/26 16:00

TaichiYanagiya

総合スコア12173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

UserOfJava

2020/09/27 05:06

回答ありがとうございました。 やはり、0バイトのままです。 #./synflood.sh では、ちゃんと出力してくれるのに、serviceから同じscript を立ち上げたら、いつまで経っても0バイトは、なんかserviceの書き方が悪いとか?
TaichiYanagiya

2020/09/27 07:59

手元の環境ではできているので、何か手順や環境が異なるのでしょうか。 シェルスクリプトを「tcpdump -i ens33 -l port 443 -n > /home/userid/synflood.txt」にして、"systemctl restart synflood.service" し、"systemctl status synflood.service" で "-l" オプションが付いていることを確認ください。
UserOfJava

2020/09/28 01:05

ありがとうございます。以下の条件でやっています。 kernel: 3.10.0-1127.19.1 tcpdump version 4.9.2 libpcap version 1.5.3 OpenSSL 1.0.2k-fips 26 Jan 2017 やはり0バイトです。jounalctl で調べるとキャプチャーはちゃんとできています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問