리눅스 서버를 돌릴 때 포트가 열렸는지 닫혔는지를 확인하고, 포트를 열고 닫기에 대한 글입니다!


제가 쓴 리눅스는 Linux Redhat 7.0 (RHEL) 기준으로 쓰였지만, 대다수의 리눅스 버젼에서 통용됩니다!


<수정>

리눅스 7.0 이상 버전 부터는 iptables 이 아닌 Firewall Daemon을 이용한다고 한다!


이유는 여러가지가 있다!


그렇기에 아래의 글을 따라하지 말자!




1. 포트를 확인합니다!


1
netstat -na
cs


위와 같은 명령어를 입력합니다.


netstat 은 현재 네트워크 연결 상태 등을 프린트해주는 명령어입니다.


추가로 -n 옵션은 현재 열려있는 ip 주소를 문자형(localhost)가 아닌 숫자형(172.16.1.30) 형태로 보여줍니다.

-a 옵션은 all의 약자로 모든 걸 보여달란 의미입니다.


위와 같이 명령어를 입력하시면, 무수히 많은 네트워크 상태를 볼수 있습니다.



만약 웹서버를 운영 중이신 분들에게 팁을 드리자면,

너무 많은 정보중에서 자신의 웹서버 포트를 확인하고 싶다면 아래와 같이 입력해주세요.


1
netstat -nat

cs


위와 같이 입력하면 tcp 프로토콜의 정보만 나오게 됩니다. 아래처럼 말이죠.


1
2
3
[fcjyct@localhost ~]$ netstat -nat
tcp        0      0 172.16.1.30:8080        0.0.0.0:*               LISTEN     
tcp        0      0 172.16.1.30:8081        0.0.0.0:*               LISTEN     
cs


위의 결과는 순서대로

프로토콜 종류, 받는 큐, 보내는 큐, 로컬 주소, 허용된 외부 주소, 상태

입니다!


그리고 제 리눅스 컴퓨터는 현재 tcp 프로토콜로 8080 포트와 8081 포트가 모든 사람에게 열려져 있음을 알 수 있습니다!




2. 열린 포트 확인합니다!


1
netstat -na | grep LISTEN
cs


추가로 자신의 컴퓨터에서 열린 포트만 확인하고 싶을 때의 명령어입니다.



3. 포트를 열어줍니다!


리눅스 상에서 포트를 열어줄 때( 방화멱을 열어줄 때 )는  일반적으로 iptables 명령어를 사용합니다.


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


위의 명령어는 tcp 프로토콜의 포트를 열어주는 명령어입니다.


순서대로 설명하면

-A 는 append의 약자로 방화벽 규칙을 추가한다는 의미입니다.

INPUT은 들어오는(INBOUND)의 규칙을 추가한다는 의미이며

-p tcp 는 프로토콜 tcp 의 규칙을 추가하겠다는 의미입니다. 다른 옵션으로는 udp, icmp, sctp등이 있습니다.

--dport  8080 은 8080 포트 번호를 의미합니다. dport는 destination-port 의 약자입니다. (man iptables-extensions에서 확인하실 수 있습니다.)

-j ACCEPT 는 ACCEPT 규칙을 추가한다는 의미입니다. -j 옵셥은 어떻게 할거냐는 의미로 ACCEPT 외에 DROP, REJECT 등이 있습니다.



이상 리눅스 방화벽의 포트 확인과 포트 열기였습니다~!





++ 추가로 간혹가다 방화벽의 포트도 열어주고 다 했는 데도, 외부 접근이 안되는 경우가 있습니다. 저도 그런 경험이 있어서 너무나 고생했었는데요.

레드햇 리눅스의 경우 SELinux라는 따로 보안 시스템이 돌고 있습니다. 만약 포트도 열고 다 해줬는데도 권한 오류가 나시는 분들은 SELinux를 꺼보고 다시 해보라고 전해드리고 싶어요! 간단하게 명령어는 아래와 같습니다.


1
sudo setenforce 0
cs


SELinux를 끄겠다는 의미입니다!


사실상 끄는 것보다는 제외 규칙을 만들어 주는 게 좋겠지만, 찾아보니 쉽게 끝날일은 아닌 것 같아 저 또한 우선은 끈 채로 개발 중에 있습니다~!



'LINUX' 카테고리의 다른 글

telnet 상황별 증상  (1) 2024.02.04

+ Recent posts