리눅스 슈퍼데몬 xinetd 포트포워딩 설정방법

조금은 지루한 내용일 수 있겠지만, 혹시나 리눅스 서버관리를 하시거나 리눅스, 서버쪽에 관심이 있는 분들이라면 알아두면 좋은 내용 입니다.



리눅스의 xinetd 의 이전 버전인 inetd 는 네트웍 접속을 제어하는 중요한 소프트웨어 입니다. inetd가 관리하는 포트에 접속요청이 들어오면 inetd 는 tcpd 프로그램에게 요청을 넘기고 tcpd 는 hosts.allow, hosts.deny 파일의 규칙에 따라 허락 여부를 결정 하게 됩니다.



여기서 허락된 요청에 대해 서버 프로세스(예를 들면, rsync, ftp, ssh 등)가 시작되는 것이죠. 이런 구조를 tcp wrapper라 합니다.



xinetd은 tcp wrapper 가 제공하는 것과 비슷한 접근제어를 제공하지만, 훨씬 더 나은 기능을 제공하고 있으며, 그중에서 port 포워딩이 가능합니다.


사실 포트포워딩을 하는 이유는 리눅스 서버에서 서버 이전을 해 놓은 상태인데, 아직 DNS 정보가 신규서버로 갱신이 되기까지 딜레이타임이 존재합니다. 이 시간에 접속하는 사용자들이 신규서버로 정상적으로 이동할 수 있도록 도와주는 것이 포트포워딩이 하는 역할 입니다.


아래는 적용 방법 입니다.


vi /etc/xinetd.d/http


service http{

disable = no

socket_type = stream

wait = no

user = root

server = /usr/sbin/ipop3d

#최대 접속자

instances = 1024

#최대 접속 및 최대접속시 기다릴 시간(초)

cps = 2500 3

#1개 IP에서 동시접속

per_source = 100

#bind = 192.168.0.2

redirect = 192.168.0.3

}



service xinetd restart


실제로 적용해보면 문제없이 잘 동작한다는걸 알 수 있습니다. 이렇게 해서 서비스 지장없이 정상적으로 서버이전 할 수 있게 되었습니다. 이 방법은 리눅스 서버내에서 포트포워딩을 할 경우 편리하고, 유용하게 사용될 수 있습니다.