컴퓨터

FON2100D/F 공유기 DD-WRT로 해킹하기

회사에서 WIFI 확장에 필요해서 8년도 더 된 FON 공유기를 꺼내들었습니다. OpenWRT 기반으로 Fon에서 개조한 원래의 펌웨어로는 사용에 제한이 있어서, DD-WRT로 핵펌하였는데, 사용하는 방법을 정리하고자 합니다.

준비물

  • putty.exe
  • WinpCap
  • FonFlash.exe
  • DD-WRT 펌웨어 파일 (linux.bin)
  • 만약 RedBoot가 막혀있는 경우 추가로 필요한 것
  • hfs.exe
  • openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma, out.hex, sshenable.htm 파일 3개

확인사항

    • FON 펌웨어 버전 확인 (0.7.1.1 이하인지 확인)

1. 준비물 내려받기

작업하기 편하게 한 폴더에 몰아 넣어 보관합니다. (WinPcap의 경우는 설치하셔야 합니다.)

여기서 먼저 [4. DD-WRT 펌웨어로 교체하기] 과정을 해보시고, Telnet for RedBoot not enabled 에러가 안나시는 분은, [2. FON 초기화], [3. RedBoot 막혀있지 않은 OpenWrt 펌웨어로 교체하기] 과정을 생략하셔도 됩니다.

2. FON 초기화

FON 초기화면

초기화방법

전원이 켜진 상태에서 전원초기화 버튼 30초간 누르고 전원을 빼고, 누른 상태에서 전원을 켜서 5분정도 기다렸다가 누르는 것을 멈춥니다.

그러면 다시 저절로 재부팅이 됩니다. 5분정도 부팅을 기다리면, 웹에서 169.254.255.1 접속하여 펌웨어가 낮아졌는지 확인합니다.

FON 펌웨어가 0.7.1.1이상인 경우 FON 초기화를 통해 0.7.1.1 이하로 낮출 수 있습니다. (제 경우는 0.7.2 r3에서 0.7.0 r2로 낮아짐)

3. RedBoot 막혀있지 않은 OpenWrt 펌웨어로 교체하기

1. PC의 랜카드와 FON공유기를 랜선으로 직접 연결합니다.
2. 컴퓨터의 네트워크 어댑터의 TCP/IP 속성을

Fon 네트워크 어댑터 속성

  • IP 주소 : 169.254.255.2
  • 서브넷 마스크 : 255.255.0.0
  • 기본 게이트웨이 : 169.254.255.1
  • 기본 설정 DNS 주소 : 169.254.255.1

로 변경.

3. HFS를 실행하여 Menu의 Add files...를 눌러서

HFS 사용법

  • openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma
  • out.hex

파일을 넣어둡니다. (파일을 넣어두는 것으로 끝. 알아서 잘 작동합니다.)

4. sshenable.htm를 웹상에서 열어서 Submit 버튼을 누릅니다. 로그인창에

아이디 : root 암호 : admin 입력하면, 잠시 뒤에 Fon 페이지가 뜨면 잘 된 것 입니다. 다음 단계로 넘어갑니다.

sshenable.htm

(Fon 페이지가 안 뜨면 잘 안된 것입니다. 웹브라우저를 IE보다는 firefox나 Google Chrome으로 해보세요. 여기서 제대로 안되면 다음 단계인 putty 접속이 안됩니다.)

5. putty를 실행하여 Host Name (or IP address)에

169.254.255.1 를 입력하고 맨 아래의 open 버튼을 누릅니다. (여기서 Port : 22, Connection type: SSH 는 기본값으로 잘 선택되었으므로 바꿀 필요 없습니다.)

* 여기서 접속이 안된다는 팝업메세지가 뜨면 위의 4번 submit 단계를 다시 잘 해봅니다.

putty fon

PuTTY Security Alert 창이 뜨면 [아니오[N]] 버튼을 눌러줍니다.

login as : 화면이 뜨고 접속이 되면 login as 에

root

root@169.254.255.1's password: 에

admin

을 입력하여 로그인합니다.

root@OpenWrt:~# 가 뜨면 이제부터 command상으로 명령어를 입력해야합니다.

putty fon login

5-1. 펌웨어 업그레이드 1/2
mv /etc/init.d/dropbear /etc/init.d/S50dropbear
cd /tmp
w get http://169.254.255.2/openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma
mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7
reboot

( * 주의 : 3번줄의 w get은 사이 간격을 붙여주세요.)

마지막

mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7

명령을 치면

