'LinkStation'에 해당되는 글 15건

  1. 2009.10.31 Debian Etch에서 apt-get update시 public key 오류 by Ji-seong
  2. 2008.02.22 USB 스피커로 음악 듣기 by Ji-seong
  3. 2008.02.22 LS2에 APC 적용하기 by Ji-seong
  4. 2008.02.22 LS2 빠른 미러 by Ji-seong
  5. 2008.02.22 rsync와 deltacopy 를 이용하여 백업하기 by Ji-seong
  6. 2008.02.22 openlink,freelink 펌웨어 압축 패스워드 by Ji-seong
  7. 2008.02.22 LS2 FreeLink에 webmin 설치하기 by Ji-seong
  8. 2008.02.22 LS2 FreeLink에 samba, proftpd 설치하기 by Ji-seong
  9. 2008.02.22 LS2 FreeLink에 APM 설치하기 by Ji-seong
  10. 2008.02.22 LS2에 FreeLink 설치하기 3 by Ji-seong

apt-get update를 할 때.. (혹은 dselect에서 update..)

W: There are no public key available for the following key IDs:
A70DAF536070D3A1
W: You may want to run apt-get update to correct these problems

위와 같은 오류 발생..
정확히는 모르겠으나 gpg-key를 변경했다는 것 같으니 바꿔주자..

