You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ftp는 xinetd 모드로 작동하도록 되어 있고, 설정 및 xinedtd의 기능상의 이상은 없는 것으로 확인된다.
1. rpm으로 동일 버전의 ftp를 재설치하고 xinetd를 재시작한 후 접속 시도
위와 같은 메시지가 뜬다. 즉, 이 방법으로는 해결 불가
2. 접속허용 관련 문제인지 확인
/etc/hosts.allow 파일에 아래와 같이 접속할 수 있는 설정을 함
그리고 재접속 시도해도 되지 않음.
즉, 실행에도 문제가 없고 데몬도 정상이다.
3. 재설치
ftp를 xinetd모드로 사용하는 대신, standalone으로 설치해본다.
ftp 데몬을 kill한 후, 관련 파일을 모두 삭제하고 재설치한다.
이 때 사용프로그램은 wu-ftp보다 다양하고 보안에 강한 proftpd를 사용하기로 한다.
위와 같이 설치한다.
그리고 proftpd의 실행을 위해 proftpd.conf 파일을 아래와 같이 vi 편집기를 통해 필요한 부분만을 수정한다.
해당 파일에서 Group 설정부분에 설정된 nogroup을 nobody로 설정한다.
리눅스의 기본 계정에는 nogroup이라는 그룹 계정이 없기 때문에 이처럼 수정해주어야 한다.
그리고 설치 및 수정한 proftpd를 아래와 같이 실행시키면 아무런 메시지 없이 정상적으로 실행된다.
그 후 proftpd의 정상적인 실행상태 체크를 위해 ps로 실행되어 있는 proftpd의 상태를 확인한다.
그 후 재접속을 시도해보았지만 이래도 해결이 되지 않았다.
4. 포트확인
ftp는 tcp 20번, 21번 포트를 사용한다. 21번 포트로는 ftp명령어를 주고받고, 20번 포트로는 명령에 의한 데이터를 주고받는다.
따라서 다른 프로그램이 21번 포트를 사용하고 있는지 확인한다.
Isof와 netstat등의 명령어를 통해 이용하는 포트를 확인한다.
5. 위의 모든 상황이 아닌 경우
서버에 기록되는 로그를 모두 살펴본다.
서버의 messages 파일에 위와 같은 로그가 기록되어 있었다.
위 로그의 내용은 /etc/shutmsg파일에 있는 메시지를 출력하면서 모든 접속이 거부된 것이다.
따라서 /etc/shutmsg를 삭제하고 proftpd를 재시작하여 접속을 시도하면 잘 되는 것을 확인할 수 있다.
/etc/shutmsg 파일은 ftp 접속을 일시적으로 끊기 위해 생성해 두는 것으로, /etc/nologin이 telnet의 원격접속을 일시적으로 차단하는 역할과 동일하다.
named가 dns 관련 이슈의 subset이라면, xinetd도 ftp 관련 이슈의 subset이라 볼 수 있을거 같아요.
절차는 아래와 같이
xinetd가 문제가 있다. (이 부분을 어디까지 세분화 해줄건지도 고민이 필요할것 같습니다. xinetd의 권한 문제인지 네트워크 문제인지 잘못된 설정문제인지 문제가 있다는것도 여러가지가 있을 수 있으니까요. 하지만 여기서는 xinetd가 그렇게 복잡한 애는 아니라 이렇게 뭉뚱그리는게 더 좋겠네요)
비파괴적인 방법으로 솔루션 탐색: 예컨대 재설치 같은 경우엔 전체 시스템에 영향을 줄수도 있는 작업입니다. santaBPF가 자동으로 해서도 안되고 솔루션으로 제시하더라도 마지막에 제시해줄만한 솔루션이에요. 그래서 /etc/hosts.allow 확인 -> 방화벽 확인 -> 로그 확인 이런식으로 pinpointing 하면 될것 같네요. 트러블슈팅하는 순서는 비용이 덜 드는 순으로 하면 될거 같아요. 여기서는 방화벽이랑 /etc/hosts.allow 조회하는 비용이 비슷할거고 로그는 크기에 따라 파싱하는데 리소스가 많이 들 수 있는 만큼 마지막에 시도해보는게 좋을거 같네요
2에서 찾은 솔루션 제시
이런식으로 나눠질것 같습니다.
지금 임의로 만든 Scenario 클래스도 (monitor|trigger) ->troubleshoot -> suggest의 세단계로 나눠져 있는데 구현하는데 크게 걸리는건 없겠네요
문제 확인 및 단계별 해결 방법
ftp는 xinetd 모드로 작동하도록 되어 있고, 설정 및 xinedtd의 기능상의 이상은 없는 것으로 확인된다.
1. rpm으로 동일 버전의 ftp를 재설치하고 xinetd를 재시작한 후 접속 시도
위와 같은 메시지가 뜬다. 즉, 이 방법으로는 해결 불가
2. 접속허용 관련 문제인지 확인
/etc/hosts.allow 파일에 아래와 같이 접속할 수 있는 설정을 함
그리고 재접속 시도해도 되지 않음.
즉, 실행에도 문제가 없고 데몬도 정상이다.
3. 재설치
ftp를 xinetd모드로 사용하는 대신, standalone으로 설치해본다.
ftp 데몬을 kill한 후, 관련 파일을 모두 삭제하고 재설치한다.
이 때 사용프로그램은 wu-ftp보다 다양하고 보안에 강한 proftpd를 사용하기로 한다.
위와 같이 설치한다.
그리고 proftpd의 실행을 위해 proftpd.conf 파일을 아래와 같이 vi 편집기를 통해 필요한 부분만을 수정한다.
해당 파일에서 Group 설정부분에 설정된 nogroup을 nobody로 설정한다.
리눅스의 기본 계정에는 nogroup이라는 그룹 계정이 없기 때문에 이처럼 수정해주어야 한다.
그리고 설치 및 수정한 proftpd를 아래와 같이 실행시키면 아무런 메시지 없이 정상적으로 실행된다.
그 후 proftpd의 정상적인 실행상태 체크를 위해 ps로 실행되어 있는 proftpd의 상태를 확인한다.
그 후 재접속을 시도해보았지만 이래도 해결이 되지 않았다.
4. 포트확인
ftp는 tcp 20번, 21번 포트를 사용한다. 21번 포트로는 ftp명령어를 주고받고, 20번 포트로는 명령에 의한 데이터를 주고받는다.
따라서 다른 프로그램이 21번 포트를 사용하고 있는지 확인한다.
Isof와 netstat등의 명령어를 통해 이용하는 포트를 확인한다.
5. 위의 모든 상황이 아닌 경우
서버에 기록되는 로그를 모두 살펴본다.
서버의 messages 파일에 위와 같은 로그가 기록되어 있었다.
위 로그의 내용은 /etc/shutmsg파일에 있는 메시지를 출력하면서 모든 접속이 거부된 것이다.
따라서 /etc/shutmsg를 삭제하고 proftpd를 재시작하여 접속을 시도하면 잘 되는 것을 확인할 수 있다.
/etc/shutmsg 파일은 ftp 접속을 일시적으로 끊기 위해 생성해 두는 것으로, /etc/nologin이 telnet의 원격접속을 일시적으로 차단하는 역할과 동일하다.
출처 : https://www.linux.co.kr/linux/troubleshooting/trouble0001.htm
The text was updated successfully, but these errors were encountered: