제로보드 1.0 정식버전이 어제 발표되었다.

집에서 서버를 돌리고 있기에 다른 홈페이지 이미 적용하여 사용중인데..
사이트와 블로그 함께 사용할 수 있고 기능과 설정등 모든것이 파워풀하게 구성되었다.
위젯, 모듈, 레이아웃, 페이지등 다양한 기능을 설정으로만 꾸밀수 있다.
또한 변경시에도 직접 코딩하여 서버에 올리는 것이 아니라 관리자 기능에서 업데이트 할수 있다.
또한 제로보드4나 다른 게시판 DB를 쉽게 컨버전할 수 있어 이미 DB가 있는 사이트들도 변환을 많이 하는듯 하다.
블로그 기능은 textcube 정도까지 갈려면 시간은 좀 걸릴듯 하나 나름대로 잘 구성되었다.

현재 제로보드XE는 쇼핑과 위키 사용이 계속적으로 진행되는것 같다..
조만간 이러한 기능들이 추가되어 진다면 참으로 제로보드XE의 힘은 막강해 질듯..
사용자 삽입 이미지

좀더 자세한 사항은 제로보드 홈페이지로 http:://www.zeroboard.com
제로보드 홈페이지에 가면 쓸만한 것이 계속 나오고 있다.
향후 상당히 많이 사용될거 같은 예감..

내가 사용하는 테터툴즈의 블로그가 보편화 되기 전에는 제로보드4를 사용했었다.
지금은 제로보드XE(ZBXE)가 나온지 조금 되면서 버전도 상당히 많이 올라갔고 나름대로 기능이 좋은것이 많다.
블로그와 게시판 페이지 기능이 하나가 되어 쓰기가 편하다.

또한 사용해본 스킨은 그누보드.. 그누보드를 사용하는 사이트도 많은데 보통 상업적 사이트에 많이 쓰인다. 저작권을 표기하지 않아도 되기 때문인다.
그누보드는 제로보드4와 사용하는것이 비슷하다고 봐야겠다. 일단 웹프로그래밍을 좀 알아야 접근이 가능하다.

제로보드XE는 프로그래밍으로 할수도 있고 구조적 이해만으로 스킨을 올리고 세팅을 하면 사용할수 있는 프레임이다.

현재는 일반적 블로그의 기능들도 많이 추가되고 있기에 향후 정식버전의 기능은 많은 사용자들을 충족하리라 본다.

BBS를 기존 그누보드를 사용했는데 싹 없애버리고 ZBXE로 바꾸었다. 아직은 데이타가 없는 상태여서 허전하지만..

사용자 삽입 이미지

'웹/서버' 카테고리의 다른 글

IE8(인터넷 익스플로어)을 설치하여 사용  (10) 2008.03.17
제로보드XE 1.0 정식버전 나왔다  (3) 2008.02.29
Fedora(페도라) 메일서버 구축(dovecot) 이용  (0) 2007.12.21
sendmail 설정  (0) 2007.12.21
vsftpd.conf  (0) 2007.12.21
 
Fedora(페도라) 메일서버 구축(dovecot) 이용
 
 
새로 설치한 페도라코어4에 dovecot을 이용해서 메일서버를 구현하는 방법입니다.
메일서버를 구축하기 위한 필수패키지는 sendmail, sendmailcf 와 오늘 얘기할 dovecot이 페도라서버에 설치되어 있어야 한다.
dovecot 공식홈페이지 : http://www.dovecot.org
dovecot은 예전에 사용하던 imap을 대체하는 새로운 메일데몬으로 기존의 IMAP에 비해 보안이 향상되었다.

한방에 한꺼번에 설치하려면
yum -y install sendmail sendmailcf dovecot 명령으로 해결된다.
이제 센드메일을 설정할 차례이다.
/etc/mail/sendmail.cf 내용중
Cwlocalhost 를 Cw자신의도메인네임명으로 수정한다.
ex) Cwmydomain.com
/etc/mail/access 에 도메인네임을 추가한다.
mydomain.com       RELAY
수정한 후에는 makemap hash /etc/mail/access < /etc/mail/access명령을 수행한후에 센드메일을 재시작해야 수정된 내용이 적용된다.
이제 메일사용자에게 메일내용을 보여주는 dovecot 데몬의 설정화일을 변경한다.
 
