리눅스 포트 연결 확인 - linugseu poteu yeongyeol hwag-in

1. 열려 있는 모든 포트 확인하기

$ netstat -nap

-n : host명으로 표시 안함

-a : 모든소켓 표시

-p : 프로세스ID와 프로그램명 표시

2. 열려 있는 포트 중 LISTENING 상태인 것만 확인하기

$ netstat -nap | grep LISTEN

3. 특정 호스트의 특정 포트가 열려 있는지 확인하기

방법 1.

$ nc -z 211.***.***.*** 9200

-z : port번호

- 연결 성공 시 (열려있음)

Connection to 211.***.***.*** 9200 port [tcp/wap-wsp] succeeded!

- 연결 실패 시 (닫혀있음)

아무 응답메세지 없음

방법 2.

$ telnet 211.42.150.220 9200

- 연결 성공 시 (열려있음)

Trying 211.42.150.220...

Connected to 211.42.150.220 (211.42.150.220).

Escape character is '^]'.

- 연결 실패 시 (닫혀있음)

Trying 211.42.150.220...

telnet: connect to address 211.42.150.220: Connection refused

telnet: Unable to connect to remote host: Connection refused

4. 특정 호스트의 지정 범위 포트가 열려 있는지 확인하기

$ nc -z 211.***.***.*** 19-5000

Connection to 211.***.***.*** 21 port [tcp/ftp] succeeded!

Connection to 211.***.***.*** 22 port [tcp/ssh] succeeded!

Connection to 211.***.***.*** 111 port [tcp/sunrpc] succeeded!

Connection to 211.***.***.*** 514 port [tcp/shell] succeeded!

Connection to 211.***.***.*** 641 port [tcp/repcmd] succeeded!

Connection to 211.***.***.*** 669 port [tcp/meregister] succeeded!

Connection to 211.***.***.*** 711 port [tcp/cisco-tdp] succeeded!

Connection to 211.***.***.*** 2049 port [tcp/nfs] succeeded!

Connection to 211.***.***.*** 3690 port [tcp/svn] succeeded!

1. 포트 상태 확인

1.1 열려있는 모든 포트 표시

$ netstat -nap

💡 옵션 설명

-n: host명으로 표시 안함
-a: 모든소켓 표시
-p: 프로세스ID와 프로그램명 표시 

1.2 LISTEN중인 포트 표시

$ netstat -nap | grep LISTEN


1.3 확인하려는 포트번호 상태확인

$ netstat -nap | grep 포트번호

1.4 특정 호스트 포트 상태 확인
특정 호스트로 접속이 불가할 때, netcat(nc) 네트워크 유틸리티를 이용하여 포트가 막혀 있는지 확인할 수 있다.

💡 netcat
넷캣(netcat)은 TCP, UDP 프로토콜을 사용하는 네트워크에서 네트워크 연결 상태를 읽거나 쓸때 사용하는 유틸리티 프로그램이다.

💡 netcat 설치하기

//zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_nc

a) 특정 포트 상태 확인

$ nc -z 호스트주소 포트 $ nc -z www.google.com 80

Target Port가 열려있다면 아래의 결과를 확인할 수 있다.

Connection to www.google.com 80 port [tcp/http] succeeded!


b) 특정 호스트의 포트 범위를 지정하여 열린 포트 확인

$ nc 호스트주소 -z 시작포트-끝포트 $ nc 10.20.30.40 -z 19-21Connection to 10.20.30.40 21 port [tcp/ftp] succeeded! Connection to 10.20.30.40 22 port [tcp/ssh] succeeded! Connection to 10.20.30.40 23 port [tcp/telnet] succeeded!

2. 포트 열기

리눅스 방화벽 설정 명령어인 iptables을 사용하여 포트를 오픈할 수 있다.

💡 방화벽 설정 정보 확인하기

# iptables -nL

2.1 특정포트 외부에서 접속할 수 있도록 열기 (외부에서 접속할 수 있도록 포트 OPEN)
아래는 외부에서 들어오는(INBOUND) TCP포트 12345의 연결을 받아들인다는 규칙을 1번 방화벽 규칙으로 추가한다는 의미이다.

a) TCP PORT일 경우

# iptables -I INPUT 1 -p tcp --dport 12345 -j ACCEPT

b) UDP PORT일 경우

# iptables -I INPUT 1 -p udp --dport 12345 -j ACCEPT


💡 옵션 설명

-I: 새로운 규칙을 추가한다.
-p: 패킷의 프로토콜을 명시한다.
-j: 규칙에 해당되는 패킷을 어떻게 처리할지를 정한다. 

💡 내부에서 외부로 나갈 수 있도록 포트 열기

# iptables -I OUTPUT 1 -p tcp --dport 9002 -j ACCEPT # iptables -I OUTPUT 1 -p udp --dport 9002 -j ACCEPT

2.2 추가한 설정 조회

# iptables -L -v

💡 옵션 설명

-L: 규칙을 출력
-v: 자세히 


2.3 추가한 설정 삭제

- 추가한 규칙의 번호로 삭제하는 방법과 
- 추가했을 때의 명령어에서 "-I"를 "-D"로 바꾸어 주는 방법이 있다.

a) 규칙번호로 삭제

# iptables -D INPUT 1


b) 추가한 규칙으로 삭제

# iptables -D INPUT -p tcp --dport 12345 -j ACCEPT # iptables -D INPUT -p udp --dport 12345 -j ACCEPT

2.4 변경사항 저장

# service iptables save # /etc/init.d/iptables restart

3. 방화벽 활성화&비활성화

3.1 켜기

# /etc/init.d/iptables start


3.2 끄기

# /etc/init.d/iptables stop

4. 기타

4.1 리눅스 OS 확인하기

//ongal.tistory.com/190

Toplist

최신 우편물

태그