공유기에 OpenWrt를 올리고 USB 하드를 연결하였으니 FTP 서버를 구축해 보도록 하겠다.


패키지 업데이트

아래와 같이 패키지 목록을 업데이트 받는다.

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/attitude_adjustment.
root@OpenWrt:~#


vsftp 패키지 설치

다음과 같이 vsftp 패키지를 설치한다.

root@OpenWrt:~# opkg install vsftpd
Installing vsftpd (3.0.0-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/vsftpd_3.0.0-1_ar71xx.ipk.
Configuring vsftpd.
root@OpenWrt:~#


설정파일 변경

설정파일을 변경하기 위해 편집기로 연다.

root@OpenWrt:/# vi /etc/vsftpd.conf


아래와 같은 설정이 되도록 한다.

background=YES
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
check_shell=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
#dirmessage_enable=YES
ftpd_banner=Welcome to FTP service.
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


ftp 사용자 추가

다음과 같은 명령어로 passwd 파일을 편집한다. root 계정으로만 접속하길 원하면 사용자 추가 작업은 불필요하다.

root@OpenWrt:~# vi /etc/passwd


아래와 같이 ftpuser 계정 의 홈디렉토리를 변경한다. ftpuser 계정이 없으면 추가한다.

root:x:0:0:root:/root:/bin/ash
daemon:*:1:1:daemon:/var:/bin/false
ftpuser:x:55:55:ftp:/mnt/usbdrive:/bin/false
network:*:101:101:network:/var:/bin/false
nobody:*:65534:65534:nobody:/var:/bin/false
smbuser:*:1000:65534:smbuser:/mnt/usbdrive:/bin/false


다음과 같은 명령어로 shadow 파일을 편집한다.

root@OpenWrt:~# vi /etc/shadow


아래와 같이 ftpuser 계정정보를 추가한다.

daemon:*:0:0:99999:7:::
ftpuser:$1$lA5tuimw$H1Ps8vppQuNvNaUI2NrXf1:15539:0:99999:7:::
network:*:0:0:99999:7:::
nobody:*:0:0:99999:7:::


ftpuser의 패스워드를 변경해준다.

root@OpenWrt:~# passwd ftpuser Changing password for ftpuser New password:


chroot 대상 리스트 디렉토리 및 파일 생성

chroot를 적용할 대상을 지정하는 파일을 다음과 같이 생성한다. chroot에 대해서는 검색을 통해 지식을 습득하길 바란다.

root@OpenWrt:/# mkdir /etc/vsftpd
root@OpenWrt:/# vi /etc/vsftpd/chroot_list


다음과 같이 chroot를 적용할 사용자를 적는다.

ftpuser


외부 방화벽룰 추가

외부에서 접속할 수 있도록 방화벽 파일을 편집한다.

root@OpenWrt:/# vi /etc/firewall.user


다음과 같이 추가한다.

# vsftpd service
iptables -I INPUT 1 -i eth0.2 -p tcp --dport 21 -j ACCEPT


데몬 시작

vsftpd 데몬을 시작한다. 그리고 서비스로 등록해준다.

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


Listen 포트 확인

아래와 같이 리슨포트를 확인해 보면 vsftpd가 21번 포트를 Listen하고 있는 것을 확인할 수 있다.

root@OpenWrt:~# netstat -antp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2367/vsftpd tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 1174/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1131/dropbear tcp 0 300 xx.xx.xx.xxx:22 xx.xx.xx.xxx:31664 ESTABLISHED 1370/dropbear tcp 0 0 xx.xx.xx.xxx:22 xx.xx.xx.xxx:55403 ESTABLISHED 1301/dropbear netstat: /proc/net/tcp6: No such file or directory root@OpenWrt:~#


이제 Ftp 클라이언트로 접속하면 사용할 수 있다. 혹 외부에서 접속할 수 없다면 덧글에 신기루님이 달아놓으신 덧글을 참고하여 옵션을 한번 줘보시길 바란다.


참고사이트 : http://hook.tistory.com/entry/D-Link-DIR-825-%EA%B3%B5%EC%9C%A0%EA%B8%B0%EC%9D%98-OpenWRT%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%ED%99%88%EC%84%9C%EB%B2%84-%EB%A7%8C%EB%93%A4%EA%B8%B0



2012.10.30 vsftpd.conf에 설정옵션 추가

저작자 표시 비영리 변경 금지
신고
Posted by Life 스토리
TAG ,