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

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

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

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

iptables

iptablesは、一般的なLinuxに備わっているパケットフィルタリング型のファイアウォール機能。パケットフィルタリングルールおよびネットワークアドレス変換ルールを適用することが可能です。

Linux

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

Ubuntu

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

Q&A

解決済

1回答

466閲覧

[Ubuntu22.04]ufw/iptablesによるファイアウォールの設定が出来ない

saitou_san

総合スコア32

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

iptables

iptablesは、一般的なLinuxに備わっているパケットフィルタリング型のファイアウォール機能。パケットフィルタリングルールおよびネットワークアドレス変換ルールを適用することが可能です。

Linux

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

Ubuntu

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

0グッド

0クリップ

投稿2023/12/22 11:01

編集2023/12/25 04:56

実現したいこと

ホスト(Ubuntu22.04)をリモートデスクトップで操作しようと思い、
https://zenn.dev/takahiro_kawai/articles/afd96c2e8407d9
を参考に作業を進めていたのですが、ufwでファイアウォールの設定をするところでエラーが出て困っています。エラーの修正方法を教えていただけないでしょうか。

実行コマンド・エラーメッセージ

ポート開放

<アカウント名>@<実行機器名>:~$ sudo ufw allow from 192.168.2.0/24 to any port 3389 WARN:initcaps [Errno 2] iptables v1.8.7 (nf_tables): Could not fetch rule set generation id: Invalid argument Skipping adding existing rule <アカウント名>@<実行機器名>:~$

フィルタリングテーブルを表示

<アカウント名>@<実行機器名>:~$ sudo iptables -L # Warning: iptables-legacy tables present, use iptables-legacy to see them iptables v1.8.7 (nf_tables): Could not fetch rule set generation id: Invalid argument <アカウント名>@<実行機器名>:~$

試したこと

試したこと1
https://github.com/P0cL4bs/wifipumpkin3/issues/140
を参考にiptablesのダウングレードを試みましたが、そもそもiptables v1.6がインストール不可で
した。仕方なく、現在のバージョンの他のもう一つのバージョンをインストールしようとしましたがエラーが出ました.
実行コマンド3(iptablesのダウングレード)

sudo apt-get install iptables=1.8.7-1ubuntu5

エラーメッセージ3

E: Unable to correct problems, you held held broken packages.

※Ubuntu実行機のブラウザが動作しないため上のメッセージは表示できません。すみません。
※1.8.7-1ubuntu5.1 is be installed と表示されています

試したこと2
snap refresh を試した。

<アカウント名>@<実行機器名>:~$ sudo snap refresh All snaps up to date. <アカウント名>@<実行機器名>:~$

と返ってきました。
試したこと:その他
・システムの再起動
・ufwをアンインストールして,_実行コマンド2_を実行
・anaconda3をアンインストール
>エラーは解消されませんでした。

質問を受けての修正

>$ sodo iptables-legacy -L を実行してエラーになるのかどうかを確認してください。
実行結果

<アカウント名>@<実行機器名>:~$ sudo iptables-legacy -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination <アカウント名>@<実行機器名>:~$

alternatives の設定で iptables-legacy を iptables として設定し直したらどうか?

<アカウント名>@<機器名>:~$ sudo update-alternatives --set iptables /usr/sbin/iptables-legacy update-alternatives: using /usr/sbin/iptables-legacy to provide /usr/sbin/iptables (iptables) in manual mode <アカウント名>@<実行機器名>:~$ sudo ufw allow from 192.168.2.0/24 to any port 3389 ERROR: initcaps [Errno 2] ip6tables v1.8.7 (nf_tables): Could not fetch rule set generation id: Invalid argument <アカウント名>@<実行機器名>:~$

実行結果がiptables⇒ip6tablesに変わりました。

any⇒0.0.0.0/0に変えてみたらどうか?

<アカウント名>@<実行機器名>:~$ sudo ufw allow from 192.168.2.0/24 to 0.0.0.0/0 port 3389 ERROR: initcaps [Errno 2] ip6tables v1.8.7 (nf_tables): Could not fetch rule set generation id: Invalid argument <アカウント名>@<実行機器名>:~$

実行結果は変わりませんでした。

ip6tablesもlegacy版に置き換えてみてください。

<アカウント名>@<機器名>:~$ sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy update-alternatives: using /usr/sbin/ip6tables-legacy to provide /usr/sbin/ip6tables (ip6tables) in manual mode <アカウント名>@<実行機器名>:~$ sudo ufw allow from 192.168.2.0/24 to any port 3389 Skipping adding existing rule <アカウント名>@<実行機器名>:~$

成功したかもしれません。

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

