Ubuntu 서버에 설치한 웹 패널 응용 프로그램(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
이름(기본값)과 더 많은 데이터를 표시합니다.
본질적으로 둘 다 동일한 내용을 보여줍니다. 즉, 이 항목이 있습니다(첫 번째는 숫자이고 두 번째는 이름입니다).
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의 서비스 이름입니다. 기본적으로 두 항목은 서로 다른 형식의 동일한 줄입니다.
"포트 열기"(기본적으로 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
어떤 프로세스가 포트를 사용하고 있는지 표시할 수 있지만 루트로 실행하면 모든 프로세스만 표시됩니다.
그래서 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
프로세스 목록을 사용하여 예상한 프로세스가 있는지, 수신 중인 포트가 무엇인지 확인할 수 있습니다.