Ubuntuを使用してiptablesでポート8080を開こうとしたときに何が間違っていますか?

Ubuntuを使用してiptablesでポート8080を開こうとしたときに何が間違っていますか?

UbuntuサーバーにインストールしたWebパネルアプリケーション(McMyAdmin)を使用できるようにポート8080を開こうとしています。私は通常Linux / SSHに初めて触れましたが、さまざまなガイドといくつかの友達のおかげでこれを行うことができました!私はポート8080を開こうとしたときに何が間違っているのか、誰が教えてくれるのか疑問に思います。 -nLを使用してルールを確認すると表示されるようですが、-vLを使用すると表示されません。また、vLとnLの実際の違いが何であるかよくわかりません。誰かがこれを理解するのに役立つことができれば良いでしょう!

編集:すべてを見ると、ポート80も開いていないようです。それについても何か措置を取る必要があるようです...

name@server:/etc/iptables$ sudo iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
REJECT     all  --  127.0.0.0/8          0.0.0.0/0            reject-with icmp-port-unreachable
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            state NEW icmptype 8
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:25565
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:8080
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
LOG        all  --  0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 5 LOG flags 0 level 7 prefix "iptables_INPUT_denied: "
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain FORWARD (policy DROP)
target     prot opt source               destination
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

name@server:/etc/iptables$ sudo iptables -vL
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
0     0 ACCEPT     all  --  lo     any     anywhere             anywhere
0     0 REJECT     all  --  !lo    any     127.0.0.0/8          anywhere             reject-with icmp-port-unreachable
0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             state NEW icmp echo-request
0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             state NEW tcp dpt:ssh
0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             state NEW tcp dpt:25565
61  3096 ACCEPT     tcp  --  any    any     anywhere             anywhere             state NEW tcp dpt:http-alt
862 69185 ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
21  1648 LOG        all  --  any    any     anywhere             anywhere             limit: avg 3/min burst 5 LOG level debug prefix "iptables_INPUT_denied: "
21  1648 REJECT     all  --  any    any     anywhere             anywhere             reject-with icmp-port-unreachable

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
0     0 REJECT     all  --  any    any     anywhere             anywhere             reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT 16 packets, 2992 bytes)
pkts bytes target     prot opt in     out     source               destination

答え1

iptablesを使用して、このコマンドに関する情報を読み取ることができますman iptables

そうすれば、

   -v, --verbose
          Verbose output.  This option makes the list command show the interface name, the rule options (if any), and the TOS masks.  The
          packet and byte counters are also listed, with the suffix 'K', 'M' or 'G' for 1000,  1,000,000  and  1,000,000,000  multipliers
          respectively  (but  see  the -x flag to change this).  For appending, insertion, deletion and replacement, this causes detailed
          information on the rule or rules to be printed. -v may be specified multiple times to possibly emit more detailed debug  state‐
          ments.

   -n, --numeric
          Numeric  output.  IP addresses and port numbers will be printed in numeric format.  By default, the program will try to display
          them as host names, network names, or services (whenever applicable).

したがって、-nサービス名の代わりに数字が表示されます。 -v逆ではありませんが、-n名前(デフォルト)とより多くのデータを表示します。

本質的に両方とも同じ内容を示しています。つまり、このエントリがあります(最初のものは数字、2番目のものは名前です)。

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8080

61 3096 ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:http-alt

http-altポート8080のサービス名。デフォルトでは、2つの項目は異なる形式の同じ行です。

「ポートを開く」(デフォルトではiptablesファイアウォールを介したトラフィックを許可することを意味します)に加えて、関連ポートでトラフィックを許可する準備ができたソフトウェアが必要です。 McMyAdminはポート8080をリッスンするように設定されていますか?

このnetstatコマンド(およびその他のコマンド)を使用して、どのプロセスがどのポートでリッスンしているかを確認できます。 netstat -anすべてのポートを一覧表示し(-a)番号を表示します(-n)。これと組み合わせて使用​​すると便利ですgrep。たとえば、netstat -an | grep 8080ポート8080を使用するプロセスがあるかどうかが一覧表示されます。次のようなものを見ることもできます。

tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN

実際の数値は異なる場合があります。これにより、どの-pプロセスがポートを使用しているかを表示できますが、rootとして実行するとすべてのプロセスのみが表示されます。

だから、sudo netstat -anp | grep 8080次のようなものを与えるでしょう。

tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 4856/some-process-name

出力が得られない場合は、ポート8080を使用したりリッスンしているものがないため、プロセスsudo netstat -anpリストを使用して期待どおりのプロセスがあること、リスニングしているポートが何であるかを確認できます。

関連情報