Writing from openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma to vmlinux.bin l7 ... [w]

요런 메세지에서 시간이 몇분 걸리므로 기다리다가

root@OpenWrt:~#

가 다시 나오면, reboot하면, 공유기가 재부팅되면서 putty접속이 끊깁니다. putty를 종료합니다.

putty openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma

공유기 재부팅시간인 2~3분을 기다리고, 5번 단계를 다시 하여 putty로 접속 하고 5-2 단계를 마저 합니다.

root@OpenWrt:~# 상태에서 다시 command상으로 명령어를 입력합니다.

5-2. 폄웨어 업그레이드 2/2
cd /tmp
w get http://169.254.255.2/out.hex
mtd -e "RedBoot config" write out.hex "RedBoot config"
reboot

( * 주의 : 2번줄의 w get은 사이 간격을 붙여주세요.)

mtd -e "RedBoot config" write out.hex "RedBoot config"

명령에서

Writing from out.hex to RedBoot config ... [w]

이런 메세지에서 잠깐 기다리면 root@OpenWrt:~# 가 다시 나오면, reboot하면 공유기가 재부팅되면서 putty접속이 끊깁니다.

putty out.hex

주3

4. DD-WRT 펌웨어로 교체하기

1. 이제 FON공유기의 전원을 빼고,

2. FonFlash.exe 를 실행하고주4 Select Firmware Type: 를 DD-WRT 로 바꿉니다.

Select Firm File: 에서 linux.bin 을 선택하고 Flash Router Now! 를 누르면

No Packet 문구가 차례대로 뜨는 것을 확인하고 FON공유기에 전원을 넣습니다.

몇분간 기다리면 팝업 메세지로 Device Flashed Successfully 가 뜨면 끝입니다.

Fon Flash

Fon Flash Success

5. DD-WRT 설정하기

1. 컴퓨터의 네트워크 어댑터의 TCP/IP 속성을

DD-WRT 네트워크 어댑터 속성

  • 자동으로 IP 주소 받기
  • 자동으로 DNS 서버 주소 받기

로 변경

FON과 랜카드가 랜선으로 연결된 상태 그대로, 웹브라우저 상에 192.168.1.1로 접속하여 설정화면으로 이동합니다. 주5

2. 초기 아이디, 암호 변경

DD-WRT 초기암호 변경

아이디, 암호를 변경해 줍니다.

3. 기본설정 변경

DD-WRT 기본 설정

제 사용 목적은 WI-FI 확장이기 때문에, 기본 공유기가 있습니다. 따라서 WAN은 사용하지 않으므로

Setup -> Basic Setup 에서 WAN Connection Type를 Disabled 로 하였습니다.

DHCP Server 또한 기본 공유기에서 사용하므로 Disable로 하였고, 맨 밑의 Time Zone은 UTC +9로 바꾸시고 Summer Time (DST)는 none으로 고쳤습니다.

4. 무선 설정 변경

DD-WRT 무선 설정

Wireless -> Basic Settings 에서, 제 용도에 맞게 AP기기가 필요하므로, Wireless mode는 AP로 하였습니다. Channel Width : Turbo (40 Mhz)는 AP가 아예 뜨지 않아서 사용할 수 없었고, Wireless Network Mode : Mixed와 G-only 는 비슷한 다운로드 속도, B-only는 Mixed 대비 1/3정도의 속도가 나왔습니다.

Wireless mode : AP
Wireless Network Mode : Mixed
Channel Width : Full (20 Mhz)
Wireless Channel : Auto
5. 무선 보안 설정 변경

DD-WRT 무선 보안 설정

Wireless -> Wireless Security 에서, 무선 보안 설정을 하시면 됩니다.

Security Mode : WPA Personal
WPA Algorithms : AES
WPA Shared Key : 10자리 암호

이제 적당한 장소에 허브에 랜선으로 연결하여 설치하시어 AP 확장기기로 사용하시면 됩니다. FON 2대가 있었는데 하나는 메인 IPTIME 무선공유기가 잘 안닿는 장소에, 나머지 하나는 제 자리에 일딴 설치에 두다가 다른 데 쓸 일이 생기면 쓰기로 하였습니다. 쓰시는 네트워크 환경에 맞게 Basic Setup -> Network Setup의 Router IP에 적당한 내부 IP를 넣어주셔야 겠지요.

남은 이야기