/etc/dovecot.conf 화일 변경
 
protocal = pop3 pop3s imap imaps 수정
imap_listen = [::],pop3_listen = [::] 부분을
imap_listen = *, pop3_listen = * 으로 수정
imapslisten = [::],pop3s_listen = [::] 부분을
imaps_listen = *, pop3s_listen = * 으로 수정
[::]는 ipv6 프로토콜을 의미하며 우리는 ipv4를 사용하므로 *로 바꿔준다.
ssl_disable = no 주석제거
login_executable = /usr/libexec/dovecopt/imap_login 주석제거
login_user = dovecot 주석제거
login_executable = /usr/libexec/dovecopt/pop3_login 주석제거
#mail_extra_groups = mail_extra_groups = mail 수정
imap_executable = /usr/libexec/dovecot/imap 주석제거
pop3_executable = /usr/libexec/dovecot/pop3 주석제거
auth_executable = /usr/libexec/dovecot/auth 주석제거
위와 같이 수정한다.
 
이후, 페도라코어의 방화벽을 셋팅한다.
/etc/sysconfig/system-config-securitylevel 로 콘솔에서 직접 수정할수 있다.
추가로 53Ltcp, 53:upd, 25:tcp, 110:tcp, 143:tcp, 995:tcp, 993:tcp 포트를 열어준다.
 
dovecot 사용시 selinux를 꺼야 제대로 실행됩니다.
설정화일 : /etc/selinux/config 화일 disabled해주면 됩니다.
 
- 발췌 -

'웹/서버' 카테고리의 다른 글

제로보드XE 1.0 정식버전 나왔다  (3) 2008.02.29
오늘은 제로보드XE로 bbs를 바꿔보다  (2) 2007.12.22
sendmail 설정  (0) 2007.12.21
vsftpd.conf  (0) 2007.12.21
웹 추천 컬러값(색상코드표) 정리  (0) 2007.10.21
- 펌 -

1) /etc/sendmail.cw 작성
이곳에는 메일 계정에 사용할 도메인을 추가시킨다.
ex)
aaa.co.kr
ns.aaaco.kr
www.aaa.co.kr

2) /etc/sendmail.cf 작성
이곳에서는 메일 계정에 사용할 도메인을 인식시켜주고 각각의 메일이 가는 경로를
지정하여 주는 스크립트 루트도 관리를 한다.

##################
# local info #
##################

Cwlocalhost
# file containing names of hosts for which we receive email
Fw/etc/sendmail.cw

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

# Virtual user table (maps incoming users)
Kvirtuser btree /etc/domainaliases.db

# Access list database (for spam stopping)
Kaccess hash -o /etc/mail/access

이런식으로 작성을 한다.

]#vi /etc/mail/access 를 열어 자신의 IP를 RELAY 시킨다.
211.61.185 Relay

그런다음 sendmail을 제 시작한다.
/etc/rc.d/init.d/sendmail restart

3) 이메일 계정추가시 업데이트를 시켜주는 스크립트를 작성한다.
]#/usr/local/bin/domainaliases 화일을 편집한다.

#! /bin/sh
echo Updated the file 'domainaliases.db'
makemap btree /etc/domainaliases.db < /etc/domainaliases

편집후 chmod 755 domainaliases

다음으로는 /etc/ 밑에 두개의 화일을 작성한다.
touch domainaliases
touch domainaliases.db

사용 또는 서비스할 이메일과 이메일 계정을 연결시킨다.
]# vi /etc/domainaliases
aaa@aaa.com aaa
bbb@bbb.com webmaster@blackstar.co.kr
.......

작성후 데이타 베이스를 업데이크 시켜준다.
]#/usr/local/bin/domainaliases


여기까지하면 SMTP 설정은 모두 끝났다.
다음은 메일 계정으로 날라온 메일을 로컬로 받아볼수 있게하는 프로토콜인
POP3 를 설치하도록 하자.

