[리눅스]현재 사용중인 포트 설정(리눅스 포트포워딩,방화벽)



1
iptables -nL
cs


위의 명령어를 사용하여 현재 작동하는 외부 포트들의 상태를 알 수 있다. 




위와 같은 형태로 나오게 된다. 
웹 호스팅을 사용하는데, 방화벽이 제대로 작동하지 않아서 직접 설정을 하였다. 


3000번 포트를 열어보려고 하였으나, 웹 호스팅 사이트의 설정을 변경해도 포트는 위와 같이 이루어져 있었다. 


1
iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
cs

해당 명령어를 통해서 포트번호 10050 를 열어보니?? 



위와 똑같았습니다. 왜그럴까요??

1
Chain INPUT
cs

이라는 부분을 보면 



위와 같이 10050 에 대해서 포트가 열렸습니다. 



1
iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
cs

이 명령어의 3번째 부분 INPUT 이 Chain 을 결정하는 듯 합니다. 


다른 블로그에서 아래와 같은 설명을 알아내게 되었습니다. 



체인(chain)

iptables에는 filter 테이블에 미리 정의된 세가지의 체인이 존재하는데 이는 INPUT, OUTPUT, FORWARD 이다. 이 체인들은 어떠한 네트워크 트래픽(IP 패킷)에 대하여 정해진 규칙들을 수행한다.

가령 들어오는 패킷(INPUT)에 대하여 허용(ACCEPT)할 것인지, 거부(REJECT)할 것인지, 버릴(DROP)것인지를 결정한다.

  • INPUT : 호스트 컴퓨터를 향한 모든 패킷
  • OUTPUT : 호스트 컴퓨터에서 발생하는 모든 패킷
  • FORWARD : 호스트 컴퓨터가 목적지가 아닌 모든 패킷, 즉 라우터로 사용되는 호스트 컴퓨터를 통과하는 패킷



1
iptables -D INPUT -p tcp --dport 10050 -j ACCEPT
cs


제가 변경하고 싶은 Chain 은 INPUT 이 아니라 호스팅 서버에서 제공하는 방화벽 Chain 입니다.

위의 명령어를 이용하여 입력한 10050 에 대한 규칙을 다시 지워줍니다. 





1
iptables -A 체인이름 -p tcp --dport 10050 -j ACCEPT
cs

체인 이름을 입력하면 해당 리스트에 포트가 추가됩니다. 





이후에 작동이 잘 되지 않아서 방화벽도 설치해보고 

1
apt-get install firewalld
cs

방화벽을 설치 한 후에 

1
iptables -nL
cs

명령어를 입력하면 테이블의 구조가 위와 같은 형태가 아니라 다른 형태로 바뀌게 됩니다. 





1
2
3
추가 # firewall-cmd –permanent –zone=public –add-port=10050/tcp
 
제거 # firewall-cmd –permanent –zone=public –remove-port=10050/tcp
cs


1
재시작 # firewall-cmd –reload
cs


위와 같은 명령어도 입력하고 지속적으로 해보니 되긴 되네요.


방화벽을 설치하니 80번 포트가 막혀서 apm 이 작동하지 않네요.

아마 방화벽 설치 후 포트 초기화가 되는 것 같습니다. 



다시 80 번 포트를 위와 같은 포트로 여니 apm 이 정상적으로 작동 합니다. 


10050 포트는 잘 작동합니다. 




개발의 길은 험난한 것 같습니다. 



- 출처 -