proftpd 사용시 질문입니다.
proftpd를 사용하다 궁금한게 있어서 올립니다.
/usr/local/server/proftpd 에 소스로 설치를 하였구요.
런레벨에 따라 작동하게끔 해 보았습니다.
이건 proftpd.conf파일의 Server-type속성을 standalone으로
주었을 때의 이야기 인데요.
proftpd를 xinetd를 이용하여 띄우고 싶습니다.
chkconfig --del proftpd 하여 위의 스크립트가 실행되지 않게 하고
/usr/local/server/proftpd/etc/proftpd.conf파일의
server-type을 inetd로 변경한 후
원본소스의 /contrib/dist/rpm/xinetd파일의 이름과 설정을 변경하여
/etc/xinetd.d/proftpd로 넣었습니다.
아래는 vi /etc/xinetd.d/proftpd를 했을 때의 내용입니다.
# default: on
# description: The ProFTPD FTP server
service ftp
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/local/server/proftpd/sbin/proftpd
log_on_failure += USERID
disable = no
}
~
그 후 아래와 같이 서비스를 재시작하거나 리부팅 할 때 에러가 뜹니다.
무엇이 문제일지요... 방화벽과 관련이 있는지요?
런레벨 스크립트로 돌릴 때는 잘 돌아갔었는데...
kprop은 무슨 프로세스인지도.. 궁금하네요...
혹시 proftpd랑 관련이 있는지...
[root@localhost etc]# service xinetd restart
xinetd 를 정지 중: [ OK ]
xinetd (을)를 시작 중: [ OK ]
[root@localhost etc]# ps ax |grep proftpd
6854 pts/3 R+ 0:00 grep proftpd
[root@localhost etc]#
아래 부분은 /etc/init.d/proftpd의 스크립트를 실행하는 부분이죠?
[root@localhost proftpd]#
[root@localhost ~]# service proftpd start
Shutting down proftpd: [실패]
Starting proftpd: localhost.localdomain - fatal: Socket operation on non-socket
[실패]
[root@localhost ~]#
chkconfig에서 del해줘서 안되는 것인지요..?
혹시나 해서 아래와 같이 해봤습니다.
역시나 안되는군요.
아니 이런.. 원상복귀 해도 안되네요 ㅠㅠ 도와주세요.
[root@localhost proftpd]# pwd
/usr/local/server/proftpd
[root@localhost proftpd]# ./proftpd
localhost.localdomain - fatal: Socket operation on non-socket
/etc/init.d/proftpd 는
/etc/init.d/proftpd 는 stand-alone으로 실행시킬 때의 스크립트이므로 안되는 것이 당연한 것처럼 보이는데요.
혹시 xinetd로 proftpd를 실행시킨다는 것의 의미를 착각하신 것이 아닐까 합니다.
요청이 들어왔을 때 xinetd가 proftpd를 자동으로 실행하기 때문에, 따로 스크립트로 실행해줄 필요가 없죠.
--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
안녕하세요.
xinetd는 여러개의 데몬을 한꺼번에 묶어 실행하는 것으로 알고 있습니다.
xinetd가 정상적으로 구동되었음에도 불구하고 proftpd가 프로세스 목록에 뜨지 않았습니다.
말씀하신데로 standalone과 inetd를 혼동한 것 같긴 합니다만...
xinetd로 proftpd구동을 한다는 자체가
백그라운드에서의 실행 여부를 판단하게 하나요?
단독으로 띄우면 실행이 되어야 정상일텐데 xinetd로 하나 백그라운드로 실행을 시키나 소켓관련 에러가 떴습니다.
다시말해서 백그라운드에서의 실행 거부를 의미하는지요?
결국 무식한 방법이지만 proftpd를 지워버렸습니다 ㅡㅡ;
다시 설치하니 백그라운드로는 돌아갑니다만...
뭐가 문제인지 재시도를 해봐야될 것 같네요...
요
방화벽에 포트추가가 안되는 문제가 있는데... 방화벽과 관련이 있을까요?
커널 2.6.26은 받긴 했으나 컴파일을 잘못했는지 마스커레이드시 nat테이블 에러로 인해
커널 2.6.18 CentOS 5.2깔 때 쓰던 기본 커널로 구동하였습니다.
ftp서비스가 이루어 져서 기본포트인 21번으로 접속이 됩니다.
보안에 기본 포트는 안좋다 들어서
ftp서비스 포트를 바꿔보려고 포트를 오픈하려 했는데 실패했습니다.
vi /etc/sysconfig/iptables의 내용에
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport99 -j ACCEPT를 추가하여
저장 후 iptables을 restart
iptables-restore에러가 추가한 라인에서 떠서 원상복귀 후 포트 못바꾸고 사용 중입니다...
xinetd는 여러개의
xinetd는 여러개의 데몬을 관리하는 것은 맞습니다만...
여러 개의 데몬을 한꺼번에 묶어서 실행시키는 것은 아닙니다.
요청이 들어오면 해당 데몬을 실행시키고, 요청이 없을 때는 종료시켜서 메모리에서 제거해주는 역할을 합니다.
아주 가끔만 사용하는 데몬을 항상 실행시켜놓아야 한다면 비효율적이겠죠.
그런 데몬인 경우에는 xinetd에 등록해서 사용하면
사용자의 요청이 있을 때만 실행이 됩니다.
따라서 xinetd에 proftpd를 등록했다 하더라도 사용자의 ftp 전송 요청이 없다면
당연히.... proftpd가 프로세스 목록에 뜨지 않겠죠.
ftpd를 자주 사용하는 경우라면 xinetd가 ftpd를 구동하는 시간만큼 반응속도가 늦어지기 때문에
그런 경우엔 stand alone으로 항상 실행시켜놓는 것이 좋습니다.
--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.
댓글 달기