기본 개념 같은건 다 안다고 가정하고 하는 방법만 설명하도록 하겠음.
차례대로 한번 살펴봅시다.
1. 서비스 등록할 프로그램 작성
아래와 같이 간단한 프로그램을 하나 만들어라.
그냥 컴파일 하고, 여기서 프로그램의 절대 경로를 pwd 명령으로 알아두면 좋다.
2. Xinetd 설치 여부 확인 및 설치
/etc/init.d 디렉토리에 가서 xinetd가 설치되어 있는지 확인하고 없으면 설치해야 한다.
apt-get install xinetd로 설치하면 됩니당.
3. 서비스 등록
설치가 다되었으면 /etc/xinetd.d 디렉토리에 가서 서비스 등록할 이름으로 파일을 하나 만들고
아래와 같이 작성한다. ( cat > 하던지.. vi 쓰던지..)
service [서비스 이름] {
disable = no
flags = REUSE
socket_type = stream
wait = no
user = "서비스 할 권한"
server = "서비스할 바이너리의 절대 경로"
}
이런 식으로 등록한다. 각자 뜻하는 바는 음.. 뭐 항목 이름보면 대충 유추가 가능하지 싶은데?
disable : 서비스 사용 여부를 나타내는 것. no로 되있어야 사용하는 것.
socket_type : stream 으로 되어 있다면 tcp를 사용한다는 말.
user : 위에 있듯이 서비스 할 권한(유저)
server : 서비스할 프로그램의 절대경로
예제 코드는 아래와 같이 구성하였다.
그다음에는 /etc/services 파일을 수정해야 한다.
맨 마지막 라인에 방금 작성한 서비스 이름과 사용할 port 번호를 추가한다.
이 파일을 열면 아래와 같은 형식으로 되어 있다.
[서비스 이름] 포트 / 소켓종류
ex> test 9004/tcp
위에 작성한 예제대로 한번 등록해봤다. 서비스 포트 번호는 7778번, TCP 소켓을 이용하는 서비스이다.
echo "memleak1 7778/tcp" >> /etc/services 이런식으로 해도 됨.
4. 서비스 재시작
이제 서비스를 등록했으니까 서비스 재시작을 해주어야 한다.
/etc/init.d 디렉토리로 이동하여 ./xinetd restart 를 해주면 된다.
간혹 가다가 ./xinetd restart 해도 안될 때가 있다 (개빡침)
내가 처음에 할 때 그래서 xinetd를 지웠다가 다시 깔았다.
5. 서비스 테스트
서비스를 등록하고 재시작까지 했으니까 한번 테스트 해봅시다.
telnet으로 테스트 해도 되지만 nc로 하는게 낫다고 함. 텔넷은 인자가 안넘어갈 때가 있다고..
(난 어차피 원래 nc씀)
이렇게 Xinetd 데몬 등록을 해봤다. 별거 없는데.. 똑같이 안따라하면 오류 난다.
환경은 우분투 14
'IT 그리고 정보보안 > Knowledge base' 카테고리의 다른 글
윈도우 핵심 프로세스와 서비스 (0) | 2021.04.18 |
---|---|
윈도우 파일시스템 종류 (0) | 2021.04.18 |
리눅스 환경의 프로세스(Process) (0) | 2021.04.18 |
리눅스 파일 시간값 (0) | 2021.04.18 |
하드 링크 / 심볼릭 링크 (0) | 2021.04.18 |