본문 바로가기

Programming/Linux

데몬 개념과 포트 설정(방화벽 해제하기)

데몬(daemon) 

멀티태스킹 운영 체제에서 데몬은 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램

- 윈도우의 서비스 개념
- 도깨비처럼 보이지 않는 곳에서 작업을 하는 백그라운드 프로세스
- 데몬이라는 표시를 위해 뒤에는 d가 붙는다(syslogd 등).
- 시스템의 시작과 끝을 함께함
- 관리자 권한으로 실행되어 네트워크 요청이나 하드웨어 동작 등 여러 기능을 담당
- 부모 프로세스가 없음
- PPID(부모 프로세스 ID)는 1이며 시스템의 첫 프로세스인 init의 바로 하위에 위치

 

활용 : Daemon Process를 실행하여 웹 서비스 게시하기

필요 작업 : 네트워크 포트를 사용하는 데몬을 겹치지 않게 설정하기

 

TCP 통신을 진행중인 서비스의 연결 상태 확인(현재 사용하는 TCP 포트 조회)

netstat -tnlp

netstat은 Network Statistics의 약자 (네트워크의 문제를 찾아내고 성능 측정으로 네트워크상의 트래픽 양을 결정하기 위해 사용)

netstat -h  // netstat 옵션 도움말

옵션 "t" : TCP, "n": 10진수(Numeric), "l": Listening, "p":포트를 사용하고 있는 프로세스

시스템 콘솔에 표시되는 네트워크 정보항목

Proto(Protocol) 프로토콜의 종류, TCP 또는 UDP
Local Address 자기 자신의 IP 주소와 포트 번호, 0.0.0.0은 특정 IP와 연결되어 있지 않다는 뜻
Foreign Address 상대방 측의 IP주소와 포트 번호, 0.0.0.0은 아직 통신이 시작되지 않았다는 뜻
State 현재 서비스의 연결상태
PID/Program name 프로세스 ID와 이름

 

State 항목

LISTENING 현재 서비스를 기다리는 상태
ESTABLISHED 다른 컴퓨터와 연결된 상태
CLOSED 연결이 완전히 종료된 상태
TIME WAIT 연결은 종료되었으나 잠시 소켓을 열어놓은 상태

 

 

모든 포트 번호에 연결된 프로세스 정보 확인

netstat -tnlp | grep -v 127.0.0.1 | sed 's/:::/0 /g' | sed 's/[:\/]/ /g' | awk '{print $5"\t"$10}' | sort -ug

 

프로세스 검색

ps -ef | grep 프로세스이름

 

프로세스 종료 ( PID = 프로세스 ID )

kill -9 프로세스ID

 

현재 시스템 방화벽에 특정 포트 허용

CentOS 7 firewall-cmd --permanent --zone=public --add-port=포트번호/tcp
CentOS 6 iptables -I INPUT 1 -p tcp --dport 포트번호 -j ACCEPT

 

현재 시스템에 설정되어 있는 방화벽 정보

CentOS 7 firewall-cmd --list-all
CentOS 6 iptables -L -v

 

특정 포트를 허용하지 않도록 방화벽 설정

CentOS 7 firewall-cmd --permanent --zone=public --remove-port=포트번호/tcp
CentOS 6 iptables -D INPUT 1 -p tcp --dport 포트번호 -j ACCEPT

 

방화벽 설정 : 루트(/) 디렉토리의 "/usr/lib/firewalld"에 보관

방화벽 설정 확인하기

ls -alsh /usr/lib/firewalld

'Programming > Linux' 카테고리의 다른 글

인바운드, 아웃바운드  (0) 2020.10.12
Well-Known PORT  (0) 2020.10.12
SELinux  (0) 2020.10.12
SELinux  (0) 2020.10.12
IP 주소 확인, 포트포워딩, 고정하기  (0) 2020.09.30