# gpg --keyserver wwwkeys.eu.pgp.net --recv-keys A70DAF536070D3A1
gpg: directory `/root/.gnupg' created
gpg: new configuration file `/root/.gnupg/gpg.conf' created
gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: keyring `/root/.gnupg/pubring.gpg' created
gpg: requesting key 6070D3A1 from hkp server wwwkeys.eu.pgp.net
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 6070D3A1: public key "Debian Archive Automatic Signing Key (4.0/etch) <ftpmaster@debian.org>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1
# apt-key add /root/.gnupg/pubring.gpg
OK

A70DAF536070D3A1 대신 위 오류 메시지에 키값을 입력해주면 된다..

이제 정상적인 업데이트가 가능하다.

Posted by Ji-seong


링크스테이션에서도 쉽게 음악을 들을 수 있더군요.


헤드폰에 딸려온 plantronics 의 USB 모듈을(마이크 입력단자와 헤드폰 단자가 있는) 이용해서 테스트 해봤습니다.


madplay를 사용하면 mp3는 잘 나오는 것 같습니다만 mplayer 는 잘 안되더군요.

0.5초 소리 나고 몇초 쉬고.. mplayer 사용과 모듈 자동 로드는 좀 더 찾아봐야 할 것 같습니다.


-----------------------------------------------------------------------


- madplay 설치 (이건 프로그램 설치이므로 처음 한번만..)
apt-get install madplay

- 모듈 올리기
insmod audio

- 음악듣기
madplay --tty-control ./mp3/*.mp3


Posted by Ji-seong


새벽늑대님께서 APC 설치법을 올리셨길래.. LS2에도 적용해봤습니다.

저는 새벽늑대님보다 더 불친절하니 친절한 주석은 없습니다.

제 환경은 apache 1.34 php 5.20 이고, apt-get install 로 설치한 것입니다.

먼저 필요한 APC를 다운 받습니다.

http://pecl.php.net/package/APC


APC를 설치하기에 필요한 파일을 확인 합니다.

whereis phpize
whereis php-config
whereis apxs
위의 세 파일이 있어야 DSO 모드로 apc를 설치할 수 있습니다. apache, php를 소스로 설치했다면 그에 맞게 하시면 될겁니다.

phpize, php-config는 php5-dev에 들어있습니다. php4 버전도 비슷할 겁니다. apxs는  apache-dev에 있습니다. 위의 파일이 없다면 apt-get install php5-dev, apache-dev로 설치하세요.


이제 다운받은 APC의 압축을 해제하고 설치합니다. 설치 과정은 다음과 같습니다.

tar xzvf APC-3.0.16.tgz

cd APC-3.0.16
phpize
./configure --enable-apc --enable-apc-mmap -with-apxs=/usr/bin/apxs --with-php-config=/usr/bin/php-config
make
make install

apc.so가 /usr/lib/php5/20060613+lfs/ 에 복사되었는지 확인합니다. php4 버전이면 위치가 틀릴것입니다.

/etc/php5/conf.d/apc.ini 파일을 다음과 같이 작성합니다.

extension=apc.so
apc.enabled=1
apc.shm_segments=1
apc.shm_size=128
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1


 

/etc/init.d/apache restart 로 재시동합니다.

phpinfo에 apc 항목이 있으면 성공입니다.

-----------------------------------------------

설치후 ab 테스트

제로보드 3 버전에 올린 글을 가지고 테스트. html 크기는 8403 bytes 입니다.

간단히 설명하면 적용시 100번 보는데 10초 미적용시 100번 보는데 37초 정도 걸렸다는 겁니다.


설치후 적용시

Concurrency Level:      1
Time taken for tests:   9.990952 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      876200 bytes
HTML transferred:       840300 bytes
Requests per second:    10.01 [#/sec] (mean)


설치후 미적용시

Concurrency Level:      1
Time taken for tests:   37.344788 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      876200 bytes
HTML transferred:       840300 bytes
Requests per second:    2.68 [#/sec] (mean)

--------------

php4 버전의 경우 configure 전에

export CPPFLAGS="-I/usr/include/apache-1.3 -DAPC_PHP4_STAT" 를 하는 것이 최적화를 위해서 더 좋다는데 저는 php5를 쓰므로 확인은 해보지 않았습니다. 설치에 관한 다른 사항은 INSTALL 파일을 참조하세요.


Posted by Ji-seong


freelink 를 설치하면 데비안 리눅스를 사용하는 것이 되고 데비안의 경우

/etc/apt/sources.list 파일에 어느 서버에서 패키지를 받아 올것인지 설정 되어 있습니다.


원래 설정입니다. 외국에 있는 것이라 좀 많이 느립니다.

deb http://mirrors.kernel.org/debian/ stable main contrib non-free
deb-src http://mirrors.kernel.org/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free


국내 데비안 미러중 LS2에서 사용 가능한 mips cpu 용 패키지까지 제공하는 곳은 kr.debian.org 이고

/etc/apt/sources.list 파일에 아래와 같이 설정하면 훨씬 빠른 속도로 패키지를 설치 할 수 있습니다.
deb http://ftp.kr.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.kr.debian.org/debian/ stable main contrib non-free


설정 바꾸시고나서는

apt-get update 명령으로 패키지 목록 갱신하셔야 합니다.


Posted by Ji-seong


오랜만에 올리는 활용팁이네요.


보통 네트워크 하드를 구입하게 되면서 FTP, WEB, SAMBA등을 이용하게 됩니다. 여기에 백업의 기능을 하나 더 추가해보고자 합니다.


링크스테이션의 경우 자체 백업툴이 있습니다. 이 소프트웨어를 이용하면 자기가 원하는 파일이 자동으로 백업이 됩니다.  이 백업툴은 삼바 공유를 이용하는 방법입니다. 삼바를 이용하기 때문에 펌웨어를 핵펌하더라도 이용이 가능합니다.


간편하게 사용한다면 이 백업툴을 사용할 것을 권합니다.


지금 부터는 rsync를 사용하는 이유를 먼저 설명하겠습니다. rsync는 백업툴은 아닙니다. 원격이나 로컬에서 파일을 싱크하는 편리한 툴입니다. 윈도우의 카피 보다 전송속도 등에서 장점이 있으며, 여러가지 옵션이 있어서 편리한 기능을 제공합니다. 보통 두대의 웹서버를 동기화한다는가 할 때 사용합니다.


각설하고 먼저 설치부터 해야겠지요.

apt-get install rsync로 설치는 끝입니다.

설정 파일은 /etc/rsync.conf 입니다.

간단한 제 설정 파일입니다.

상단의 몇가지는 기본설정이 됩니다. []로 둘러싸인 부분이 백업받고자 하는 디렉토리 설정입니다. 보시면 두가지가 다른 것을 보실 수 있을 겁니다. 자신의 용도에 맞게 설정하시면 됩니다. 이 설정파일은 수정즉시 반영이 됩니다. 참고로 path에 설정된 파일은 미리 만들어 두셔야 합니다. 그리고 rsync의 경우 최상위 디렉토리를 만들지 못합니다. 혹시 백업시 에러가 난다면 그 상위 디렉토리를 만들어 주시면 됩니다.


uid = root
gid = nogroup
use chroot = yes
read only = yes
max connections = 4
syslog facility = local5


[MyBackup]
  comment = MyBackup
  path=/home/lum34/MyBackup
  read only = no
  list = no

[gallery]
  comment = gallery backup
  path=/home/lum34/gallery  read only = no

  uid = nobody
  gid = nogroup
  hosts allow = x.x.x.x


이제 /etc/init.d/rsync start로 데몬 모드로 실행하면 끝입니다.


이제 deltacopy를 설치합니다. deltacopy는 윈도우용 rsync 프로그램입니다. 자체적으로 서버모드와 클라이언트 프로그램을 가지고 있어서 윈도우 컴끼리 원격으로 싱크를 맞출수 있습니다.

다운로드는 http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp 여기서 설치 파일을 받으셔도 되고 그냥 압축풀면 되는 파일을 받으셔도 됩니다.


설치후 클라이언트 프로그램을 실행합니다. Add New Profile을 클릭합니다. 작은 창이 하나 뜰겁니다.

거기에 설정에 맞게 입력합니다.

Profile Name : BACKUP

Server IP : x.x.x.x

Virtual Directory Name: MyBackup

혹시 모르니 Test Connection 한번 클릭해보시는 것도 좋을 겁니다.


이제 프로파일 설정은 끝났습니다.

이제 Add Folder 나 Add File로 백업할 대상을 정합니다.

설정이 되었으면 프로파일을 오른쪽 클릭하시고 Run Now를 합니다. 그럼 백업되는 것을 확인하실 수 있습니다.

아래와 같이 options/Additional Parameter에 집어 넣으면 bak파일과 My Documents 디렉토리는 백업을 안하게 됩니다. 디렉토리의 경우 / 를 꼭 넣으세요. 단 BAK 파일은 는 백업된다는 거. 대소문자 구분합니다.

 --exclude='*.bak' --exclude="My Documents/"

이제 자동으로 백업되게 하려면, Add Schedule로 윈도우의 예약된 작업에 추가합니다.


추가적으로 유니코드로 이름이 된 파일과 255자 넘은 파일은 deltacopy가 인식을 못합니다.


Posted by Ji-seong


openlink나 freelink 펌웨어를 다운받아서 압축을 풀면 image.dat 라는 파일이 있는데 이 파일도 실제로는 압축 파일입니다.

다시 압축을 풀려고 하면 패스워드를 물어보는데 1NIf_2yUOlRDpYZUVNqboRpMBoZwT4PzoUvOPUp6l 입니다.


일부 바이너리만 뽑아서 쓰고 싶을때 풀어서 쓰면 됩니다.


Posted by Ji-seong


1. webmin 설치

벌써 6번째 글을 쓰게 되네요. 이번에는 webmin이라는 웹관리툴입니다. FreeLink 펌웨어를 설치하면 버팔로의 기본펌웨어나 OpenLink에서 제공하는 웹툴을 사용하지 못합니다. 그걸 대체하는 것이라고 보면 됩니다.


웹민을 설치하면 할 수 있는 일을 간단히 소개하면

1. 계정관리

2. Apache 설정 및 관리

2. Proftpd 설정 및 관리

3. Mysql 설정 및 관리

4. Samba 설정 및 관리

5. 서버 관리

등등등 쉘상에서 하는 일을 모두 웹에서 관리 가능합니다.


일단 코어를 먼저 설치하고 기타 필요한 패키지만 깔면 됩니다.


현재 webmin이 데비안 stable 패키지에서 빠져 있기 때문에 /etc/apt/source.list 파일을 이렇게 수정합니다.

deb http://mirrors.kernel.org/debian/ oldstable main contrib non-free
deb-src http://mirrors.kernel.org/debian/ oldstable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free

수정후 apt-get update 로 업데이트 합니다. webmin 설치 후에는 /etc/apt/source.list 파일을 원래대로 수정하고 apt-get update 합니다.


이제 webmin과 필요한 패키지를 설치합니다.

apt-get install webmin webmin-core wembin-samba webmin-mysql webmin-firewall webmin-inetd webmin-proftpd  webmin-logrotate

기본적인 것은 webmin webmin-core 입니다. 저는 samba와 mysql, proftpd를 사용하기 때문에 설치한 것입니다. 기타 다른 것도 마찬가지입니다.


설치후 /etc/webmin/miniserv.conf 파일에서 아래 항목을 수정합니다.
allow=0.0.0.0

webmin에 접속할 ip를 지정하는 부분입니다. 0.0.0.0은 IP제한을 하지 않겠다는 것입니다.


이제 /etc/init.d/webmin start 하고서 웹브라우저로 https://링크스테이션IP:10000 으로 접속합니다.

아이디 패스워드는 root 아이디 패스워드 입니다.


접속후 언어를 한국어로 바꾸면 좀 더 도움이 될 것입니다.

webmin 사용방법은 http://doxfer.com/Webmin 여기를 참조하시고

모듈 사용방법은 http://doxfer.com/Webmin/Modules  참조하시면 될겁니다.


저처럼 쉘상에서 관리하는게 편하신 분은 쉘상에서 하는 것이 더 편합니다만 아직 리눅스에 덜 익숙한 분이나 원격지에서 ssh등으로 접속이 불가능할 때 웹관리툴을 이용해서 작업하는 것이 도움이 될 것입니다.


oldstable 을 사용하기 그렇다면 webmin 사이트(http://www.webmin.com/)에서 최신 버전을 받습니다.

wget http://prdownloads.sourceforge.net/webadmin/webmin_1.340_all.deb
apt-get install libnet-ssleay-perl  openssl libauthen-pam-perl libpam-runtime libio-pty-perl
dpkg -i webmin_1.340_all.deb

설치는 위와 같이 하시면 됩니다.


Posted by Ji-seong


1. samba 설치

윈도우와의 공유를 위해서 samba를 설치한다. samba 설정 파일에서 사용자 계정마다 자신의 홈디렉토리에 사용을 하게 할 수도 있고 공용 디렉토리를 두어서 그 쪽은 모든 사용자가 같이 사용을 할 수도 있다. 또한 samba를 이용하여 프린터를 설치할 수도 있다. LS2에서도 기본적으로 USB를 지원하는 프린터라면 네트워크로 설치가 가능하기 때문에 LS2에서 지원하는 프린터라면 설치가 가능하리라 본다. 다만 FreeLink의 커널이 2.4.20이므로 설치가 가능한 프린터가 어떤 것이 있는지 사전에 알아볼 필요는 있다. 필자는 프린터가 없기 때문에 그 부분은 확인하지 않았다.

samba 서버 설치는 다음과 같이 하면 된다.

apt-get install samba smbfs

설치시 몇가지를 물어보는데 필자가 설정한 방법은 다음과 같다.

작업그룹 설정  WORKGROUP - 필자의 작업그룹이다.
비밀번호 암호화 YES : 암호화 하지 않으면 윈도우와 연결이 되지 않는다.
WINS 설정 NO : WINS를 사용하지 않으므로 NO로 했다.
데몬설정 데몬(Standalone) : inetd로서 설정할 수 있지만 standalone 방식을 권한다.
samba 비밀번호 데이타베이스 생성 yes : 각각의 계정 사용자에게 홈 디렉토리를 접속하게 하려면 만들어야 한다.

데이타베이스 파일은 /etc/samba/smbpasswd 로 생성된다. samba 의 계정별 비밀번호는 시스템의 비밀 번호를 사용하지 않고 독자적으로 사용한다. 이 비밀번호는 smbpasswd로 설정을 해주어여 한다.

사용자 추가는 smbpasswd -a 계정 으로 하면 된다. 단 계정은 실제 리눅스에 존재해야 한다. /etc/samba/smbpasswd에 존재하는 사용자라면 비밀번호 변경이 된다.

man smbpasswd로 다른 옵션도 파악해두길 바란다.


samba 설치가 끝나면 /etc/services 파일에서 아래 항목이 있는지 확인한다.


netbios-ns      137/tcp                         # NETBIOS Name Service
netbios-ns      137/udp
netbios-dgm     138/tcp                         # NETBIOS Datagram Service
netbios-dgm     138/udp
netbios-ssn     139/tcp                         # NETBIOS session service
netbios-ssn     139/udp


이제 samba 설정을 해보자. /etc/samba/smb.conf 가 설정 파일이다. LS2의 기본 펌웨어와 같이 동작을 하게 설정을 해보았다.

[global]
        log file = /var/log/samba/log.%m
        socket options = TCP_NODELAY
        null passwords = yes
        hide dot files = Yes
        encrypt passwords = yes
        public = yes
        veto files = /.?*/
        dns proxy = no
        server string = MYSTORE
        invalid users = root

        workgroup = WORKGROUP
        os level = 20
        syslog = 0
        security = share
        panic action = /usr/share/samba/panic-action %d
        dont descend = /proc,/dev
        max log size = 1000
        unix charset = cp949
        dos charset = cp949

        display charset = cp949


[homes]
   comment = Home Directories
   browseable = no

   writable = no

   create mask = 0700

   directory mask = 0700

   valid users = %S

[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   public = no
   writable = no
   create mode = 0700

[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
[share]
        comment = LINKSTATION SHARE
        writable = yes
        path = /mnt/hda/share

samba 버전이 올라가면서 몇가지 설정이 바뀌었는데 그 중 대표적인 것이 캐릭터 셋이다. 필자의 LS2의 언어 설정은 euc_kr이다. UTF8을 선호하지만 아직 과도기이므로 이 설정을 적용하면 별다른 문제없이 LS2와 윈도우 모두에서 사용가능하다.

        unix charset = cp949
        dos charset = cp949

        display charset = cp949


그리고 LS2 원 펌웨어처럼 사용하기 위해서 share 항목을 위와 같이 설정을 하였다. /mnt/hda/share 에 삼바로 접근시 계정/암호가 필요없으며 nobody/nogroup의 소유권이 주어지게 된다.



2. proftpd 설치

특별히 선호하는 ftp 데몬은 없지만 이전부터 사용해왔다는 이유만으로 proftpd를 설치한다.

단순히 설치를 한다면

apt-get install proftpd 으로 하면 된다. 필자의 경우는 mysql을 이용한 가상유저를 사용하기 때문에 이렇게 설치를 했다.

apt-get install proftpd proftpd-mysql

ftp 사용자를 시스템 계정으로 만들어 주는 것이 아니라 mysql 데이타베이스에 등록시켜서 관리하고 있다. 이 방법의 장점은 시스템에 계정을 만들어 주지 않기 때문에 관리의 편의성과 보안문제의 장점을 가지고 있다. 단점으로는 계정의 비밀번호 변경이 ftp 클라이언트를 사용해서 변경이 불가능하다는 것이다.. 따로 웹페이지를 만들어서 계정의 비밀번호를 변경하게 햐야 하는 점이 단점이라면 단점이다.


필자의 경우 따로 ftp 사용자 테이블을 만들어서 관리를 하고 있지만 편리성을 생각한다면 제로보드와 같이 널리 알려진 게시판을 이용하여 사용자 등록을 받고 그 게시판과 ftp의 사용자가 같게 만들수 있다. 그렇게 한다면, 회원관리의 문제에 있어서 편리할 것이라고 생각된다.


설치는 apt-get install proftpd proftpd-mysql 로 한다.


사전에 ftp 사용자 테이블을 만들어 두거나, 제로보드등이 이미 설치되어 있어야 한다.


ftp 사용자 테이블의 구조는 다음과 같다. users라는 테이블로 기본이름이 users로 되어 있으나 수정가능하다. 필드명과 default값도 수정가능하다.


이 외에 groups, accesslog, downfilehistory , upfilehistory 와 같은 4가지 테이블을 더 만들 수 있으나, 없어도 상관없다. 제목만 봐도 무얼 하는 테이블인지는 알 수 있을 것이다.

사용자 삽입 이미지

필드를 설명하자면 uid 는 user id 이다. 유닉스는 파일과 디렉토리에 소유권을 부여하고 있다. 당연히 ftp로 접속후 업로드한 파일에도 소유권이 부여된다. 유닉스 쉘에서 id 계정명 하면 uid와 gid가 나오는 것을 볼 수 있을 것이다. uid는 숫자로 입력하면 된다. 단 uid는 1000 이상을 사용해야 한다. 기본적으로 1000번 이하의 uid는 시스템에서 사용하고 있을 가능성이 높기 때문이다. 필자는 3000번부터 시작하였다.

gid는 group id로 마찬가지다. groups테이블을 만든다면 따로 그룹마다 권한을 줄 수 있다. 필자는 사용하지는 않았다.

shell 은 ftp 접속후 사용하는 쉘이다. /bin/sh 를 사용하게 설정하였다.

homedir 은 ftp 접속후 나오는 디렉토리이다. 각각의 user마다 따로 줄수도 있지만 필자의 FTP 사용목적이 공용폴더에서 같이 쓰는 것을 목적으로 하기에 /home/ftp/pub를 기본으로 사용하게 하였다.  이게 설정이 안되어 있다면 접속이 거부된다.

count 는 얼마나 접속했는지를 기록하는 필드이다. /etc/proftpd/proftpd.conf에서 설정을 한다. 굳이 로드를 주고 싶지 않아서 필자는 설정을 하지않고 사용하고 있다.

vaild 이다. 이 값이 1이면 접속이 가능하고 0이면 불가능하다. 임시로 접속을 막고 싶을 때 사용한다.


필자의 /etc/proftpd/proftpd.conf 이다.


처음 설정시 수정해야 할 부분은  다음과 같다.

UseIPv6                         off   현재 사용하는 IP체계에 따라서 설정을 Off 한다.

TimesGMT                      off  국내는 GMT 시간 설정을 사용하지 않으므로 이렇게 합니다. 서버 시간과 FTP에 올린 파일 생성시간이 +9시간 차이가 난다면 이렇게 수정한다.

디비와의 연동 설정이다.


SQLConnectInfo                  디비이름@localhost 사용자 암호            
SQLAuthTypes                    Backend (mysql password 함수를 사용한다)
SQLAuthenticate                 users
SQLUserInfo                       users userid passwd uid gid homedir shell (테이블명, 사용자아이디, 비번 순이다.)
SQLUserWhereClause         "valid=1"
SQLDefaultHomeDir               /home/ftp/pub


접속 설정이다. 동시 접속을 6명으로 제한하고, 한사람이 2개 이상의 접속을 못하게 하였다.

MaxClients                          6 "Sorry, the maximum number of allowed users are already connected"
MaxClientsPerHost               2 "Sorry, You may not connect more than two time"
MaxHostsPerUser                 2 "Sorry, %m hosts allow per one users"


FXP 는 일명 서버 투 서버 라고 불리우며 서버간의 파일 전송을 가능하게 하는 서비스를 설정한다. ftp에서 ftp 바로 전송이 가능하게 해주는 것이다.

AllowForeignAddress on

패시브 포트를 열어주었다.

PassivePorts 49152 65534

이동가능한 디렉토리를 자신의 home으로만 지정한다.

DefaultRoot ~


이어올리기 기능 설정

AllowOverwrite      on

AlowRetrieveRestart    on
AllowStoreRestart       on


 

-----------------------------------

#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
#

# Includes DSO modules
Include /etc/proftpd/modules.conf

# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6                         off

ServerName                      "LINKSTATION"
ServerType                      standalone

deferWelcome                    off

MultilineRFC2228                on
DefaultServer                   on
ShowSymlinks                    on

DefaulttransferMode             binary

TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200

DisplayLogin                    .welcome.msg
DisplayFirstChdir               .message
ListOptions                     "-l"

DenyFilter                      \*.*/

# Port 21 is the standard FTP port.
Port                            21

# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts                    49152 65534

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances                    30

# Set the user and group that the server normally runs at.
User                            proftpd
Group                           nogroup

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask                           022  022
# Normally, we want files to be overwriteable.
AllowOverwrite                  on

# Uncomment this if you are using NIS or LDAP to retrieve passwords:
# PersistentPasswd              off

# Be warned: use of this directive impacts CPU average load!
#
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
# UseSendFile                   off

TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

TimesGMT                      off

UseReverseDNS off
IdentLookups  off

# Set SQL
SQLConnectInfo                  
SQLAuthTypes                    Backend
SQLAuthenticate                 users
SQLUserInfo                       users userid passwd uid gid homedir shell
SQLUserWhereClause         "valid=1"
SQLDefaultHomeDir               /home/ftp/pub


MaxClients                      6 "Sorry, the maximum number of allowed users are already connected"
MaxClientsPerHost               2 "Sorry, You may not connect more than two time"
MaxHostsPerUser                 2 "Sorry, %m hosts allow per one users"

RequireValidShell               off

# Enable FXP
AllowForeignAddress on
PassivePorts 49152 65534

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~

# Normally, we want files to be overwriteable.
AllowOverwrite      on

# Allow resume
AllowRetrieveRestart    on
AllowStoreRestart       on

TimeoutIdle                     60
TimeoutNoTransfer               60
TimeoutLogin                    60


<IfModule mod_tls.c>
TLSEngine off
</IfModule>

<IfModule mod_quota.c>
QuotaEngine on
</IfModule>

<IfModule mod_ratio.c>
Ratios on
</IfModule>


# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default.
<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine        on
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>

-----------------------------------

/etc/proftpd/proftpd.conf 설정 수정후 /etc/proftpd/modules.conf에서
LoadModule mod_sql_postgres.c  주석 처리한다.



/home/ftp/pub 디렉토리를 만들고 chmod 777 /home/ftp/pub 로 권한을 준다.. 그리고 777권한일 경우 다른 계정이 올린 파일을 지울 수가 있으므로 chmod +t pub로 sticky bit를 주어서 다른 계정이 올린 파일을 삭제하지 못하도록 한다.

/etc/logrotate.d/proftpd 파일을 생성하여 아래와 같이 작성해준다. ftp 로그파일이 커지지 못하도록 하는 것이다.


/var/log/proftpd/*.log {
  rotate 4
  daily
  compress
  missingok
  notifempty
}

/var/log/proftpd/xferlog {
  rotate 4
  daily
  compress
  missingok
  notifempty
}


FTP 서버의 파일 시간이 GMT를 off 했는데도 정확히 맞지 않는다면 /etc/init.d/proftpd 의 첫줄에 export TZ=":/etc/localtime" 를 추가한다.

이제 ftp를 재 시작하면 디비에 등록되어 있는 사용자로 접근이 가능할 것이다.


/etc/init.d/proftpd start로 시작시

Starting ftp server: proftpd - IPv4 getaddrinfo 'LINKSTATION' error: Name or service not known
- warning: unable to determine IP address of 'LINKSTATION'
- error: no valid servers configured
- Fatal: error processing configuration file '/etc/proftpd/proftpd.conf'
failed!
invoke-rc.d: initscript proftpd, action "start" failed.
dpkg: error processing proftpd (--configure):
subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
proftpd
E: Sub-process /usr/bin/dpkg returned an error code (1)

이런 에러가 나면서 실행이 안된다면

/etc/hosts 을 이렇게 수정하도록 한다.


127.0.0.1 localhost.localdomain LINKSTATION

여기서 LINKSTATION은 /etc/hostname 파일에 있는 이름이다. 참조해서 고치도록 한다.


3. 제로보드와 proftp, mysql 연동하기

기본적으로 위의 사항과 같다. 단 수정할 것이 몇가지 있다.

먼저 제로보드를 설치한다. 이미 설치되어 있다면 다른 데이타베이스를 만들고 사용할 것을 권한다. 물론 제로보드도 다른 디렉토리에 설치하는 것이 좋다. 왜냐하면 제로보드의 회원 테이블에는 uid, gid, homedir, shell을 지정해 줄 필드가 없기 때문이다.

그래서 필자는 uid, gid, homedir, shell을 zetyx_member_table에서 no, group_no, icq, aol을 각각 대응하게 사용하였다.


최초 설치후 쉘 상에서 mysql에 접속한다.  use 데이타베이스명 을 이용하여 이동후 제로보드가 설치된 데이타베이스로 이송후

ALTER TABLE zetyx_member_table AUTO_INCREMENT = 3000;
ALTER TABLE zetyx_group_table AUTO_INCREMENT = 3000;

위의 두가지 명령을 준다. 이 명령은 zetyx_member_table, zetyx_group_table 의 no 필드값이 3000번부터 입력되게 하는 것이다.

1000번이상이면 다른 값을 주어도 상관없다.


또한 icq와 aol의 기본 값을 바꾼다.

alter table zetyx_member_table change icq icq char(20) default '/home/ftp/pub';

alter table zetyx_member_table change aol aol char(20) default '/bin/sh';


그리고 제로보드 관리자에서 가입폼 icq와 aol을 입력하지 못하게 막아 놓는다.


또한

alter table zetyx_member_table change open_icq open_icq charr(20) default '0';

alter table zetyx_member_table change open_aol open_aol charr(20) default '0';

로 변경해준다.

그리고 member_join_ok.php 파일에서 아래 항목과 같이 고친다. $icq, $aol, $open_icq, $open_aol을  ''으로 변경하였다.


 mysql_query("insert into $member_table (level,group_no,user_id,password,name,email,homepage,icq,aol,msn,jumin,comment,job,hobby,home_address,home_tel,office_address,office_tel,handphone,mailing,birth,reg_date,openinfo,open_email,open_homepage,open_icq,open_msn,open_comment,open_job,open_hobby,open_home_address,open_home_tel,open_office_address,open_office_tel,open_handphone,open_birth,open_picture,picture,open_aol) values ('$group_data[join_level]','$group_data[no]','$user_id',password('$password'),'$name','$email','$homepage','','','$msn',password('$jumin'),'$comment','$job','$hobby','$home_address','$home_tel','$office_address','$office_tel','$handphone','$mailing','$birth','$reg_date','$openinfo','$open_email','$open_homepage','','$open_msn','$open_comment','$open_job','$open_hobby','$open_home_address','$open_home_tel','$open_office_address','$open_office_tel','$open_handphone','$open_birth','$open_picture','$picture_name','')") or error("회원 데이타 입력시 에러가 발생했습니다<br>".mysql_error());

이제 제로보드의 일반적인 사용과 같이 하면 된다.


필자는 레벨 9이상인 회원만 ftp에 접속가능하게 해보았다. 회원별로 레벨을 준다면 레벨이 정해진 회원만  접근 가능하다.

/etc/proftpd/proftpd.conf 의 설정은 다음과 같이 고친다.

SQLConnectInfo                  데이타베이스명@localhost 사용자 암호
SQLAuthTypes                    Backend
SQLAuthenticate                 users
SQLUserInfo                       zetyx_member_table user_id password no group_no icq aol

SQLDefaultHomeDir               /home/ftp/pub

SQLUserWhereClause         "level<10"


Posted by Ji-seong


1. 필요한 패키지 설치하기

제가 자주 사용하는 패키지를 일단 먼저 설치했습니다.

굳이 설치하실 필요는 없습니다.

mc : midnight commander 라는 쉘 프로그램입니다. 예전 피시툴즈나 m 생각하시면 비슷할 겁니다.
lynx : text 웹 브라우저
ncftp : ftp client
mime-support : file과 관련해서 쓰기 때문에 설치
file : file 타입 알아볼 때 씁니다.
vim : vi enhanced 입니다. 기본 내장된 vi 보다 더 편리하고 한글 파일도 잘 됩니다. 기본 내장된 것은 한글 파일의 경우 내용을 제대로 보여주지 못하더군요.


mc랑 ncftp, vim 정도만 설치해도 충분하리라 봅니다.


apt-get install mc lynx ncftp mime-support file vim


2. APM 설치

2.1 lighttpd + php + mysql 설치

처음에는 가볍게 설치해보려고 apache 대신에 lighttpd를 설치했습니다.

하지만 ab 테스트 후 속도가 너무 느려서 apache로 교체했습니다.


PHP5, MySQL5 버전을 설치했습니다. 하위 버전의 경우는 apt-cache search php apt-cache search mysql 로 찾아보시면 설치 가능한 버전이 있습니다.


lighttpd 설치를 PHP와 MySQL과 연동한다면  이렇게 합니다. lighttpd는 php가 cgi로 설치되기 때문에 php5-cgi가 필요합니다.


apt-get install lighttpd php5-dev php5-cgi php5-mysql mysql-client mysql-server


설치시 mysql-server의 경우 관리지 암호 설정을 물어봅니다.

그건 알맞게 넣으시고요. old password 를 어떻게 할지 물어보게 되는데 제로 보드를 사용하실 예정이라면 yes로 하시면 됩니다.

이게 mysql 버전이 올라가면서 password함수의 자릿수가 바껴서 이전 password함수와 호환이 안되기 때문에 어떤 password함수를 쓰는지를 물어보는 것입니다.

설치후 설정은

/etc/lighttpd/conf-available/10-fastcgi.conf 에서
"bin-path" => "/usr/bin/php4-cgi"를 "bin-path" => "/usr/bin/php5-cgi"로 수정합니다. php4를 깔았다면 수정은 필요없겠죠.


/etc/lighttpd/lighttpd.conf에서 수정할 부분은 많지만 개인 설정에 따라 틀리므로 기본적인 것만 수정한다면


server.document-root "/var/www/html"

server.network-backend = "writev"
server.upload-dirs = ( "/tmp" )


위의 세부분입니다. server.document-root는 웹페이지가 있는 부분이고, server.network-backend는 이렇게 설정하지 않으면 정적인 파일이 웹브라우저 상에서 보이지를 않습니다. 일종의 버그입니다.

그리고 마지막으로 server.upload-dirs 입니다 .기본이 /var/tmp로 업로드 설정이 되어 있는데 이 상태에서는 웹서버가 /var/tmp에 접근할 권한이 없어서 접근이 안되므로 업이 안됩니다. 그래서 /tmp로 바꿨습니다.


아래 처럼 소프트 링크를 해줘야 실제 fast-cgi로 php가 작동됩니다.

cd /etc/lighttpd/conf-enabled
ln -s ../conf-available/10-cgi.conf 10-cgi.conf
ln -s ../conf-available/10-fastcgi.conf 10-fastcgi.conf


마지막으로 아래와 같은 에러가 나면서 lighttpd가 실행이 안되는 경우가 있습니다.

PHP Warning:  Cannot load module 'pdo_mysql' because required module 'pdo' is not loaded in Unknown on line 0

이럴때는

/etc/php5/conf.d/pdo.ini에 아래 항목을 추가해줍니다.


# configuration for php PDO module
extension=pdo.so


lighttpd는 실제 가벼운 웹서버라고 하는데 제 테스트시 apache보다 내부, 외부 모두 느렸습니다. 그리고 제로보드와 dokuwiki는 쉽게 깔리지만, 테터툴즈는 rewrite 모듈 때문에 안깔립니다. 삽질하면 깔릴 듯하지만 귀찮기도 하고 속도 문제로 일단 내렸습니다.


mysql 설정은 LS2 메모리가 작기 때문에 이걸 사용합니다.

cp /usr/share/doc/mysql-server-5.0/examples/my-small.cnf /etc/mysql/my.cnf


2.2 APM 설치


apt-get install apache apache-common libapache-mod-php5 php5-dev php5-common php5-mysql mysql-server mysql-client


설치시 mysql-server의 경우 관리지 암호 설정을 물어봅니다.

그건 알맞게 넣으시고요. old password 를 어떻게 할지 물어보게 되는데 제로 보드를 사용하실 예정이라면 yes로 하시면 됩니다.

이게 mysql 버전이 올라가면서 password함수의 자릿수가 바껴서 이전 password함수와 호환이 안되기 때문에 어떤 password함수를 쓰는지를 물어보는 것입니다.

mysql 설정은 LS2 메모리가 작기 때문에 이걸 사용합니다.

cp /usr/share/doc/mysql-server/examples/my-small.cnf /etc/mysql/my.cnf


apache의 설정은

/etc/apache/httpd.conf 파일을 수정하면 됩니다.

DocumentRoot 정도만 수정하시면 됩니다.


이제 설치는 끝났습니다. /etc/init.d/apache start로 실행하면 됩니다.

제로보드나 테터툴즈 등 기호에 맞는 것을 설치해보시면 됩니다.
 

3. /etc/profile 설정하기

간단한 alias 입니다.

제가 사용하는 것 중 몇가지만 적어봅니다. /etc/profile 에 덧붙여 줍니다.

alias ll='ls -lA'
alias mv='mv -i' : 파일 이동시 같은 이름이 있으면 확인
alias rm='rm -i' : 파일 삭제시 확인
alias mc='/usr/share/mc/bin/mc-wrapper.sh' : mc의 경우 종료시 이동해 있는 디렉토리로 옮겨주지를 않습니다. 그걸 해주는 쉘 스크립트입니다. 다만 LS2에서 작동을 안하는 군요. 서버에 있는 것과 동일한데 작동을 안해서 이상하게 생각을 하고 있습니다. 참 먼저

실행권한을 주어야 합니다.

chmod +x /usr/share/mc/bin/mc-wrapper.sh

현재 사용하는 다른 패키지는 다음에 또...


Posted by Ji-seong


1. 데비안 패키지 업데이트 하기

업데이트 전에 간단히 데비안 패키지에 대해서 알아두시면 좋을 겁니다. 저는 리눅스는 4년 정도 전에 레드헷 7.0 이후로는 써보지를 않았습니다. 관리의 편의성 때문에 레드헷에서 FreeBSD로 넘어왔습니다. 그전에 레드햇 제품을 써볼때는 제가 관리하는 서버에 맞게 rpm등을 패키지해서 사용을 하였는데 현재 FreeBSD로 넘어오면서 port 시스템을 쓰면서 아주 만족해 하고 있습니다. BSD의 포트 시스템과 유사한 것이 젠투입니다. 소스 받아서 컴파일해서 설치한다는 면에서 비슷하죠.


각설하고 데비안에서는 소스를 컴파일 하는 것이 아니라 미리 컴파일된 바이너리를 설치하는 것입니다. 설치 시간면에서 상당히 시간이 절약된다는 점이 있지만, 자신의 시스템에 최적화되는 것은 아니라는 단점이 있습니다. BSD 같은 경우 느린 시스템이라면 아주 환장을 하는 경우도 있습니다. 관련 라이브러리도 같이 깔야줘야 하기 때문에 하루종일 컴파일만 할때도 있습니다. 뭐 자동으로 지가 알아서 하기 때문에 신경쓸일은 없지만요.


일단 기본적인 것만 아시면 됩니다. 저도 데비안은 처음 써보는 것이기 때문에 패키지 시스템 관련 명령어를 모두 알지는 못합니다. 필요한 것만 아는 정도고 그 이상은 특별히 알 필요는 없다고 봅니다.


설치는 apt-get install 삭제는 apt-get remove 소스 트리 바꾼후에는 apt-get upgrade 깔려 있는 패키지 업데이트는 apt-get update

의존성이나 기타 문제로 업데이트 안될 때는 apt-get dist-upgrade 이 정도만 아시면 됩니다.


자 이제 기본적인 펌웨어 업 후 설치는 끝났으니 데비안 패키지를 업데이트 해봅시다.

먼저 /etc/apt/source.list를 확인해봅시다.

저는 이렇게 되어 있네요.


deb http://mirrors.kernel.org/debian/ stable main contrib non-free
deb-src http://mirrors.kernel.org/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free

이제 패키지 업데이트를 해봅시다.


apt-get upgrade


이제 다음에 할 것은

apt-get update 입니다. 저는 apt-get dist-update를 하였습니다. update만 할 경우 몇몇 패키지들이 업데이트가 되지 않습니다.


apt-get dist-update 한 경우 설정을 물어봅니다. 저는 다음과 같이 하였습니다. 설정을 어떻게 할지는 본인의 선택이니 저의 예제는 참고로 하시기 바랍니다.

처음 펌웨어 업하고 upgrade 하고 dist-update하면 물어보는 설정에 대한 저의 답입니다.


- Dialog 선택
- medium 선택
- Don't touch keymap
- adduser : No 선택
- exim :No
- local delivery only; not on a network
- LINKSTATION
- 127.0.0.1
- LINKSTATION
- james
- man : No
- openssh-server : No


2. 시간 셋팅

tzconfig 명령을 실행합니다.

한국시간으로 설정을 해야 하니 5 Aisa 선택하고 Seoul 입력합니다.


이제 ntp를 이용해서 자동으로 LS2의 시간셋팅이 이루어 지게 합니다. 처음으로 apt-get을 이용해서 패키지를 설치해보겠네요.

필요한 패키지는 npt, npt-simle ntppdate 입니다.

apt-get install ntp ntp-simple ntpdate

/etc/ntp.conf 파일을 수정합니다.

저는 기존의 foo 서버들은 삭제하고 타임서버에 아래 항목을 넣었습니다.

server time.bora.net iburst
server time-a.nist.gov
server time-b.nist.gov
server time-nw.nist.gov
server utcnist.colorado.edu
server time-a.timefreq.bldrdoc.gov
server time-b.timefreq.bldrdoc.gov

먼저 ntp 서버를 실행하기 전에 시간이 잘 동기화되는 지 확인해봅니다.

ntpdate time.bora.net

아래와 같이 출력된다면 동기화가 된 겁니다.

10 May 00:41:01 ntpdate[15228]: adjust time server 203.248.240.103 offset 0.119070 sec

date 명령으로 다시 한번 확인해보시기 바랍니다.


이제 npt 서버를 실행합니다.

/etc/init.d/ntpdate start


3. 한글 로케일 설정

apg-get install locales

저는 언어를 영어와 한국어 두가지로 선택했습니다. 향후 UTF8을 쓸 수도 있기 때문에 UTF8도 같이 선택했습니다.

en_US.ISO-8859-1
en_US.ISO-8859-15
en_US.UTF-8
ko_KR.EUC-KR.
ko_KR.UTF-8... done

기본 사용 언어는 ko_KR.EUC-KR 선택하였습니다.


이제 다음에는 제가 설치한 어플리케이션 입니다. 특별히 언급할 필요가 있는 것만 다루겠습니다. APM이나 기타 다른 것들도

설치는 apt-get install 로 하면 관련된 걸 다 깔아주기 때문에 다른 네트워크 드라이브들보다 쉽습니다.


Posted by Ji-seong