4) qpopper를 다운 받자
http://www.eudora/qpopper 에서 다운을 받을 수 있다.

]#tar xvf qpopper3.1.tar
]#cd qpopper3.1
]#./configure --enable-specialauth)
]#make
이때 만들어진 popper/popper 를 /usr/sbin/로 이동
]# vi /etc/services
pop-3 110/tcp 의 주석해제
]# vi /etc/inetd.conf
pop-3 stream tcp nowait root /usr/sbin/popper popper -s
]#/etc/rc.d/init.d/inetd restart

마지막으로 reboot 또는 /usr/sbin/popper 를 실행한다.
POP3 가 정상적으로 실행되는지 테스트 해본다.

]# telnet localhost 110
>user xxx
>pass xxx

이상이 없으면 모든것이 정상적으로 된것이다.

이제 아웃룩이나 아웃룩 익스프레스같은 MUA (Mail user agent)를 이용하여 메일을
보내고 받아보자.

모든것이 잘 되면 성공
sFTP 에 접속하는 일반적은 경우는
vsftpd.conf 를 수정하는 것이겠다.

그러나, 정상적으로 수정 했는데,
OOPS 만 나오면 문제가 잘 해결되지 않는다.
이유는 SELinux 때문에 그렇다.
문제라고 하기보다는 보안을 위해서 겠지~~~
(몇번 같은 문제로 고생했다.)

일단, "500 OOPS: cannot change directory" 이와
같은 Message가 나오면서 접속이 끊기는 현상은
FTP Directory에 대한 접근 권한 때문이다.

"setsebool -P ftp_home_dir=1"

이렇게 하면, ftp directory에 대한 접근을 허가 하게된다.
"-P"는 Rebooting 될더라도 값을 저장하여,
정상적으로 동작 하도록 한다.
 
##### VSFTP (Very Secure FTP Daemon)

vsftp 는 보안 부분을 특히 강조한 데몬으로 Redhat, Suse, Open-BSD 에서 기본 FTP 로 채택하고 있으며
보안, 빠른 퍼모먼스, 안정성을 주요 특징으로 소개하고 있고 그 성능도 여느 ftp 서버 보다 탁월하다.
또한 config 파일의 설정 문법도 아주 간단해서 FTP 서버 관리를 쉽게 할 수 있다.


*** 주요 기능
- 가상 IP 별 별도의 환경 설정 기능 (설정 파일의 listen_address= 이용)
- 가상 사용자 설정, 강력한 사용자설정
- 전송 대역폭 지정
- PAM 지원 (버전 1.2.0부터는 PAM을 통한 wtmp에 로긴 로그를 남김)
- xferlog 표준 로그 파일보다 상세한 자체 로그 파일 형식 지원
- Standalone 방식과 inetd (xinetd)를 통한 운영 모두 지원
- IP별 다른 환경 파일 지정 기능 (tcp_wrappers와 함께 사용할 때)


### Tips ### ::: ★★★

- ssh 터널링을 사용하여 vsftp 접속시 Bad IP Deny 나오면 pasv_promiscuous=YES 을 추가하라.

*** 접속에러
- 반드시 ftp 유저의 홈디렉토리의 권한을 root.root 로 셋팅해야 익명접속이 문제없이 된다.
- /vsr/ftp/pub 폴더의 권한을 777 로 바꾸면 접속이 안된다.
vs가 Very Secure 의 약자이다. 쉽게 얘기해서 보안이 강화된 ftp 다. /var/ftp/pub 디렉토리에
모든 권한을 풀어주게 되면 보안상 위험하기 때문에 vsftpd 에서는 접속을 막도록 설정되어 있다.


500 OOPS: cannot open chroot() user list file 에러
vsftpd.chroot_list 주석제거시 해당 파일이 없으면 발생한다.
500 OOPS: cannot change directory:/var/ftp
/var/ftp 디렉토리를 생성해 주면 된다.
550 Permission denied.
write 권한이 없는 경우 발생하는 에러이다. (write_enable=YES 로 지정)


