블로그 이미지
훅크선장

카테고리

분류 전체보기 (362)
사진이야기 (23)
펭귄컴퓨팅 (121)
컴퓨터보안 (84)
절름발이 프로그래머 (59)
하드웨어개조 (23)
멀알려줄까 (35)
홈베이킹&홈쿠킹 (2)
잡다한것들 (15)
Total
Today
Yesterday

달력

« » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

공지사항

태그목록

최근에 올라온 글

1. OpenWRT Firmware 설치
사전 준비사항
1) OpenWRT Firmware 10.3.1 버전 (2011년 11월 29일 현재 최신 버전)을 다운받는다. 파일명은 openwrt-ar71xx-generic-dir-825-b1-jffs2-factory.bin 이며, http://downloads.openwrt.org/backfire/10.03.1/ar71xx/ 에서 다운받을 수 있다.

firmware recovery mode를 이용하여, 웹 인터페이스로 펌웨어를 설치
2) DIR-825 공유기의 전원이 꺼진 상태에서, 후면 패널 부분의 RESET 버튼을 누른 상태로 전원을 인가한다. RESET 버튼을 계속 누른 상태로 약 10초 ~ 30초 사이를 유지하면, 전면 패널의 전원 LED 가 주황색으로 느리게 깜빡거리는 상태가 바로 firmware recovery mode이다. 

컴퓨터의 네트워크설 
3) 컴퓨터의 네트워크 설정을 IP 주소 : 192.168.0.100, 서브넷 마스크 : 255.255.255.0, 기본 게이트웨이 : 192.168.0.1 로 설정한다. 다른 항목은 설정하지 않아도 된다.

컴퓨터와 공유기의 연결
4) 컴퓨터 네트워크 카드와 공유기의 LAN 포트를 랜 케이블로 연결한다. 공유기의 LAN 포트는 후면 패널에서 파란색 영역으로 표시되어 있고, 1, 2, 3, 4 라고 번호가 붙여진 곳이다. 4개의 포트 중에 어떤 포트를 사용해도 상관없다.

펌웨어 업데이트
5) 컴퓨터에서 인터넷 익스플로러를 실행하고(반드시 Internet Explorer이어야 한다. 기타 사파리, 파이어폭스, 크롬 브라우저를 사용해서는 안된다.), 주소창에 http://192.168.0.1 를 입력한다.
6) 펌웨어 업데이트 화면이 나오면, "Browse" 버튼을 누른 다음, 미리 다운받은 openwrt-ar71xx-generic-dir-825-b1-jffs2-factory.bin 펌웨어 파일을 선택하고, "Update"  버튼을 클릭한다. 
7) 화면에서 펌웨어 업데이트 진행과정이 %로 표시된다. 100%가 되고나서도 약 10 ~ 20초 정도를 더 기다리면, 자동으로 장비가 리부팅된다. (절대 어떤 일이 있더라도, 브라우저를 닫아버리거나, 공유기를 끄면 안된다. 컴퓨터도 건드리지 않는 것이 좋다.)

펌웨어 업데이트 확인
8) 공유기가 리부팅되는 과정중에 전면 패널의 전원 LED 가 주황색으로 깜빡거린 후에, 완전히 동작하면 주황색으로 켜진 상태가 유지된다. 컴퓨터의 네트워크 설정을 “자동으로 IP 주소 받기” 와 “자동으로 DNS 서버 주소 받기”로 설정한다. 그리고 명령어 창을 열고 ipconfig 명령을 내렸을 때, 컴퓨터의 IP 주소가 자동으로 192.168.1.144와 같은 192.168.1.x 대역을 가지고 있다면 정상적으로 펌웨어가 업데이트된 상황이다.

공유기의 관리자 암호 설정
9) OpenWRT는 처음 설치하면, 무조건 관리자 암호를 설정하도록 되어 있다.
 OpenWRT 공유기의 IP 주소는 192.168.1.1이며, 먼저 telnet을 통하여 관리자 암호를 설정한다. 

telnet 192.168.1.1
한 다음,
바로 로그인되면, passwd 명령어를 이용하여, 관리자 암호를 설정한다. 관리자 암호는 두 번 넣도록 되어 있다.
(XShell과 같은 자동 로그인되는 터미널 프로그램에서는 로그인 스크립트 인식을 꺼놓아야 한다. 왜냐하면, XShell과 같은 프로그램은 접속하는 순간, 로그인 스크립트를 실행하기 때문에, 정상적인 로그인이 되는 것이 아니라, 엉뚱하게도 패스워드가 틀렸으니, 패스워드를 바꾸라는 화면이 나온다.)

exit 명령어로 telnet 접속을 종료한다.
telnet 접속이 종료되면, telnet은 더 이상 사용할 수 없다. 오직 SSH로만 접속 가능하다.

D-Link DIR-825 공유기의 OpenWRT는 웹 인터페이스가 없으므로,(나중에 설치할 수는 있으나, 공유기 내부 디스크 공간 제약이 존재한다.) 모든 것을 SSH 접속으로 설정한다.

버팔로 WZR-HP-G300NH 제품은 펌웨어에 기본적으로 Luci 웹 인터페이스가 존재한다. 두 제품의 차이는 내부 램 영역의 사용 파티션 공간 때문에 생긴다.
DIR-825는 루트 파티션 영역이 5MB로 설정되고, WZR-HP-G300NH는 30MB로 설정되므로, 후자가 훨씬 많은 추가 패키지들을 설치할 수 있다. DIR-825는 Luci 웹 인터페이스를 설치하게 되면, 다른 기능들을 거의 설치할 수가 없다.

2. OpenWRT의 기본 설정 변경
SSH 클라이언트를 이용하여, IP 주소 : 192.168.1.1 , 포트번호 : 22 , 사용자 계정 : root 로 공유기로 SSH 로그인을 한다. 앞에서 설정한 패스워드를 사용한다. 

