/bin이 다른 위치에 바인딩되면 텔넷이 연결을 거부합니다.

/bin이 다른 위치에 바인딩되면 텔넷이 연결을 거부합니다.

예상대로 펌웨어가 읽기 전용인 라우터에서 작업하고 있습니다. 그들이 사용하는 비지박스는 원래 도구의 간단한 버전이므로 필요한 모든 도구에 액세스할 수 없습니다. 이 라우터에는 USB 포트도 있으므로 USB 스틱에 /bin을 바인딩하면 내가 원하는 결과를 얻을 수 있을 것이라고 생각했습니다. 따라서 다음 명령을 사용하여 바인딩하십시오.

cp -r /bin /mnt/<device-id>/
mount --rbind /mnt/<device-id>/bin /bin

그런 다음 busybox를 저장소의 정식 버전으로 교체했습니다. 나는 misp를 위해 미리 만들어진 최신 바이너리를 사용하고 있습니다.

글쎄, 예상했던 대로 비지박스는 이제 모든 구성 요소를 갖추고 있지만 다른 장치에서 텔넷을 할 수 없고 텔넷 연결이 끊어지면 다시 연결하여 얻을 수 없습니다.

$ telnet 192.168.1.1
login:
escape char:
Connection closed by foreign host.

그러면 여전히 busybox를 바인딩 해제할 수 없는 문제가 있습니다. 제거하려고 하면 사용 중입니다. 기본적으로 bash로 사용하고 있기 때문에 이것은 예상됩니다.

$ umount /bin
umount: /bin: device is busy.

나는 단서가 없다. 누군가가 나를 도울 수 있기를 바랍니다.

답변1

내가 겪고 있는 문제를 알아냈습니다. 첫째, 앞서 언급했듯이 텔넷을 사용하여 다시 연결할 수 없습니다. 이는 busybox 및 telnet 명령을 제어하는 ​​상위 프로세스가 있기 때문인 것 같습니다. 포그라운드에서 다른 telnetd 프로세스를 생성하려고 하면 다음 오류가 발생합니다.

$ telnetd -F
telnetd: bind: Address already in use

먼저 포트 23(telnetd의 기본 포트)을 사용하여 프로세스를 확인했습니다.

$ netstat -lntup | grep 23
tcp        0      0 0.0.0.0:1234           0.0.0.0:*             LISTEN      2697/agent
tcp        0      0 0.0.0.0:23             0.0.0.0:*             LISTEN      362/pc

따라서 /bin폴더를 다른 위치에 바인딩하면 pc프로세스가 혼란스러워집니다. 따라서 telnetd 세션을 생성할 수 없으며 포트 23을 사용합니다. 이 프로세스는 시작 시 대부분의 구성만 담당하기 때문입니다. 이 프로세스 ID가 종료되는 것을 볼 수 있는 유일한 시간은 펌웨어 업데이트 프로세스가 시작될 때입니다. 그럼에도 불구하고 프로세스를 종료하고 telnetd를 다시 시작했습니다.

$ kill -9 362
$ telnetd

이제는 작동하지만 보기 흉한 패치이므로 다른 접근 방식을 사용했습니다. 물론 다른 포트에서 telnetd를 실행하는 것도 가능하지만, /bin 폴더는 전혀 바인딩하지 않기로 했습니다.

경로 앞에 설치 위치를 추가하기로 결정했습니다. 따라서 내가 실행하는 모든 busybox 명령은 설치 위치에서 찾을 수 있습니다. 실행할 명령을 처음으로 PATH에서 찾았기 때문입니다. 따라서 경로에 여러 개의 busybox가 있어도 아무런 해가 없습니다. 새로운 busybox가 있다고 가정해 보겠습니다 /mnt/<device-id>/bin.

$ for i in `./busybox --list`; do ln -s busybox $i; done
$ PATH=/mnt/<device-id>/bin:$PATH

이제 모든 새로운 busybox 명령이 예상대로 작동합니다. 더 이상 바인딩이 필요하지 않으며 시스템 프로세스가 더 이상 종료되지 않습니다.

참고로 질문 게시물에서 umount /bin폴더를 정리할 수 없다고 언급했습니다. 그 이유는 제가 생각했던 것과 정확히 일치하는 것 같습니다. 다른 busybox 인스턴스를 사용하면 실제로 /bin폴더 바인딩이 해제됩니다.

관련 정보