*** 접속자 확인
vsftpd v1.2.0 이상부터 PAM 을 통해 wtmp 에 로그를 남기므로 last 로 접속여부를 확인할 수 있다.
ftpwho 형태의 명령은 없으며 다음 명령어 등으로 확인할 수 있다.
# ps -ef|grep vsftpd
# fuser -v ftp/tcp


*** SELINUX
# setsebool -P ftp_home_dir 1
페도라 코어 4 까실때 SELinux 로 설정했다면 디폴트로 사용자의 home 디렉토리에 쓰기를 막아놓는다.
SELinux 설정에서 FTP 부분을 변경하자.
# service vsftpd restart
home 디렉토리의 읽고쓰기를 1(True)로 변경하시고 vsftpd 를 재시작.

# setsebool -P ftpd_disable_trans 1
FTP 에 관하여 SELinux 정책을 아예 적용하지 않는 옵션을 설정



#####
##### Install ###

http://vsftpd.beasts.org/
ftp://vsftpd.beasts.org/users/cevans/


*** 설치
# tar xvfz vsftpd-1.2.0.tar.gz
# cd vsftpd-1.2.0

# vi logging.c
/* str_replace_unprintable(p_str, '?'); */
vsftpd는 출력할 수 없다고 판단하는 ASCII 코드 31 이하, 128~159, 177 문자를 ? 로 바꿔서 저장한다.
한글 파일명을 전송할 때 로그에 ???? 로 남지않도록 str_replace_unprintable(p_str, '?'); 를 주석처리

# vi builddefs.h
tcp_wrappers 접속제어를 사용하려면
#undef VSF_BUILD_TCPWRAPPERS -> #define VSF_BUILD_TCPWRAPPERS 로 바꾼다.

# mkdir /usr/local/sbin /usr/local/man/man{5,8}
# make
# make install
생성된 vsftpd 파일이 /usr/local/sbin 에 복사된다.
man 페이지가 /usr/local/man/man5, /usr/local/man/man8 로 복사
inet 모드로 운영할 때 사용할 vsftpd 파일도 /etc/xinetd.d 디렉토리에 복사가 된다.

# cp vsftpd.conf /etc
# cp install_dir/RedHat/vsftpd.pam /etc/pam.d/ftp
local 계정 사용자들의 로그인 인증을 위해 설치 디렉토리안의 RedHat 안에 있는
vsftpd.pam 파일을 /etc/pam.d 디렉토리에 ftp 라는 이름으로 복사


### 환경설정 ###

# vi /etc/vsftpd.conf

# mkdir /usr/share/empty
VSFTP 는 empty 라는 디렉토리를 필요로 한다. 기본구성은 /usr/share/empty 다.


*** 사용자 생성
- VSFTP 를 운영하기 위해서는 nobody 사용자가 필요
# usradd -M nobody
# grep nobody /etc/passwd
nobody:x:99:99:Nobody:/:/bin/bash

- Anonymous FTP 에서 사용할 ftp 계정 생성
# mkdir /var/ftp
# useradd -d /var/ftp ftp
# chown root.root /var/ftp
반드시 ftp 유저의 홈디렉토리의 권한을 root.root 로 셋팅해야 익명접속이 문제없이 된다.
# chmod og-w /var/ftp


*** 접속제한
# vi /etc/pam.d/vsftpd
auth required /lib/security/pam_listfile.so
item=user sense=deny file=/etc/ftpusers onerr=succeed <==(1)
auth required /lib/security/pam_pwdb.so shadow nullok
auth required /lib/security/pam_shells.so
account required /lib/security/pam_pwdb.so
session required /lib/security/pam_pwdb.so

이 파일은 /etc/ftpusers에 등록된 유저명은 접근을 하지 못하게 하는 것이다. (sense=deny)
ftpusers 파일이 없다면 생성해 주면 된다. (/etc/passwd 파일을 참조해 작성하면 된다)

# vi /etc/ftpusers
FTP 접속을 허용하지 않을 ID를 등록한다. (또는 vsftpd.ftpusers)
- /var/log/messages에 다음과 같은 로그가 남는다.
Aug 16 22:21:52 truefeel vsftpd: PAM-listfile: Refused user xxxxxxxx for service vsftpd