1) 쉘 명령어 alias 추가
쉘에서 디렉토리의 파일들을 보여주는 ls -la 명령어를 ll 명령어를 줄여서 쓸 수 있도록 설정한다.
/root 디렉토리에 .profile을 생성하고, 그 안에 alias 구문으로 설정하면 된다.
또는
/etc 디렉토리에 있는 profile 파일을 수정하면 된다.

Connecting to 192.168.1.1:22...
Connection established.
Escape character is '^@]'.

sh: /usr/bin/X11/xauth: not found


BusyBox v1.19.3 (2011-12-19 15:01:26 MST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 ATTITUDE ADJUSTMENT (bleeding edge, r29570) ----------
  * 1/4 oz Vodka      Pour all ingredients into mixing
  * 1/4 oz Gin        tin with ice, strain into glass.
  * 1/4 oz Amaretto
  * 1/4 oz Triple sec
  * 1/4 oz Peach schnapps
  * 1/4 oz Sour mix
  * 1 splash Cranberry juice
 -----------------------------------------------------
root@OpenWrt:/# cd
root@OpenWrt:~# vi .profile
alias ll='ls -la'

~
root@OpenWrt:~# sync
root@OpenWrt:~# source ./.profile 

다른 방법으로 /etc 디렉토리에 있는 profile 파일 수정하기

root@OpenWrt:~# cd /etc
root@OpenWrt:/etc# vi profile
#!/bin/sh
[ -f /etc/banner ] && cat /etc/banner
...
<중략>
...
[ -x /usr/bin/arp ] || arp() { cat /proc/net/arp; }
[ -z /bin/ldd ] || ldd() { LD_TRACE_LOADED_OBJECTS=1 $*; }
 
# Shell Command Alias
alias ll='ls -la'
~

2) 내부 LAN 네트워크 대역 변경
내부 LAN 네트워크 대역 192.168.1.1을 나만의 네트워크 대역으로 바꾼다.
다른 공유기와 혼란이 되지 않도록, C-Class 대역이 생소한 192.168.43.1 네트워크 대역으로 변경한다.

내부 LAN 네트워크 설정을 수정한다.

root@OpenWrt:/# cd /etc
root@OpenWrt:/etc# ll
drwxr-xr-x   13 root     root             0 Jan  1  1970 .
drwxr-xr-x   17 root     root             0 Dec 27 01:47 ..
lrwxrwxrwx    1 root     root             7 Dec 20 09:43 TZ -> /tmp/TZ
-rw-r--r--    1 root     root           589 Dec 19 21:57 banner
drwxr-xr-x    2 root     root             0 Jan  1  1970 config
drwxr-xr-x    2 root     root             0 Dec 19 21:57 crontabs
drwxr-xr-x    4 root     root             0 Dec 19 21:57 defconfig
-rwxr-xr-x    1 root     root          2671 Dec 19 21:02 diag.sh
-rw-r--r--    1 root     root          1368 Dec 19 22:04 dnsmasq.conf
drwx------    2 root     root             0 Jan  1  1970 dropbear
-rw-r--r--    1 root     root             0 Jan  1  1970 ethers
-rw-r--r--    1 root     root           139 Dec 19 22:06 firewall.user
lrwxrwxrwx    1 root     root            10 Dec 20 09:43 fstab -> /tmp/fstab
lrwxrwxrwx    1 root     root            19 Dec 20 09:43 functions.sh -> ../lib/functions.sh
-rw-r--r--    1 root     root            78 Jan  1  1970 fw_env.config
-rw-r--r--    1 root     root           123 Mar 21  2011 group
-rw-r--r--    1 root     root            20 Mar 21  2011 hosts
drwxr-xr-x    8 root     root             0 Dec 20 09:43 hotplug.d
-rw-r--r--    1 root     root          1201 Nov  5 23:38 hotplug2-common.rules
-rw-r--r--    1 root     root            80 Mar 21  2011 hotplug2-init.rules
-rw-r--r--    1 root     root           242 Dec 20 09:26 hotplug2.rules
drwxr-xr-x    2 root     root             0 Nov  9 21:52 init.d
-rw-r--r--    1 root     root           104 Jan  1  1970 inittab
drwxr-xr-x    2 root     root             0 Dec 20 09:42 modules-boot.d
drwxr-xr-x    2 root     root             0 Dec 20 09:29 modules.d
lrwxrwxrwx    1 root     root            12 Dec 20 09:43 mtab -> /proc/mounts
-rw-r--r--    1 root     root           163 Dec 20 09:14 opkg.conf
-rw-r--r--    1 root     root           190 Jan  1  1970 passwd
-rw-r--r--    1 root     root           190 Nov 18 00:28 passwd-
drwxr-xr-x    4 root     root             0 Dec 20 09:43 ppp
-rwxr-xr-x    1 root     root           888 Jul 23 18:38 preinit
-rw-r--r--    1 root     root           476 Aug 19 18:08 profile
-rw-r--r--    1 root     root          2478 Mar 21  2011 protocols
-rwxr-xr-x    1 root     root          1490 Nov  9 21:52 rc.common
drwxr-xr-x    2 root     root             0 Dec 20 09:43 rc.d
-rw-r--r--    1 root     root           132 Mar 21  2011 rc.local
lrwxrwxrwx    1 root     root            16 Dec 20 09:43 resolv.conf -> /tmp/resolv.conf
-rw-r--r--    1 root     root          3001 Mar 21  2011 services
-rw-r--r--    1 root     root           149 Jan  1  1970 shadow
-rw-r--r--    1 root     root           116 Dec 19 21:57 shadow-
-rw-r--r--    1 root     root             9 Mar 21  2011 shells
-rw-r--r--    1 root     root           976 Sep 19 05:24 sysctl.conf
-rw-r--r--    1 root     root           128 Mar 21  2011 sysupgrade.conf
drwxr-xr-x    2 root     root             0 Jan  1  1970 uci-defaults
root@OpenWrt:/etc# cd config
root@OpenWrt:/etc/config# ls
dhcp      dropbear  firewall  network   system    ubootenv  wireless
root@OpenWrt:/etc/config# ll
drwxr-xr-x    2 root     root             0 Jan  1  1970 .
drwxr-xr-x   13 root     root             0 Jan  1  1970 ..
-rw-r--r--    1 root     root           885 Dec 19 22:04 dhcp
-rw-r--r--    1 root     root           134 Dec 19 22:05 dropbear
-rw-r--r--    1 root     root          3631 Dec 19 22:06 firewall
-rw-r--r--    1 root     root           564 Jan  1  1970 network
-rw-r--r--    1 root     root           411 Jan  1  1970 system
-rw-r--r--    1 root     root             0 Jan  1  1970 ubootenv
-rw-r--r--    1 root     root           874 Jan  1  1970 wireless
root@OpenWrt:/etc/config# vi network