実行機器:Jetson Agx Orin
OS:Linux(Ubunt22.04.3 LST)
ufwバージョン:0.36.1-4ubuntu0.1
iptablesバージョン:1.8.7-1ubuntu5.1

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

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

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

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

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

dameo

2023/12/22 12:10

コマンドラインは実行したbashプロンプトから次のプロンプトまで正確に記載しましょう。 安易にバージョンダウンとかせずに何が問題なのかをきちんと調査しましょう。
melian

2023/12/22 12:35

/usr/sbin/iptables-legacy が存在するのであれば、以下を実行してエラーになるのかどうかを確認してみてください。 $ sudo iptables-legacy -L
saitou_san

2023/12/23 08:19

返信が遅れて申し訳ありません。 $ sudo iptables-legacy -L を実行した結果を修正で追加しました。 また、コマンドラインの内容を再度実行して実行するプロンプトから次のプロンプトまで正確に書き写しました。 どうか、よろしくお願いいたします。
saitou_san

2023/12/23 08:21

諸事情で実行機器にてブラウザが使用できないので コマンドプロンプトの内容は私が手動で写させていただきました。 ご了承ください。
dameo

2023/12/23 11:15

すみませんが、書いてあることに疑いを持っているので、コレ以上はどうしようもないですね。 armの新しめのLinuxは割と不安定になりがちですが、それはごく一部の処理だけだし、エラーもきちんと表示できるし、そもそもブラウザ使えないくらいで手動模写する人は使いません。
saitou_san

2023/12/23 11:24

そこをどうにかお願いします🙇
melian

2023/12/23 11:38

ufw コマンド(/usr/sbin/ufw)は python スクリプトで、内部で iptables コマンド(/usr/sbin/iptables)を実行してパケットフィルタリングの設定を行っています。Ubuntu の場合、/usr/sbin/iptables-nft と /usr/sbin/iptables-legacy がインストールされていて、通常は iptables-legacy の方が /usr/sbin/iptables として設定されているはずです。(手元の Ubuntu 23.10 ではそうなっています) なので、alternatives の設定で iptables-legacy を iptables として設定し直します。 sudo update-alternatives --set iptables /usr/sbin/iptables-legacy 上記の設定を行ってから、sudo ufw allow ... を実行してみて下さい。
saitou_san

2023/12/25 03:13

返信が遅くなり申し訳ありません。 sudo update-alternatives --set iptables /usr/sbin/iptables-legacy を実行し、sudo ufw allow from 192.168.2.0/24 to any port 3389 をやり直しました。 質問をご確認ください。
melian

2023/12/25 03:24

any が 0.0.0.0/0 (IPv4) と ::/0 (IPv6)の両方を意味しているためだと思います。IPv6 の方の設定が不要の場合は、以下の様にしてみてください。(any を 0.0.0.0/0 に置き換えます) sudo ufw allow from 192.168.2.0/24 to 0.0.0.0/0 port 3389
saitou_san

2023/12/25 03:45

sudo ufw allow from 192.168.2.0/24 to 0.0.0.0/0 port 3389 で実行してみました。 結果は変わらなかったです。
melian

2023/12/25 03:52

そうなりますと、ip6tables も legacy 版に置き換えてみてください。 sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy そして、再度 ufw コマンドを実行してみてください。(any はそのままで構いません)
saitou_san

2023/12/25 04:58

ip6tables も legacy 版に置き換えてみました。 成功したかもしれません。 確かめてみます。
saitou_san

2023/12/25 09:29

ファイアーウォールが正しく設定されているのを確認しました。回答を掲載してくださればベストアンサーにします。
melian

2023/12/25 09:38

ありがとうございます、回答に転記しました。
saitou_san

2023/12/25 09:51

ご協力、誠にありがとうございました🙇
guest

回答1

0

ベストアンサー

ufw コマンド(/usr/sbin/ufw)は python スクリプトで、内部で iptables コマンド(/usr/sbin/iptables)を実行してパケットフィルタリングの設定を行っています。Ubuntu の場合、/usr/sbin/iptables-nft/usr/sbin/iptables-legacy がインストールされていて、通常は iptables-legacy の方が /usr/sbin/iptables として設定されています。(手元の Ubuntu 23.10 ではそうなっています) なので、alternatives の設定で iptables-legacy を iptables として設定し直すとよいかと思います。

bash

1$ sudo update-alternatives --set iptables /usr/sbin/iptables-legacy

実行結果がiptables⇒ip6tablesに変わりました。

ip6tables も legacy 版に置き換えてみてください。

bash

1$ sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

ファイアーウォールが正しく設定されているのを確認しました。

投稿2023/12/25 09:37

melian

総合スコア19825

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

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

saitou_san

2023/12/25 09:52

ご協力、誠にありがとうございました🙇
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問