*** etc
# vi /etc/xinetd.d/vsftp ::: disable = yes
# /etc/rc.d/init.d/xinetd restart
# /usr/local/sbin/vsftpd &



#####
##### vsftpd.conf ###


*** 기본 설정
ftpd_banner=Welcome to acsecret FTP service.
FTP 서버 접속할 때 로긴 메시지 (default=버전번호). 한글 사용 가능
dirmessage_enable=YES 새로운 디렉토리에 들어갔을 때 뿌려줄 환경 메시지를 저장한 파일명

listen=YES Standalone 으로 운영할 때 listen=YES.
connect_from_port_20=YES Standalone 일때 포트 변경을 원할 경우 설정.
listen_port=2121 기본 포트외 다른 포트를 사용한다. vsftpd 서버를 재실행한다.


*** 서버 동작
idle_session_timeout=600 (default=300초). 클라이언트에서 아무런 명령이 없을경우
세션을 끝낼 때까지의 대기시간.
data_connection_timeout=120 (default=60초). data connection 을 끊을 대기 시간.
ls_recurse_enable=YES 디렉토리 내용 출력시 캐쉬 사용여부.
(클라언트 ftp 접속 프로그램 에서도 지정 가능)
pam_service_name=vsftpd PAM 파일명을 지정 (설치할 때 /etc/pam.d/vsftpd 명으로 복사함)


*** 접속 권한
local_enable=YES (default = NO). 로컬 계정 사용자의 접속 허용 여부
anonymous_enable=YES (default = YES). anonymous 사용자의 접속 허용 여부
userlist_enable=YES /etc/vsftpd.user_list 에 있는 사용자에 대해 접근을 허가 설정.

- 익명접속
nopriv_user=ftp
no_priv_user=ftp 익명(anonymous) 로그인시, 앨리어싱될 유저명 기입.

deny_email_enable=YES 익명 접속시 패스워드에 일반 이메일 주소를 거부 여부
(vsftpd.banned_emails에 지정된 이메일 주소만 허용)
banned_email_file=/etc/vsftpd.banned_emails

- chroot
chroot_local_user=YES (default=NO). 접속시 로컬 사용자의 홈디렉토리를 /로 변경
사용자의 홈디렉토리를 벗어나지 못하도록 제한하기 위한 설정. 제한이 필요할 경우
YES 로 바꾼 후 제한할 사용자 ID 를 chroot_list_file= 에 설정한 파일에 지정한다

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
접속시 사용자 홈디렉토리를 /로 변경할 사용자 목록 허용. chroot 제한(적용)이 필요할 경우
YES 로 바꾼후 제한을 적용할 사용자 ID 를 chroot_list_file= 에 설정한 파일에 지정한다.

주의할 것은 chroot_local_user=YES 와 chroot_list_enable=YES 를 함께 사용할 경우
/etc/vsftpd.chroot_list에 포함된 사용자 ID 만 제한없이 홈디렉토리를 벗어날 수 있다. (반대로 작용)


*** 화일 권한
local_umask=022 (default = 077). 로컬 계정 사용자용 umask
write_enable=YES (defualt = NO). write 명령어 허용 여부

ascii_upload_enable=YES ASCII 파일 업로드 가능.
ascii_download_enable=YES ASCII 파일 다운로드 가능

- 익명사용자
anon_upload_enable=YES (default = NO). anonymous 사용자가 파일을 업로드 할수 있는지 여부
허용시 업로드 할수있는 디렉토리를 생성해 주어야 한다.
anon_mkdir_write_enable=YES (default = NO). anonymous 사용자의 디렉토리 생성 허용 여부

chown_upload=YES 익명유저가 업로드한 파일의 소유권을 자동변경.
chwon_username=acsecret 소유권을 변경하기 원하는 유저명으로 기입


*** log
session_support=YES wtmp 에 로그 남기기 (YES 로 해야만 last 명령어로 접속 여부 확인 가능)

