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

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

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

IPv4(Internet Protocol version 4)は、インターネットプロトコルの一つ。インターネットに繋がったコンピューターや機器を識別するためのIPアドレスを32ビット表記で表わします。しかしIPv4は、限界があるため、IPv6が次世代プロトコルとして注目されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

TCP

TCP(Transmission Control Protocol)とは、トランスポート層のプロトコルで、コネクション型のデータサービスです。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Q&A

解決済

1回答

5454閲覧

LinuxでのICMP Timestamp無効化を実現したい

umino

総合スコア54

IPv4

IPv4(Internet Protocol version 4)は、インターネットプロトコルの一つ。インターネットに繋がったコンピューターや機器を識別するためのIPアドレスを32ビット表記で表わします。しかしIPv4は、限界があるため、IPv6が次世代プロトコルとして注目されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

TCP

TCP(Transmission Control Protocol)とは、トランスポート層のプロトコルで、コネクション型のデータサービスです。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

0グッド

1クリップ

投稿2019/07/16 08:46

編集2019/07/16 10:04

前提・実現したいこと

Ubuntu 16.04.5 LTSです。

TCP timestamp optionの脆弱性を回避するために、
LinuxでのICMP Timestampを無効化をしたいです。
どのサイトも同じような手順を記載しています(下記URL)が、手順通りに設定しても無効化されませんでした。
詳しい方にご教示いただきたいです。

参考にしたURL↓
https://milestone-of-se.nesuke.com/nw-advanced/nw-security/vulnerability-of-tcp-timestamp/

発生している問題・エラーメッセージ

前提:
① (10.10.10.230)ICMPタイムスタンプを無効化したいサーバ
② (10.10.10.231)①と同じネットワークにいるサーバ(タイムスタンプ無効化確認のpingを叩くためのサーバ)

下記コマンドを、②から①(タイムスタンプ無効化したいサーバ)に向けて叩いた
ping -D -T tsandaddr 10.10.10.230

結果

master:~$ ping -D -T tsandaddr 10.10.10.230 PING 10.10.10.230 (10.10.10.230) 56(124) bytes of data. [] 64 bytes from 10.10.10.230: icmp_seq=1 ttl=64 time=2.62 ms TS: 10.10.10.231 21592681 absolute ←★タイムスタンプを取得している 10.10.10.230 56400772 10.10.10.230 0 10.10.10.231 -56400769 [] 64 bytes from 10.10.10.230: icmp_seq=2 ttl=64 time=2.57 ms TS: 10.10.10.231 21593683 absolute 10.10.10.230 56400772 10.10.10.230 0 10.10.10.231 -56400769 ..........

タイムスタンプを無効化するために、①上で下記を実行した

$ sudo vim /etc/sysctl.conf # 開いたsysctl.confの最後尾に下記を追記し保存した net.ipv4.tcp_timestamps = 0

①を再起動後、②から下記pingを叩いた
ping -D -T tsandaddr 10.10.10.230(タイムスタンプ情報返却を無効化したいサーバのIPアドレス)

結果(想定では、タイムスタンプ情報を返却しなくなっているはず)

PING 10.10.10.230 (10.10.10.230) 56(124) bytes of data. [] 64 bytes from 10.10.10.230: icmp_seq=1 ttl=64 time=2.44 ms TS: 10.10.10.231 23700782 absolute 10.10.10.230 56400773 ←★変わらずタイムスタンプを取得できてしまっている 10.10.10.230 0 10.10.10.231 -56400770 [] 64 bytes from 10.10.10.230: icmp_seq=2 ttl=64 time=2.66 ms TS: 10.10.10.231 23701785 absolute 10.10.10.230 56400773 10.10.10.230 0 10.10.10.231 -56400771 [] 64 bytes from 10.10.10.230: icmp_seq=3 ttl=64 time=2.45 ms TS: 10.10.10.231 23702787 absolute 10.10.10.230 56400772 10.10.10.230 0 10.10.10.231 -56400770

ICMPタイムスタンプを取得できなくなるはずが、変わらず取得できてしまっている。
タイムスタンプ情報を返却しなくするための、①側での設定が足りない(?)

試したこと

・下記コマンドを実行したが変わらず
sudo sysctl -w net.ipv4.tcp_timestamps=0

また、iptablesにruleを追加する方法も試しましたが結果は同じでした。
NessusでVPSサーバーの脆弱性診断 ICMPタイムスタンプリクエスト

補足情報(FW/ツールのバージョンなど)

Ubuntu 16.04.5 LTS

どのwebサイトも同じ手順なので、解決の糸口がみつからず困っています。
詳しい方、Linuxのネットワーク設定に知見のある方、ご教示いただけると助かります。
よろしくおねがいします。

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

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

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

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

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

t_obara

2019/07/16 10:34

何らかの処置を行った後で、以下のコマンドにて反映されているか確認していますか?その確認の反映しているでしょうか? sudo sysctl -a | grep tcp_timestamp あるいは sudo cat /proc/sys/net/ipv4/tcp_timestamps これで反映されていないのであれば、その方法はうまくいかないと思います。 ただ、-wオプションであればうまくいきそうですが、リブートしていないのですよね、この場合。
umino

2019/07/16 10:44

質問ありがとうございます。 sudo sysctl -a | grep tcp_timestamp は毎回行っています。また、リブートもしていません。 調べたところ、ICMPはTCPとは別のprotocolなので、わたしが上記で行った操作は無関係のようです。 今のLinuxカーネルではICMP Timestampを無効化する設定はなく、途中経路またはiptables等のファイヤーウォールでシャットアウトするようです。方法はまだ調査中です。 質問ありがとうございました。
guest

回答1

0

ベストアンサー

質問への追記からTCPではなく、ICMPのほうの問題を追求されているものと判断しました。

リンク先の情報「ICMPタイプスタンプリクエストの脆弱性」については、「ICMPタイムスタンプリクエストは、ICMPのタイプ13を使用し、タイプ14のタイムスタンプ応答を受け取り、リモートシステムから現在の時間を受け取ります」とあるとおり、pingコマンドが出す ICMP Echo リクエスト(タイプ8)のタイムスタンプに関するものではありません。
したがって、pingコマンドでテストすることはできません。

同じリンク先の iptables の遮断例も–icmp-type timestamp-requestを指定しているので、pingコマンドが発する ICMP Echo リクエストに対しては効果はありません。

遮断してテストするならば、ICMP タイムスタンプリクエストが出せるツールを使う必要があります。ちょっとググってみましたが、 xprobe とか hping とかでしょうか。

https://tech.nikkeibp.co.jp/it/members/ITPro/SEC_CHECK/20010921/1/
http://stacktrace.hatenablog.jp/entry/2016/01/10/040353

投稿2019/07/17 06:30

mit0223

総合スコア3401

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

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

umino

2019/07/17 12:17

回答ありがとうございます。 タイムスタンプという表記があったので、すっかり見当違いをおこしていました。 pingコマンドの出すタイムスタンプは、1ICMPのタイプ13でなく ICMP Echo リクエスト(タイプ8)なのですね。 おかげさまで、無事課題を解決することができました。 (iptablesにパケットフィルタをかけて、hping3を使用し、pingが拒否されることを確認できた。) mit0223さんの回答がなかったら、解決できないところでした。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問