유화(YOUHUA) PT1570-R10 광모뎀은 간헐적인 네트워크 연결 문제로 인해 정기적인 재부팅이 필요한 경우가 있습니다. 그러나 이 모델은 관리자 웹 인터페이스에서 정기 재부팅 기능을 제공하지 않으며, 일반 사용자 계정으로는 주요 설정을 변경할 수 없습니다. 이 문서는 PT1570-R10 광모뎀의 최고 관리자(super admin) 권한을 확보하고, 텔넷(Telnet) 접근을 활성화하여 셸(shell) 스크립트를 통해 자동으로 재부팅되도록 설정하는 방법을 설명합니다.
1. 광모뎀 모델 정보
이 가이드는 다음 사양의 유화 PT1570-R10 광모뎀에 기반합니다:
- 브랜드: 유화 (YOUHUA)
- 모델명: PT1570-R10
- 하드웨어 버전: V2.01.02
- 소프트웨어 버전: V3.04.15721U01
2. 최고 관리자 권한 및 텔넷 접근 활성화
유화 PT1570-R10 광모뎀의 최고 관리자 계정은 기본적으로 비활성화되어 있거나 접근이 제한됩니다. 이 제한을 우회하기 위해 FTP 서비스의 취약점을 활용하여 설정 파일을 수정해야 합니다.
2.1 FTP 서비스 활성화
- 광모뎀 뒷면 레이블에 인쇄된 사용자 이름과 비밀번호로 일반 사용자 웹 인터페이스에 로그인합니다.
- '애플리케이션(Application)' → 'FTP 설정(FTP Configuration)' 메뉴로 이동합니다.
- FTP 서비스를 '활성화'하고, 사용자 이름과 비밀번호를 모두 'user'로 설정합니다.
- 변경 사항을 저장한 후, 보안을 위해 웹 인터페이스에서 로그아웃합니다.
2.2 설정 파일(config.xml) 수정
FTP 클라이언트를 사용하여 광모뎀의 설정 파일을 다운로드하고 수정합니다.
- FTP 클라이언트를 통해 광모뎀의 IP 주소(예:
192.168.1.1)에 'user' 계정으로 로그인합니다. /var/config디렉토리로 이동합니다. (주의:/var로 먼저 들어간 후config로 진입하면 권한 오류가 발생할 수 있습니다.)config.xml파일을 로컬 컴퓨터로 다운로드하여 백업합니다.- 다운로드한
config.xml파일을 텍스트 편집기로 열고 다음 부분을 수정합니다.
텔넷 활성화
config.xml 파일 내에서 텔넷 관련 설정을 찾아 다음과 같이 수정하거나 추가합니다:
MIB_TELNET_ENABLE값을1로 변경하여 텔넷 서비스를 활성화합니다.PROVINCE_TELNETCLI_ENABLE값을1로 변경합니다.ACC_TBL체인 내에서telnet값을3으로 설정하여 텔넷 로그인 시 즉시 최고 관리자 권한을 얻도록 합니다.telnet_port는 기본값인23을 유지합니다.
<Value Name="MIB_TELNET_ENABLE" Value="1"/>
<Value Name="TELNET_USER" Value="yhtcAdmin"/>
<Value Name="TELNET_PASSWD" Value="Cuc@YHfw"/>
<Value Name="PROVINCE_TELNETCLI_ENABLE" Value="1"/>
<chain chainName="ACC_TBL">
<Value Name="telnet" Value="3"/>
<Value Name="telnet_port" Value="23"/>
</chain>
최고 관리자 계정 활성화 및 비밀번호 확인
일부 지역 통신사 펌웨어의 경우 최고 관리자 계정이 비활성화되어 있을 수 있습니다. 다음 설정을 수정하여 계정을 활성화하고 비밀번호를 확인합니다:
PROVINCE_BEIJING_ACCOUNT_ADMIN_DISABLE(또는 이와 유사한 지역 제한 설정) 값을0으로 변경하여 최고 관리자 계정 제한을 해제합니다.SUSER_PASSWORD값에 지정된 내용이 최고 관리자 비밀번호입니다. 필요한 경우 이 값을 변경할 수 있습니다.
<Value Name="PROVINCE_BEIJING_ACCOUNT_ADMIN_DISABLE" Value="0"/>
<!-- SUSER_PASSWORD는 최고 관리자 비밀번호를 나타냅니다. -->
<Value Name="SUSER_PASSWORD" Value="123456"/>
2.3 수정된 파일 업로드 및 재부팅
- 수정된
config.xml파일을 FTP 클라이언트를 통해/var/config디렉토리에 다시 업로드하여 기존 파일을 덮어씌웁니다. - FTP 연결을 해제합니다.
- 광모뎀의 전원을 잠시 끈 후 다시 켜서 재부팅합니다.
- 재부팅 후, 웹 브라우저에서
http://192.168.1.1/admin/login_admin.asp에 접속하여SUSER_PASSWORD에 설정된 비밀번호로 최고 관리자 계정에 로그인할 수 있습니다.
주의: 최고 관리자 권한 획득 후에는 보안 강화를 위해 FTP 기능을 다시 비활성화하는 것이 좋습니다.
3. 텔넷(Telnet)으로 광모뎀 접근
이제 텔넷이 활성화되었으므로, 터미널이나 텔넷 클라이언트를 사용하여 광모뎀에 접근할 수 있습니다.
telnet 192.168.1.1
프롬프트가 나타나면 config.xml에서 확인한 텔넷 사용자 이름(yhtcAdmin)과 비밀번호(Cuc@YHfw)를 입력합니다. telnet 값을 3으로 설정했으므로, 로그인 시 자동으로 최고 관리자 셸 환경에 진입합니다.
4. 정기 재부팅 설정
광모뎀의 웹 인터페이스에서는 정기 재부팅 설정 기능을 찾을 수 없습니다. 임베디드 리눅스 시스템인 광모뎀의 셸 환경에서 크론(cron) 작업을 설정하여 정기 재부팅을 구현합니다.
4.1 크론 설정 파일의 특성
이 광모뎀 시스템은 crontab 명령어가 없지만, crond 데몬이 실행됩니다. 크론 작업은 /var/spool/cron/crontabs/CUAdmin 파일에 정의됩니다. 그러나 이 파일은 시스템 재부팅 시 초기화되므로, 단순히 파일을 수정하는 것만으로는 영구적인 설정을 할 수 없습니다. 따라서 시스템 시작 시 스크립트를 통해 이 파일을 수정하도록 해야 합니다.
4.2 영구적인 크론 작업 추가
시스템 시작 스크립트인 /etc/init.d/rcS는 읽기 전용 파일 시스템에 위치하여 직접 수정할 수 없습니다. 그러나 rcS 스크립트는 /etc/init.d/rc35 스크립트를 호출하고, rc35는 다시 /var/config/run_test.sh 스크립트를 실행하는 라인을 포함하고 있습니다. /var/config는 쓰기 가능한 영역이므로, run_test.sh 파일을 생성하고 여기에 크론 작업을 추가하는 명령을 넣습니다.
텔넷으로 광모뎀에 로그인한 후, 다음 명령을 사용하여 /var/config/run_test.sh 파일을 생성하고 실행 권한을 부여한 후 내용을 추가합니다.
#!/bin/sh
CRON_SCHEDULE_FILE="/var/spool/cron/crontabs/CUAdmin"
REBOOT_TASK="5 1 * * * /sbin/reboot" # 매일 새벽 1시 5분에 재부팅
# 시스템 초기화가 완료되고 CRON_SCHEDULE_FILE이 생성될 때까지 대기
sleep 100 &
# 재부팅 스케줄을 추가 (이미 존재하지 않을 경우)
# 대기 시간 이후에 실행되도록 서브쉘에서 실행
(
sleep 10 # 추가 대기
if ! grep -q "$REBOOT_TASK" "$CRON_SCHEDULE_FILE"; then
echo "$REBOOT_TASK" >> "$CRON_SCHEDULE_FILE"
fi
# 변경된 크론 설정을 적용하기 위해 crond 데몬 재시작
sleep 5 # 추가 대기
# crond 프로세스를 찾아 종료하고 새로 시작
if command -v pkill > /dev/null 2>&1; then
pkill -9 crond
else
# pkill이 없을 경우 ps와 kill을 사용
CROND_PID=$(ps -ef | grep 'crond' | grep -v 'grep' | awk '{print $1}')
if [ -n "$CROND_PID" ]; then
kill -9 "$CROND_PID"
fi
fi
/bin/crond -l 0
) > /dev/null 2>&1 & # 백그라운드에서 실행하고 출력은 무시
위 스크립트의 실행 과정:
sleep 100: 시스템 시작 후CRON_SCHEDULE_FILE이 완전히 생성되고 안정화될 시간을 확보합니다.( ... ) > /dev/null 2>&1 &: 나머지 작업은 백그라운드에서 비동기적으로 실행되며, 모든 출력은 무시됩니다.if ! grep -q "$REBOOT_TASK" "$CRON_SCHEDULE_FILE": 재부팅 작업이 크론 파일에 이미 존재하는지 확인하여 중복 추가를 방지합니다.echo "$REBOOT_TASK" >> "$CRON_SCHEDULE_FILE": 재부팅 크론 작업을 파일에 추가합니다. (매일 새벽 1시 5분)pkill -9 crond또는ps ... kill -9 "$CROND_PID": 기존crond프로세스를 강제 종료합니다./bin/crond -l 0: 새로운crond데몬을 시작하여 수정된 크론 설정을 즉시 적용합니다.
이 스크립트를 광모뎀에 추가하고 재부팅하면, 매일 새벽 1시 5분에 광모뎀이 자동으로 재부팅되어 네트워크 안정성을 유지하는 데 도움이 됩니다.