xferlog_file=/var/log/vsftpd.log 파일 전송 로그 파일명
xferlog_enable=YES (default=YES). 파일 전송 로그를 남길 것인지 여부
xferlog_std_format=YES (defalut=YES). xferlog 표준 포맷으로 로그를 남길지 여부
xferlog 표준 포맷은 로그인, 디렉토리 생성등의 로그를 남기지 않지만
vsftpd 스타일 로그는 이를 포함한 보다 상세한 로그를 남긴다

- vsftpd 스타일 로그 예
Sun Jul 12 01:38:32 2003 [pid 31200] CONNECT: Client "127.0.0.1"
Sun Jul 12 01:38:34 2003 [pid 31199] [truefeel] FAIL LOGIN: Client "127.0.0.1"


### 필요한 설정을 추가 ###

- pasv mode
pasv_enable=NO 사무실에서 공유기를 통해서 접속을 하는데 ls 등이 자주 먹통이 되면 설정.
pasv_promiscuous=YES
pasv_min_port=30000
pasv_max_port=30999

- 가상유저
guest_enable=YES
guest_username=virftp 가상 유저의 실제 할당 계정
user_sub_token=$USER 서로 다른 홈 디렉토리를 부여하기 위해 셋팅
local_root=/home/virftp/$USER
virftp_use_local_privs=YES 설정하지 않으면 기본 적으로 anonymous 의 권한을 가지고
화일을 생성하지 못한다.

- xinetd 를 통하지 않고 standalone으로 동작할 때만 사용 가능)
max_clients=100 최대 접속자 수
max_per_ip=3 IP 당 접속 수


*** 전송속도 제한 (0은 제한없음, 단위는 초당 bytes)
local_max_rate=200000 계정 사용자의 전송량 제한
anon_max_rate=100000 anonymous 사용자의 전송속도 제한
trans_chunk_size=0 지정한 byte 단위로 나눠서 전송 저장한다. 0은 vsftpd 가 알아서 판단한다.
v1.1.3 이상에서 trans_chunk_size 옵션이 있다.

anonymous 사용자와 일반 계정 사용자로 나눠서 bandwidth 를 설정 하도록 옵션을 제공한다.
이 설정은 전송되는 상황을 더 쉽게 파악할수 있도록 해준다.
anon_max_rate=10000, trans_chunk_size=0 로 설정하여 chunk size 를 vsftpd 가 판단하도록 한다.

vsftpd 는 chunk size 를 제한한 rate(10000) 보다 큰 50000 byte 가 적당하다고 판단했다면
1~4 초 사이에는 전송된 파일 크기는 0 으로 표시될 것이다.
5 초가 되어야 파일 크기는 50000 으로 보일 것이다. (5초 이후에도 마찬가지다)

이때 trans_chunk_size=5000 으로 했다면 전송된 파일 크기를 바로바로 확인할 수 있다.
size 는 최소 4096~65536 의 값을 설정해야 적용이 된다.

- proftpd 의 RateReadFreeBytes 와 RateReadHardBPS 같은 역할을 하는 옵션은 없다.
RateReadFreeBytes bandwidth 제한 없이 전송할 수 파일 크기
RateReadHardBPS RateReadFreeBytes 보다 파일이 클때, 위의 지정한 파일크기 까지는 제한없이 전송.
그 다음 크기부터는 제한한 bandwidth로 파일 전송



#####
##### 가상유저 서비스 ###

가상유저 FTP 란 로컬 시스템에 실제로 존재하지 않는 유저로 FTP 로그인을 허락하고 운영하는 환경이다.
로컬 시스템에 계정을 추가하지 않고도 FTP 만을 위한 사용자를 추가, 삭제할 수 있는 FTP 시스템이다.
사용자 들에게 FTP 만 제공해야 될때 아주 유용하게 사용할 수 있다.


*** 가상유저 데이터베이스 생성
FTP 가상유저를 생성하기 위해 가상유저와 패스워드가 담긴 DB 파일을 만들어야 되는데
간단히 사용자 ID 와 비밀번호가 입력된 텍스트 파일을 db_load 유틸을 이용해
DB 포맷으로 변환해 줌으로써 가상유저가 사용할 사용자 DB 파일을 만들수 있다.
홀수줄은 FTP 가상유저 ID 가 되고 짝수줄은 바로 윗줄에 명시된 FTP 가상유저의 비밀번호가 된다.