config 'interface' 'loopback'
        option 'ifname' 'lo'
        option 'proto' 'static'
        option 'ipaddr' '127.0.0.1'
        option 'netmask' '255.0.0.0'

config 'interface' 'lan'
        option 'ifname' 'eth0.1'
        option 'type' 'bridge'
        option 'proto' 'static'
        option 'ipaddr' '192.168.43.1'
        option 'netmask' '255.255.255.0'

config 'interface' 'wan'
        option 'ifname' 'eth1'
        option 'proto' 'dhcp'

config 'switch'
        option 'name' 'rtl8366s'
        option 'reset' '1'
        option 'enable_vlan' '1'

config 'switch_vlan'
        option 'device' 'rtl8366s'
        option 'vlan' '1'
        option 'ports' '0 1 2 3 5t'

~
root@OpenWrt:/etc/config# sync
root@OpenWrt:/etc/config# reboot
root@OpenWrt:/etc/config# 

공유기를 리부팅한 다음,
SSH 클라이언트를 이용하여, IP 주소 : 192.168.43.1로 다시 로그인해서, 변경된 네트워크 대역을 확인한다.

Connecting to 192.168.43.1:22...
Connection established.
Escape character is '^@]'.

sh: /usr/bin/X11/xauth: not found


BusyBox v1.19.3 (2011-12-19 15:01:26 MST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 ATTITUDE ADJUSTMENT (bleeding edge, r29570) ----------
  * 1/4 oz Vodka      Pour all ingredients into mixing
  * 1/4 oz Gin        tin with ice, strain into glass.
  * 1/4 oz Amaretto
  * 1/4 oz Triple sec
  * 1/4 oz Peach schnapps
  * 1/4 oz Sour mix
  * 1 splash Cranberry juice
 -----------------------------------------------------
root@OpenWrt:~# ifconfig
br-lan    Link encap:Ethernet  HWaddr 00:18:E7:DB:68:1E  
          inet addr:192.168.43.1  Bcast:192.168.43.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:360 errors:0 dropped:67 overruns:0 frame:0
          TX packets:88 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:27884 (27.2 KiB)  TX bytes:13178 (12.8 KiB)

eth0      Link encap:Ethernet  HWaddr 00:18:E7:DB:68:1E  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:432 errors:0 dropped:9 overruns:12 frame:0
          TX packets:103 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:40342 (39.3 KiB)  TX bytes:15765 (15.3 KiB)
          Interrupt:4 

eth0.1    Link encap:Ethernet  HWaddr 00:18:E7:DB:68:1E  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:382 errors:0 dropped:0 overruns:0 frame:0
          TX packets:94 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:31124 (30.3 KiB)  TX bytes:13574 (13.2 KiB)

eth1      Link encap:Ethernet  HWaddr 00:18:E7:DB:68:1F  
          inet addr:121.183.236.174  Bcast:121.183.236.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1222 errors:0 dropped:0 overruns:0 frame:0
          TX packets:109 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:81262 (79.3 KiB)  TX bytes:9851 (9.6 KiB)
          Interrupt:5 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3038 (2.9 KiB)  TX bytes:3038 (2.9 KiB)

3) 패키지 목록 업데이트
추가 패키지 설치를 위한 패키지 목록을 업데이트한다.

root@OpenWrt:~# opkg update
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/Packages.gz.
Inflating http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/snapshots.

4) USB 장치 마운트용 패키지 설치
USB 메모리스틱이나 USB 하드디스크 등을 공유기 뒷면 패널의 USB 포트에 연결하여 사용할 수 있도록 하는 패키지들을 설치한다. 홈서버로 사용되는 공유기는 내부 메모리 용량이 매우 작기 때문에, USB 메모리스틱과 같은 장치를 이용해서 저장공간을 확장할 수 있다.

