트래픽 및 방화벽 서비스 경로 검사

LinuxBeginner
지금 연습하기

소개

네트워크 서비스에 연결할 수 없는 경우, 서비스 상태, 리스닝 소켓, 로컬 요청, 방화벽 규칙, 최종 액세스 순으로 계층별 경로를 확인해야 합니다. 이를 통해 서비스가 실행 중이지도 않은데 방화벽 포트를 먼저 여는 불필요한 작업을 방지할 수 있습니다.

이번 실습에서는 TCP 포트 8088에서 리스닝 중인 작은 HTTP 서비스가 있지만, firewalld 에서 해당 포트를 허용하지 않는 상황을 다룹니다. 서비스 경로를 검사하고 누락된 영구 방화벽 규칙을 추가하는 방법을 배웁니다.

서비스 상태 확인

이 단계에서는 방화벽 규칙을 살펴보기 전에 애플리케이션 서비스가 정상적으로 실행 중인지 확인합니다.

프로젝트 디렉토리로 이동하여 작업 공간을 생성합니다.

cd /home/labex/project
mkdir -p firewall-path

서비스 상태를 확인합니다.

systemctl is-active rhce-http-demo.service | tee firewall-path/service-state.txt

서비스 실행 명령어를 확인합니다.

systemctl show rhce-http-demo.service -p ExecStart | tee firewall-path/exec-start.txt

서비스가 활성 상태이므로, 다음으로 해당 포트에서 리스닝 중인지 확인해야 합니다.

리스닝 소켓 검사

이 단계에서는 호스트가 TCP 포트 8088에서 리스닝 중인지 확인합니다.

포트 8088에 대한 리스닝 TCP 소켓을 표시합니다.

sudo ss -ltnp 'sport = :8088' | tee firewall-path/socket.txt

루프백을 통해 서비스를 테스트합니다.

curl -s http://127.0.0.1:8088/ | tee firewall-path/loopback-response.txt

서비스가 로컬에서 응답하므로 애플리케이션 자체는 정상적으로 작동하고 있습니다.

누락된 방화벽 규칙 찾기

이 단계에서는 firewalld 에서 서비스 포트가 허용되어 있는지 확인합니다. 로컬 소켓이 열려 있다고 해서 방화벽이 자동으로 해당 포트를 허용하는 것은 아닙니다.

기본 영역 (default zone) 에서 열려 있는 포트 목록을 확인합니다.

sudo firewall-cmd --list-ports | tee firewall-path/ports-before.txt

포트 8088/tcp를 조회합니다.

sudo firewall-cmd --query-port=8088/tcp | tee firewall-path/query-before.txt || true

조회 결과가 no로 반환되어야 하며, 이는 firewalld 에 해당 규칙이 누락되었음을 의미합니다.

서비스 포트 개방

이 단계에서는 영구적인 firewalld 규칙을 추가하고 방화벽을 다시 로드합니다.

영구 포트 규칙을 추가합니다.

sudo firewall-cmd --add-port=8088/tcp --permanent

firewalld 를 다시 로드합니다.

sudo firewall-cmd --reload

포트를 다시 조회합니다.

sudo firewall-cmd --query-port=8088/tcp | tee firewall-path/query-after.txt

이제 방화벽이 서비스 포트를 허용합니다.

전체 서비스 경로 검증

이 단계에서는 서비스, 소켓, 방화벽 규칙 및 응답을 종합적으로 검증합니다.

서비스 상태를 확인합니다.

systemctl is-active rhce-http-demo.service

방화벽 포트 목록을 표시합니다.

sudo firewall-cmd --list-ports | tee firewall-path/ports-after.txt

서비스에 다시 요청을 보냅니다.

curl -s http://127.0.0.1:8088/ | tee firewall-path/final-response.txt

이제 애플리케이션 경로가 완성되었습니다: 서비스 활성, 소켓 리스닝, 방화벽 규칙 적용, HTTP 응답 정상 확인.

요약

서비스 상태, 리스닝 소켓, 로컬 HTTP 응답, 누락된 firewalld 포트 확인, 영구 방화벽 설정 및 최종 응답 검증까지 계층별로 서비스 경로를 확인하는 방법을 실습했습니다.