# cat vir_user.txt
myid
1234

DB 포멧으로 변환하기 위해 db_load 유틸을 사용하는데 db4-utils 이라는 RPM 패키지에 포함되어 있다.
db_load 유틸을 설치하지 않았으면 db4-utils RPM 패키지를 다운받아 설치하라.
/etc 디렉토리안에 넣고, root 이외의 사용자는 파일을 볼수없게 퍼미션을 600 으로 변경

# db_load -T -t hash -f vir_user.txt ~/vsftpd_login.db
# mv ~/vsftpd_login.db /etc/
# chmod 600 /etc/vsftpd_login.db
# ls -l
-rw------- 1 root rootl 12288 10월 27 16:39 /etc/vsftpd_login.db


*** 사용자 인증에 사용할 PAM 파일 생성
이제 가상 유저들의 ID와 비밀번호가 정확한지 체크한후 FTP 로그인을 허락하기 위한 PAM 을 만들 것이다.

# vi /etc/pam.d/vsftpd
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login account required \
/lib/security/pam_userdb.so db=/etc/vsftpd_login


*** 가상유저 계정 생성과 가상유저들이 사용할 디렉토리 생성
virftp 계정을 가상 유저들의 실제 계정으로 추가하고
/home/virftp 디렉토리를 가상 FTP의 홈디렉토리로 지정을 할 것이다.

# useradd -d /home/virftp virftp
# cp /etc/hosts /home/virftp/
# chown virftp.virftp hosts
# ls -l
drwx------ 4 virftp virftp 4096 10월 27 16:39 /home/virftp
-rw-r--r-- 1 virftp virftp 146 10월 27 16:39 /home/virftp/hosts


*** 가상 FTP 환경설정 파일 세팅
이제 마지막으로 가상 FTP 를 사용하기 위한 환경설정 파일을 작성할 것이다.
vsftpd_vitual.conf 라는 파일에 다음의 내용을 넣어 /etc 디렉토리에 생성하라.

listen=YES standalone 모드로 설정하기 위해
listen_port=2121 listen_port 를 추가하고 vsftpd 서버를 재실행한다
#connect_from_port_20=YES

local_enable=YES 가상 유저도 로컬사용자 이다.
anonymous_enable=NO 익명접속 막음
chroot_local_user=YES 홈 디렉토리 이외는 접속 불능
write_enable=YES 화일 생성 가능
local_umask=022
xferlog_enable=YES 접속 로그 생성
xferlog_file=/var/log/vsftpd.log
pam_service_name=vsftpd pam 화일 이름
pasv_min_port=30000
pasv_max_port=30999

guest_enable=YES 반드시 ok
guest_username=virftp 가상 유저의 실제 할당 계정
user_sub_token=$USER 서로 다른 홈 디렉토리를 부여하기 위해 셋팅
local_root=/home/virftp/$USER

virftp_use_local_privs=YES 설정하지 않으면 기본 적으로 anonymous 의 권한을 가지고
화일을 생성하지 못한다.
dirmessage_enable=YES


*** 위와같이 설정이 되었다면 /home/virftp 에 가상유저별 홈디렉토리를 생성해야한다.
# mkdir /home/virftp/{myid,yourid}
# chown virftp.virftp /home/virftp/*
# ls -l /home/virftp/
-rw-r--r-- 1 virftp virftp 146 10월 27 16:39 hosts
drw-r-xr-x 1 virftp virftp 4096 10월 27 16:39 myid
drw-r-xr-x 1 virftp virftp 4096 10월 27 16:39 yourid


*** vsftpd 실행
가상유저 FTP 를 운영하기 위해서는 vsftpd 를 Standalone 방식으로 작동시켜야 된다.
vsftpd 실행시에 /etc/vsftpd_virftp.conf 파일을 환경설정 파일로 지정하자.
# ftp localhost
user :
passwd :

+ Recent posts