/ etc / shells의 nologin은 위험합니다. 왜?


21

FreeBSD에 FTP 서버를 올리면서 인터넷에서 이것을 찾았습니다.

nologin을 / etc / shells에 넣으면 해당 계정을 FTP와 함께 사용할 수있는 백도어가 생길 수 있습니다.

( http://osdir.com/ml/freebsd-questions/2005-12/msg02392.html 참조 )

아무도 이것이 왜 설명 할 수 있습니까? 왜 nologin의 사본을 가져 와서 / etc / shells에 넣으면이 문제가 해결됩니까?

답변:


23

/etc/shells시스템이 (제한되지 않은) 쉘로 간주하는 바이너리 목록을 포함합니다. 즉,이 바이너리 중 하나를 쉘로 구성한 모든 사용자는 시스템에 대한 전체 액세스 권한이있는 것으로 간주됩니다 (적절한 권한이있는 경우 모든 명령을 실행할 수 있음).

가장 직접적인 결과는 구성된 쉘 chsh변경 하는 데 사용할 수 있다는 것 입니다.

사용자 가이 목록에 없는 쉘을 구성한 경우, 시스템은 사용자가 제한되어 있다고 가정합니다. 이 경우 chsh사용자 해당 값을 변경할 수 없습니다 .

다른 프로그램이이 목록을 쿼리하고 유사한 제한을 적용 할 수 있습니다.

그래서 넣어 nologin에서 /etc/shells당신을 효과적으로 "이 사용자라고 nologin껍질 전체 무제한 사용자로 간주 될 때". 그것은 거의 확실하게 nologin 말하는 것과 반대입니다 .


8

ftp는 표준 쉘을 제공하지 않으며 ftp 인터페이스를 제공합니다. 쉘이 nologin을 가리켜도 계정이있는 사용자는 여전히 ftp 인터페이스에 액세스 할 수 있습니다. 또한 쉘을 필요로하지 않는 다른 서비스에도 액세스 할 수 있습니다 (예 : 계정 인증에 의존하지만 쉘 액세스는 아닌 http 웹 인터페이스 등이있는 경우). 이것은 반드시 시스템에 대한 백도어 일 필요는 없지만 서비스에 대한 백도어입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.