FON 공유기가 너무 구형이라 N-mode도 지원안하고, 범위도 좀 약한 편이라 메인으로 쓰기에는 부족하지만, 보조AP로 쓰기에는 손색이 없는 것 같습니다. 시간 널널하시고 굴러다니는 FON공유기가 있으신 분은 재미로 한번 시도해 보시는 것도 좋을 것 같습니다.

각주.
  1. Download: 에서 셀렉트바의 값을 Firmware Images -> FonFlash로 바꾸면 아래에 fon-flash-windows.zip 링크가 뜸 [Back]
  2. openwrt-3.zip.txt는 내려받으시고 openwrt-3.zip으로 파일명을 바꾸세요. [Back]
  3. 두번재 putty접속에서는 4번 단계를 다시 하실 필요가 없지만, 혹시 저처럼 mv /etc/init.d/dropbear /etc/init.d/S50dropbear 에서 오타가 나서 잘못된 파일명으로 바꾸셨다면 sshenable.htm 파일을 웹상에 열어서 input란에 바뀐 파일명으로 바꿔서 submit하세요. [Back]
  4. WinpCap을 설치하고도 FonFlash.exe가 실행이 안되신다면 Microsoft Visual C++ 2008 SP1 (x86) 도 설치하시길 바랍니다. [Back]
  5. 여기서 설정화면이 접속이 안된다면, 펌웨어 교체 단계가 잘 안된 것이므로 [4. DD-WRT 펌웨어로 교체] 단계를 다시 해보세요. 저도 잘 안되서 linux.bin을 새로 다시 내려 받고, 다시 해보니 잘 되었습니다. [Back]
지나다.

중고나라에서 1만원 주고 구입하고는 한번도 사용을 안했습니다. 시디가 없어서 어떻게 사용하는지 몰라서요. 홈페이지 들어가니까 한국에서는 가입 불가능으로 바뀌어 있더군요.
이렇게라도 사용해야 겠네요. 최근에 글 올리셨는데, 저에게도 해당이 될 것 같네요.
나중에 시간 나면 해봐야 겠네요.

감사합니다.

니콜라

주말을 맞아.. 다시 시도해보고는.. 결국 성공했습니다!
일단 리셋-리부팅 반복해서 버전을 0.7.0 r2로 낮추고 나서 몇가지 문제가 있었지만 잘 해결했습니다.
1. 랜선 연결 안됨 : 랜선 교체 후 정산 연결
2. FonFlash.exe로 펌웨어 안 올라감 : dd-wrt wiki 방법대로 telnet 연결해서 성공
거실에 놓은 공유기 무선이 안방까지 잘 안닿아서 침대에서 뒹굴거릴 때 영 불편했는데 이제 리피터로 잘 활용하게 됐습니다. ^^
구글링을 해봐도 죄다 수년 전 사용기라 되나안되나 반신반의했는데 최근 성공기를 올려주셔서 자신감을 갖고 시도하게 됐습니다. 감사합니다!

아르

와, 잘되었네요. 성공하셨다니 제가 더 감사합니다^^

니콜라

아.. 그런 인고의 시간이 더 필요한거였군오 ㅠㅜ
더 노력해보고 꼭 성공하겠습니다 ㅎㅎ

니콜라

저도 며칠 전부터 갑자기 이 녀석을 살려보자고 별 짓 다하고 있는데..
아무리 해도 펌웨어버전이 안내려 가네요.. 0.7.2 r3에서 리부팅을 몇 번씩 해도 안되고..
DNS 덮어 씌우는 방법도 안되고.. 아우.. 시간만 죽이고 있습니다. ㅠㅠ

아르

저도 펌웨어 내릴려고 구글링해가면서 이것저것 시도하고 엄청 고생했는데, 초기화 밖에 답이 없었습니다.
근데 초기화가 잘 안된다는 게 함정...
저의 경우는 거의 어거지로 했던거 같습니다.
제가 했던 것을 설명드리면,
클립으로 삼각형을 만들고 가운데 끝은 살짝 90도로 세워두고, 폰의 리셋버튼을 거기에 올려두고 두꺼운 책으로 아예 눌러놓고, 처음엔 5분마다 전원만 뺐다 껐다를 반복하다가 잘 안되서, 시간주기를 그냥 랜덤하게 해서, 주구장창 뺐다 켰다를 반복해보니(화장실 갈때 한번, 딴 일하다가 생각나면 한번...) 우연히 된 것 같습니다.
느낌상, 리셋하고 다시 재부팅 될 때에 갑자기 전원을 빼버리면 초기화가 되는 것 같기도 하고...
건투를 빌겠습니다. 니콜라님 ㅠ