root@OpenWrt:~# opkg install fdisk kmod-fs-ext4 kmod-usb2 kmod-usb-storage kmod-usb-storage-extras block-mount hotplug2
Installing fdisk (2.13.0.1-4) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/fdisk_2.13.0.1-4_ar71xx.ipk.
Installing kmod-fs-ext4 (2.6.39.4-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/kmod-fs-ext4_2.6.39.4-1_ar71xx.ipk.
Installing kmod-lib-crc16 (2.6.39.4-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/kmod-lib-crc16_2.6.39.4-1_ar71xx.ipk.
Package kmod-usb2 (2.6.39.4-1) installed in root is up to date.
Installing kmod-usb-storage (2.6.39.4-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/kmod-usb-storage_2.6.39.4-1_ar71xx.ipk.
Installing kmod-scsi-core (2.6.39.4-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/kmod-scsi-core_2.6.39.4-1_ar71xx.ipk.
Installing kmod-usb-storage-extras (2.6.39.4-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/kmod-usb-storage-extras_2.6.39.4-1_ar71xx.ipk.
Installing block-mount (0.2.0-7) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/block-mount_0.2.0-7_ar71xx.ipk.
Installing blkid (1.41.12-2) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/blkid_1.41.12-2_ar71xx.ipk.
Installing libuuid (1.41.12-2) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libuuid_1.41.12-2_ar71xx.ipk.
Installing libblkid (1.41.12-2) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libblkid_1.41.12-2_ar71xx.ipk.
Installing libext2fs (1.41.12-2) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libext2fs_1.41.12-2_ar71xx.ipk.
Installing libcom_err (1.41.12-2) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libcom_err_1.41.12-2_ar71xx.ipk.
Installing libpthread (0.9.32-98) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libpthread_0.9.32-98_ar71xx.ipk.
Installing swap-utils (2.13.0.1-4) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/swap-utils_2.13.0.1-4_ar71xx.ipk.
Package hotplug2 (1.0-beta-4) installed in root is up to date.
Configuring kmod-scsi-core.
Configuring kmod-usb-storage.
Configuring libpthread.
Configuring kmod-lib-crc16.
Configuring libcom_err.
Configuring libblkid.
Configuring libuuid.
Configuring libext2fs.
Configuring blkid.
Configuring swap-utils.
Configuring block-mount.
Configuring kmod-fs-ext4.
Configuring fdisk.
Configuring kmod-usb-storage-extras.
root@OpenWrt:~# sync

테스트로 1GB 용량의 USB 메모리스틱을 꽂고, 마운트가 정상적으로 되는지 확인한다.(USB 메모리스틱에는 Linux용의 파티션이 2개가 존재한다.)

root@OpenWrt:~# mount
rootfs on / type rootfs (rw)
/dev/root on / type jffs2 (rw,noatime)
proc on /proc type proc (rw,noatime)
sysfs on /sys type sysfs (rw,noatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime,size=30964k)
tmpfs on /dev type tmpfs (rw,noatime,size=512k,mode=755)
devpts on /dev/pts type devpts (rw,noatime,mode=600)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
none on /proc/bus/usb type usbfs (rw,relatime)
root@OpenWrt:~# fdisk -l

Disk /dev/mtdblock0: 0 MB, 262144 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x19010010

Disk /dev/mtdblock0 doesn't contain a valid partition table
...
<중략>
...
Disk /dev/mtdblock6: 6 MB, 6356992 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x2b36ce10

Disk /dev/mtdblock6 doesn't contain a valid partition table

Disk /dev/sda: 1012 MB, 1012924416 bytes
32 heads, 61 sectors/track, 1013 cylinders
Units = cylinders of 1952 * 512 = 999424 bytes
Disk identifier: 0xb0bcd68e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         913      891057+  83  Linux
/dev/sda2             914        1013       97600   82  Linux swap / Solaris
root@OpenWrt:~# mount /dev/sda1 /mnt
root@OpenWrt:~# mount
rootfs on / type rootfs (rw)
/dev/root on / type jffs2 (rw,noatime)
proc on /proc type proc (rw,noatime)
sysfs on /sys type sysfs (rw,noatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime,size=30964k)
tmpfs on /dev type tmpfs (rw,noatime,size=512k,mode=755)
devpts on /dev/pts type devpts (rw,noatime,mode=600)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
none on /proc/bus/usb type usbfs (rw,relatime)
/dev/sda1 on /mnt type ext2 (rw,relatime,user_xattr,barrier=1,data=ordered)

5) 홈서버의 동적 DNS 사용을 위한 설치 및 설정
동적 DNS 설정을 위해서 패키지를 설치하고, 설정한다.

root@OpenWrt:/mnt# opkg install ddns-scripts
Installing ddns-scripts (1.0.0-17) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/ddns-scripts_1.0.0-17_all.ipk.
Configuring ddns-scripts.
root@OpenWrt:/mnt# cd /etc/config
root@OpenWrt:/etc/config# mv ddns /root/
root@OpenWrt:/etc/config# vi ddns
config 'service' 'MyDDNS'
option 'force_unit' 'hours'
option 'enabled' '1'
option 'service_name' 'freedns.afraid.org'
option 'domain' '할당받은 도메인명'
option 'username' '사용자 ID'
option 'password' '도메인용 키 값'
option 'ip_source' 'network'
option 'ip_network' 'wan'
option 'check_interval' '1'
option 'check_unit' 'hours'
option 'force_interval' '72'
~
root@OpenWrt:/etc/config# sync

6) OpenVPN 설치 및 설정
OpenVPN 패키지를 설치하고, 설정한다.

root@OpenWrt:/etc/config# opkg install openvpn
Installing openvpn (2.2.1-4) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/openvpn_2.2.1-4_ar71xx.ipk.
Installing kmod-tun (2.6.39.4-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/kmod-tun_2.6.39.4-1_ar71xx.ipk.
Installing libopenssl (1.0.0e-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libopenssl_1.0.0e-1_ar71xx.ipk.
Installing zlib (1.2.5-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/zlib_1.2.5-1_ar71xx.ipk.
Installing liblzo (2.05-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/liblzo_2.05-1_ar71xx.ipk.
Configuring kmod-tun.
Configuring zlib.
Configuring libopenssl.
Configuring liblzo.
Configuring openvpn.
root@OpenWrt:/etc/config# mv openvpn /root/
root@OpenWrt:/etc/config# vi openvpn
config 'openvpn' 'MyOpenVPNServer'
    option 'server' '10.100.200.0 255.255.255.0'
    option 'dev' 'tun0'
    option 'proto' 'tcp'
    option 'port' '1194'
    option 'keepalive' '10 120'
    option 'ca' '/etc/openvpn/ca.crt'
    option 'cert' '/etc/openvpn/server.crt'
    option 'key' '/etc/openvpn/server.key'
    option 'dh' '/etc/openvpn/dh1024.pem'
    option 'status' '/tmp/openvpn-status.log'
    option 'verb' '3'
    option 'enable' '1'
~
root@OpenWrt:/etc/config# sync

인증서 파일을 /etc/openvpn 디렉토리에 복사한다.

root@OpenWrt:/etc/openvpn# ll
drwxr-xr-x    2 root     root             0 Dec 27 02:13 .
drwxr-xr-x   14 root     root             0 Dec 27 02:10 ..
-rw-r-----    1 root     root          1346 Dec 27 02:13 ca.crt
-rw-r-----    1 root     root          1456 Dec 27 02:13 cert.pem
-rw-r-----    1 root     root           424 Dec 27 02:13 dh.pem
-rw-r-----    1 root     root           887 Dec 27 02:13 key.pem
root@OpenWrt:/etc/openvpn# sync

인증서 파일과 디렉토리는 접근권한을 잘 설정해준다.

root@OpenWrt:/etc/openvpn# chmod 600 *
root@OpenWrt:/etc/openvpn# ll
drwxr-xr-x    2 root     root             0 Dec 27 02:13 .
drwxr-xr-x   14 root     root             0 Dec 27 02:10 ..
-rw-------    1 root     root          1346 Dec 27 02:13 ca.crt
-rw-------    1 root     root          1456 Dec 27 02:13 cert.pem
-rw-------    1 root     root           424 Dec 27 02:13 dh.pem
-rw-------    1 root     root           887 Dec 27 02:13 key.pem
root@OpenWrt:/etc/openvpn# cd ..
root@OpenWrt:/etc# chmod 700 openvpn

7) OpenVPN을 위한 방화벽 설정 및 기본 방화벽 추가 설정
OpenVPN 방화벽 룰, 외부 인터넷망에서 SSH 접근 방화벽 룰과 외부 FTP 접근, PPTP 방화벽룰까지 포함한다.
그리고, VPN 접속시에 공유기 웹 인터페이스 접근도 추가(DIR-825는 웹 인터페이스가 없으므로, 필요없다.)

root@OpenWrt:/etc# vi firewall.user 
# This file is interpreted as shell script.
# Put your custom iptables rules here, they will
# be executed with each firewall (re-)start.
                                      
# OpenVPN Remote Access & Routing Rule           
iptables -I INPUT 1 -p udp --dport 1194 -j ACCEPT
iptables -I INPUT 1 -p tcp --dport 1194 -j ACCEPT       
iptables -I FORWARD 1 --source 10.100.200.0/24 -j ACCEPT  
iptables -I FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -o eth0 -j ACCEPT                          
iptables -t nat -A POSTROUTING -s 10.100.200.0/24 -o eth0 -j MASQUERADE   
                                                                          
# Allow SSH Remote Access                                 
iptables -A input_rule -i eth1 -p tcp --dport 22 -j ACCEPT
                                                          
# Allow FTP Remote Access                                 
#iptables -A input_rule -i eth1 -p tcp --dport 21 -j ACCEPT 
                                                          
# Allow VPN client's Web Interface Access              
iptables -I INPUT 1 -i tun0 -p tcp --dport 80 -j ACCEPT
                                                       
# PPTP Server Setting                            
iptables -I INPUT 1 -p tcp --dport 1723 -j ACCEPT
iptables -I INPUT 1 -p gre -j ACCEPT             
                                     
iptables -I INPUT 1 -i ppp+ -j ACCEPT
iptables -I FORWARD -i ppp+ -j ACCEPT
iptables -I FORWARD -o ppp+ -j ACCEPT 
iptables -I OUTPUT 1 -o ppp+ -j ACCEPT              
#iptables -A input_wan -p tcp --dport 1723 -j ACCEPT
#iptables -A input_wan -p gre -j ACCEPT             
                                         
#iptables -A input_rule -i ppp+ -j ACCEPT     
#iptables -A forwarding_rule -i ppp+ -j ACCEPT
#iptables -A forwarding_rule -o ppp+ -j ACCEPT
#iptables -A output_rule -o ppp+ -j ACCEPT    
~                                         
root@OpenWrt:/etc# sync

마지막으로 OpenVPN 서비스를 매 부팅때마다 자동실행되도록 설정하고, 바로 실행한다.

root@OpenWrt:/etc# sync
root@OpenWrt:/etc# /etc/init.d/openvpn enable
root@OpenWrt:/etc# /etc/init.d/openvpn start

OpenVPN 서비스의 실행여부는 ps 명령어로 확인가능하고, 동작에 따른 로그는 logread 명령어로 확인할 수 있다.

root@OpenWrt:/etc# ps elf
  PID USER       VSZ STAT COMMAND
    1 root      1480 S    init
    2 root         0 SW   [kthreadd]
    3 root         0 SW   [ksoftirqd/0]
    4 root         0 SW   [kworker/0:0]
    5 root         0 SW   [kworker/u:0]
    6 root         0 SW   [rcu_kthread]
    7 root         0 SW<  [khelper]
   54 root         0 SW   [sync_supers]
   56 root         0 SW   [bdi-default]
   58 root         0 SW<  [kblockd]
   88 root         0 SW   [kswapd0]
  135 root         0 SW   [fsnotify_mark]
  149 root         0 SW<  [ar71xx-spi]
  162 root         0 SW   [mtdblock0]
  167 root         0 SW   [mtdblock1]
  172 root         0 SW   [mtdblock2]
  177 root         0 SW   [mtdblock3]
  182 root         0 SW   [mtdblock4]
  187 root         0 SW   [mtdblock5]
  192 root         0 SW   [mtdblock6]
  335 root         0 SW   [kworker/0:1]
  522 root         0 SW<  [ipolldevd]
  566 root         0 SWN  [jffs2_gcd_mtd3]
  573 root      1480 S    init
  607 root         0 SW<  [cfg80211]
  619 root         0 SW   [khubd]
  690 root      1484 S    /sbin/syslogd -C16
  692 root      1464 S    /sbin/klogd
  694 root       804 S    /sbin/hotplug2 --override --persistent --set-worker
 1303 root      1132 S    /usr/sbin/dropbear -P /var/run/dropbear.1.pid -p 22
 1433 root      1484 S    /sbin/udhcpc -t 0 -i eth1 -b -p /var/run/dhcp-eth1.p
 1499 nobody     928 S    /usr/sbin/dnsmasq -K -D -y -Z -b -E -s lan -S /lan/
 1510 root      1476 S    /sbin/watchdog -t 5 /dev/watchdog
 1514 root      1480 S    /usr/sbin/ntpd -n -p 0.openwrt.pool.ntp.org -p 1.ope
 1517 root      1196 R    /usr/sbin/dropbear -P /var/run/dropbear.1.pid -p 22
 1518 root      1484 S    -ash
 1752 root         0 SW   [scsi_eh_0]
 1754 root         0 SW   [usb-storage]
 1761 root         0 SW   [kworker/u:2]
 1891 root         0 SW   [jbd2/sda1-8]
 1892 root         0 SW<  [ext4-dio-unwrit]
 2075 root         0 SW   [flush-mtd-unmap]
 2076 root         0 SW   [flush-8:0]
 2091 root      3064 S    /usr/sbin/openvpn --syslog openvpn(MyOpenVPNServer)
 2092 root       804 S    /sbin/hotplug2 --override --persistent --set-worker
 2105 root      1472 R    ps elf
root@OpenWrt:/etc# logread
...
Dec 27 02:26:22 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: OpenVPN 2.2.1 mips-openwrt-linux [SSL] [LZO2] [EPOLL] built on Dec 19 2011
Dec 27 02:26:22 OpenWrt daemon.warn openvpn(MyOpenVPNServer)[2091]: NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: Diffie-Hellman initialized with 2048 bit key
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: TLS-Auth MTU parms [ L:1543 D:140 EF:40 EB:0 ET:0 EL:0 ]
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: Socket Buffers: R=[87380->131072] S=[16384->131072]
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: TUN/TAP device tun0 opened
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: TUN/TAP TX queue length set to 100
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: /sbin/ifconfig tun0 10.100.200.1 pointopoint 10.100.200.2 mtu 1500
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: /sbin/route add -net 10.100.200.0 netmask 255.255.255.0 gw 10.100.200.2
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: Data Channel MTU parms [ L:1543 D:1450 EF:43 EB:4 ET:0 EL:0 ]
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: Listening for incoming TCP connection on [undef]:1194
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: TCPv4_SERVER link local (bound): [undef]:1194
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: TCPv4_SERVER link remote: [undef]
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: MULTI: multi_init called, r=256 v=256
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: IFCONFIG POOL: base=10.100.200.4 size=62
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: MULTI: TCP INIT maxclients=1024 maxevents=1028
Dec 27 02:26:23 OpenWrt daemon.notice openvpn(MyOpenVPNServer)[2091]: Initialization Sequence Completed
root@OpenWrt:/etc# 

7) lsof 패키지 설치
공유기의 프로세스 감시나 기타 설정등에 대한 정보를 자세히 알기 위해서는,
lsof 패키지를 설치하는 것이 좋다.

lsof 패키지를 설치한 다음에, 인터넷 열린 포트들에 대한 정보를 확인한다.

root@OpenWrt:/etc# opkg install lsof
Installing lsof (4.81-2) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/lsof_4.81-2_ar71xx.ipk.
Installing librpc (0.9.32-rc2-0a2179bbc0844928f2a0ec01dba93d9b5d6d41a7) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/librpc_0.9.32-rc2-0a2179bbc0844928f2a0ec01dba93d9b5d6d41a7_ar71xx.ipk.
Configuring librpc.
Configuring lsof.

root@OpenWrt:/etc# lsof -i
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
dropbear 1303   root    3u  IPv4   1460      0t0  TCP *:ssh (LISTEN)
dnsmasq  1499 nobody    5u  IPv4   1566      0t0  UDP *:bootps 
dnsmasq  1499 nobody    6u  IPv4   1570      0t0  UDP *:domain 
dnsmasq  1499 nobody    7u  IPv4   1571      0t0  TCP *:domain (LISTEN)
dropbear 1517   root    7u  IPv4   1684      0t0  TCP localhost:6010 (LISTEN)
openvpn  2091   root    5u  IPv4   2476      0t0  TCP *:openvpn (LISTEN)

8) PPTP 서비스 설치
아이폰과 같은 스마트폰에서 VPN 사용을 위한 PPTP 서비스를 설치한다.
pptpd 패키지 뿐만 아니라, MPPE 지원도 설치해야 한다.
root@OpenWrt:/etc/config# opkg install kmod-mppe
Installing kmod-mppe (2.6.32.27-1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/kmod-mppe_2.6.32.27-1_ar71xx.ipk.
Installing kmod-crypto-sha1 (2.6.32.27-1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/kmod-crypto-sha1_2.6.32.27-1_ar71xx.ipk.
Configuring kmod-crypto-sha1.
Configuring kmod-mppe.
root@OpenWrt:/etc/config# opkg install pptpd    
Installing pptpd (1.3.4-2) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/pptpd_1.3.4-2_ar71xx.ipk.
Installing kmod-gre (2.6.32.27-1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/kmod-gre_2.6.32.27-1_ar71xx.ipk.
Configuring kmod-gre.
Configuring pptpd.

PPTP와 관련된 설정파일은 사용자 ID와 패스워드 설정을 위해서 /etc/ppp/chap-secrets 파일과 서비스 dns 지정을 위한 /etc/ppp/options.pptpd 파일을 설정한다.

chap-secrets 파일에는 사용자명과 패스워드를 평문으로 입력한다.
PROVIDER는 아무 이름이나 지정하면 되고, IPADDRESS는 *를 지정한다.

root@OpenWrt:/etc/ppp# vi chap-secrets 
#USERNAME  PROVIDER  PASSWORD  IPADDRESS
pptp_user1    pptp-server     user-pw1        *
pptp_user2    pptp-server     user-pw2        *
~

options.pptpd 파일내에 있는 주석처리된 ms-dns 항목에 공유기의 IP 주소, 여기 예제에서는 192.168.43.1을 지정해서 추가한다.

root@OpenWrt:/etc/ppp# vi options.pptpd
#debug
#logfile /tmp/pptp-server.log
172.16.1.1:
auth
name "pptp-server"
lcp-echo-failure 3
lcp-echo-interval 60
default-asyncmap
mtu 1482
mru 1482
nobsdcomp
nodeflate
#noproxyarp
#nomppc
mppe required,no40,no56,stateless
require-mschap-v2
refuse-chap
refuse-mschap
refuse-eap
refuse-pap
ms-dns 192.168.43.1
#plugin radius.so
#radius-config-file /etc/radius.conf
~
root@OpenWrt:/etc/ppp# sync

PPTP 서비스를 매 부팅때마다 자동실행되도록 설정하고, 바로 실행한다.
root@OpenWrt:/etc/ppp# /etc/init.d/pptpd enable
root@OpenWrt:/etc/ppp# /etc/init.d/pptpd start

9) FTP 와 SFTP 서비스 설치
추가적으로 vsftpd 와 openssh-sftp-server 를 설치한다.
FTP 서버와 SFTP 접속을 가능하도록 한다.

root@OpenWrt:/etc# opkg install vsftpd
Installing vsftpd (2.3.4-3) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/vsftpd_2.3.4-3_ar71xx.ipk.
Configuring vsftpd.

root@OpenWrt:/etc# opkg install openssh-sftp-server
Installing openssh-sftp-server (5.9p1-4) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/openssh-sftp-server_5.9p1-4_ar71xx.ipk.
Configuring openssh-sftp-server.
root@OpenWrt:/etc# opkg files openssh-sftp-server
Package openssh-sftp-server (5.9p1-4) is installed on root and has the following files:
/usr/libexec/sftp-server
/usr/lib/sftp-server
 
FTP 설정은 /etc/vsftpd.conf 파일에서 한다.
root@MyRouter:~# cat /etc/vsftpd.conf 
background=YES
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
check_shell=NO
#chroot settings
chroot_local_user=NO
#passwd_chroot_enable=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#dirmessage_enable=YES
ftpd_banner=FTP Server
session_support=NO
#syslog_enable=YES
#userlist_enable=YES
#userlist_deny=NO
#userlist_file=/etc/vsftpd.users
#xferlog_enable=YES
#xferlog_file=/var/log/vsftpd.log
#xferlog_std_format=YES
root@MyRouter:~# 

ftp 사용자들은 chroot로 접근제어를 걸어준다.
그 사용자들의 목록은 /etc/vsftpd/chroot_list 적는다.
ftp 사용자들이 ftp로 공유기에 있는 중요 설정파일들을 모두 볼 수 있으므로, 반드시 chroot가 필요하다.(패스워드 해킹도 가능)

root@MyRouter:~# cat /etc/vsftpd/chroot_list 
ftp
root@MyRouter:~#  

ftp 사용자들의 계정은 /etc/passwd 에 수록한다. (버팔로 제품은 /etc/passwd 파일만이 존재하지만, DIR-825는 passwd와 shadow 파일이 존재한다. DIR-825에서는 계정정보를 /etc/passwd와 /etc/shadow 파일 모두에 적어주어야 한다.)
root@MyRouter:~# cat /etc/passwd
...
ftp:$1$agmhQqLM$0CjSWAbJnK4gWIyIwC03i.:55:55:ftp:/home/ftp:/bin/false
root@MyRouter:~#   

패스워드 필드를 비워둔 상태에서 생성하고, root가 passwd 명령어로 패스워드를 넣어주면 된다.
ftp 사용자들이 shell 접속(ssh와 sftp)이 불가하도록, /bin/false를 쉘로 지정해둔다.

root@OpenWrt:~# cd /etc/
root@OpenWrt:/etc# ll
drwxr-xr-x   17 root     root          4096 Dec 29 00:35 .
drwxr-xr-x   17 root     root          4096 Dec 29 00:34 ..
lrwxrwxrwx    1 root     root             7 Dec 27 05:56 TZ -> /tmp/TZ
drwxr-xr-x    3 root     root          4096 Dec 27 07:27 apache
-rw-r--r--    1 root     root           589 Dec 19 21:57 banner
-rw-r--r--    1 root     root           232 Dec 27 08:53 blkid.tab
-rw-r--r--    1 root     root           232 Dec 27 08:46 blkid.tab.old
drwxr-xr-x    2 root     root          4096 Dec 27 05:56 config
drwxr-xr-x    2 root     root          4096 Dec 19 21:57 crontabs
drwxr-xr-x    4 root     root          4096 Dec 27 05:56 defconfig
-rwxr-xr-x    1 root     root          2671 Dec 19 21:02 diag.sh
-rw-r--r--    1 root     root          1368 Dec 19 22:04 dnsmasq.conf
drwx------    2 root     root          4096 Dec 27 05:56 dropbear
-rw-r--r--    1 root     root            38 Dec 19 21:58 e2fsck.conf
-rw-r--r--    1 root     root             0 Jan  1  1970 ethers
-rw-r--r--    1 root     root          1460 Dec 27 07:34 firewall.user
lrwxrwxrwx    1 root     root            10 Dec 27 05:56 fstab -> /tmp/fstab
lrwxrwxrwx    1 root     root            19 Dec 27 05:56 functions.sh -> ../lib/functions.sh
-rw-r--r--    1 root     root            78 Jan  1  1970 fw_env.config
-rw-r--r--    1 root     root           123 Mar 21  2011 group
-rw-r--r--    1 root     root            20 Mar 21  2011 hosts
drwx------    9 root     root          4096 Dec 27 05:56 hotplug.d
-rw-r--r--    1 root     root          1201 Nov  5 23:38 hotplug2-common.rules
-rw-r--r--    1 root     root            80 Mar 21  2011 hotplug2-init.rules
-rw-r--r--    1 root     root           242 Dec 20 09:26 hotplug2.rules
drwxr-xr-x    2 root     root          4096 Dec 28 08:11 init.d
-rw-r--r--    1 root     root           104 Jan  1  1970 inittab
drwxr-xr-x    2 root     root          4096 Dec 27 07:29 lighttpd
drwxr-xr-x    2 root     root          4096 Dec 27 05:56 modules-boot.d
drwxr-xr-x    2 root     root          4096 Dec 27 05:56 modules.d
lrwxrwxrwx    1 root     root            12 Dec 27 05:56 mtab -> /proc/mounts
drwx------    2 root     root          4096 Dec 27 05:56 openvpn
-rw-r--r--    1 root     root           163 Dec 20 09:14 opkg.conf
-rw-r--r--    1 root     root           190 Dec 29 00:35 passwd
-rw-r--r--    1 root     root           190 Jan  1  1970 passwd-
drwxr-xr-x    4 root     root          4096 Dec 27 05:56 ppp
-rw-r--r--    1 root     root           128 Dec 20 07:12 pptpd.conf
-rwxr-xr-x    1 root     root           888 Jul 23 18:38 preinit
-rw-r--r--    1 root     root           518 Dec 27 02:21 profile
-rw-r--r--    1 root     root          2478 Mar 21  2011 protocols
-rwxr-xr-x    1 root     root          1490 Nov  9 21:52 rc.common
drwxr-xr-x    2 root     root          4096 Dec 27 08:30 rc.d
-rw-r--r--    1 root     root           132 Mar 21  2011 rc.local
lrwxrwxrwx    1 root     root            16 Dec 27 05:56 resolv.conf -> /tmp/resolv.conf
-rw-r--r--    1 root     root          3001 Mar 21  2011 services
-rw-r--r--    1 root     root           186 Dec 29 00:35 shadow
-rw-r--r--    1 root     root           149 Jan  1  1970 shadow-
-rw-r--r--    1 root     root             9 Mar 21  2011 shells
-rw-r--r--    1 root     root           976 Sep 19 05:24 sysctl.conf
-rw-r--r--    1 root     root           128 Mar 21  2011 sysupgrade.conf
drwxr-xr-x    2 root     root          4096 Jan  1  1970 uci-defaults
drwxr-xr-x    2 root     root          4096 Dec 29 00:33 vsftpd
-rw-r--r--    1 root     root           488 Dec 29 00:33 vsftpd.conf
 
root@OpenWrt:/etc# cat /etc/passwd
root:x:0:0:root:/root:/bin/ash
daemon:*:1:1:daemon:/var:/bin/false
ftp:x:55:55:ftp:/home/ftp:/bin/false
network:*:101:101:network:/var:/bin/false
nobody:*:65534:65534:nobody:/var:/bin/false
 
root@OpenWrt:/etc# cat /etc/shadow
root:$1$kzAg4U0J$F27Nb/oEdcgd7lU3xffGdi/:0:0:99999:7:::
daemon:*:0:0:99999:7:::
ftp:$1$Wp92U.qZ$j9zEwEQ0q6eEt/Sl45XJz1:15337:0:99999:7:::
network:*:0:0:99999:7:::
nobody:*:0:0:99999:7:::
root@OpenWrt:/etc# 

10) ntp를 이용한 라우터의 시간 맞추기
/etc/TZ에 설정된 UTC 시간을 GMT-9 Seoul 시간으로  변경한다.

root@OpenWrt:~# cat /etc/TZ
UTC
root@OpenWrt:~# date
Thu Dec 29 05:25:50 UTC 2011
root@OpenWrt:~# echo GMT-09 > /etc/TZ
root@OpenWrt:~# cat /etc/TZ
GMT-09 
root@OpenWrt:~# date
Thu Dec 29 14:26:15 GMT 2011

영구적인 변경을 위해서는, /etc/config/system 설정파일을 다음과 같이 변경한다.
time server들을 아래와 같이 설정하면 된다.
 
root@OpenWrt:~# cd /etc/
root@OpenWrt:/etc# cd config
root@OpenWrt:/etc/config# vi system

config 'system'
        option 'hostname' 'OpenWrt'
        option 'timezone' 'GMT-9' 

config 'timeserver' 'ntp'
        list 'server' 'time.kriss.re.kr'
        list 'server' '3.kr.pool.ntp.org'
        list 'server' '3.asia.pool.ntp.org'
        list 'server' '0.asia.pool.ntp.org'
        list 'server' '0.openwrt.pool.ntp.org'
        list 'server' '1.openwrt.pool.ntp.org'
        list 'server' '2.openwrt.pool.ntp.org'
        list 'server' '3.openwrt.pool.ntp.org'

...
<중략>
...
------------------------------------------------------------

추가적으로 ssh 포트번호를 8080번으로 변경하고,
방화벽에서 8080번을 외부접속 가능하도록 풀어주면, 완벽할 것으로 예상.

Posted by 훅크선장
, |