<% %> 안에 들어가는 메소드
Response.Write "이런식으로 사용" & 변수
2009년 3월 31일 화요일
많이 쓰이는 자바스크립트 함수 및 메소드
document.writeIn('출력할 문자 및 변수 등' + '추가 되는 문자열 및 변수부분'); //출력 메소드
document.location.redirect("연결할 주소"); //페이지 연결 메소드
2009년 3월 30일 월요일
MYSQL ROOT 패스워드를 변경해보자
1. mysql root 패스워드를 변경해보자(리눅스)
<우선 mysql start 하기>
mysql설치루트/bin>./mysqld_safe &
<mysql 접속하기>
mysql설치루트/bin>./mysql -u root mysql
<password 변경하기>
mysql> use mysql;
mysql> update user set password=password('new-passwd') where user = ('root');
mysql> flush privileges;
(참고 : update문을 사용하여 암호가 바뀌었을땐 flush privileges를 이용하여 사용자 관련 테이블에 알려야 함)
마지막으로 서버 재실행
2. 패스워드 분실시
패스워드 분실시 빠르게 root 패스워드를 변경 해보자
우선 mysql를 stop 한 환경에서 작업을 해야 한다.
<권한 테이블을 사용하지 않겠다고 선언하면서 서버 start>
mysql설치루트/bin> ./mysqld_safe --skip-grant-tables &
<mysql 데이터베이스로 바로 접속>
mysql설치루트/bin>./mysql -u root mysql
<update문으로 패스워드 변경>
mysql>update user set password=password('new-passwd') where user = 'root';
<mysql 접속 종료>
mysql>quit
<mysql stop하기>
mysql설치루트/bin>./mysqladmin -u root -p shutdown
<mysql 재시작>
mysql설치루트/bin>./mysqld_safe &
<mysql 접속하기>
mysql설치루트/bin>./mysql -u root -p
password:
mysql>
MYSQL 사용자 생성 및 권한 설정
우선 사용자를 생성하기 위해서 Root 권한으로 Mysql에 접속을 합니다.
#> Mysql -u root -p
Enter Password : ######
mis13 이란 유저가 Mis13이란 DB의 권한을 가지게 해보겠습니다. (암호는 mis1313)
mysql> GRANT ALL PRIVILEGES ON Mis13.* to mis13@localhost IDENTIFIED BY 'mis1313' WITH GRANT OPTION;
mysql> flush privileges;
작성해주시면 끝... mis13으로 접속을 하시면 Mis13이란 DB만 보이실겁니다.
2. 그 밖에 외부에서도 접속하기, 모든 DB권한 주기
어떤 DB도 접속 가능하게 권한을 주는것은
mysql> GRANT ALL PRIVILEGES on *.* to mis13@localhost IDENTIFIED BY 'mis1313' WITH GRANT OPTION;
mysql> flush privileges;
슈퍼유저로 (즉 root 권한으로) 권한을 주는것은
mysql> GRANT ALL PRIVILEGES on *.* to mis13@"%" IDENTIFIED BY 'mis1313' WITH GRANT OPTION;
mysql > flush privileges;
GRANT 명령어 말고 Mysql DB 안에 User, DB 테이블에 넣는 법도 있지만 초보분이 사용하시기엔
이 방법이 편하실겁니다.
3. 모든 권한이 아닌 부분별 골라서 주기
예) mis13 이라는 계정이 전체 데이터베이스에 대해서 select, insert, delete, update 권한만 주고 싶을 경우
mysql>GRANT select, insert, delete, update on *.* to mis13@localhost IDENTIFIED BY 'mis1313' WITH GRANT OPTION;
mysql> flush privileges;
예) mis13 이라는 계정이 Mis13 이라는 데이터베이스에 대해서 select, insert, update 권한만 주고 싶을 경우
mysql>GRANT select, insert, update on Mis13.* to mis13@localhost IDENTIFIED BY 'mis1313' WITH GRANT OPTION;
mysql>flush privileges;
VSFTP 설치 및 설정내역
VSFTP 설치 및 설정내역
VSFTP 설치 및 설정내역 보기..
1. vsftpd FTP 서버에 대해
vsftpd는 UNIX 시스템에서 사용할 수 있는 free FTP 서버(라이센스는 GPL)이다.
vsftpd가 내세우고 있는 것은 보안, 성능, 안정성이다. 지금까지 vsftpd의 자체 보안 문제가 있어
보안권고가 나온 적은 없다.(Redhat의 rpm 패키지중에 tcp_wrappers 지원없이 만들어져서 업데이트
rpm은 나온 적 있음)
* 지원 및 테스트된 OS
- Linux (Redhat, SuSE, Debian)
- Solaris (버전에 따라 IPv6나 inet_aton함수때문에 설치가 잘 안될 수 있음)
- FreeBSD, OpenBSD
- HP-UX
- IRIX
* 주요 기능
- 가상 IP별 별도의 환경 설정 기능 (설정파일의 listen_address= 이용)
- 가상 사용자 설정
- 전송 대역폭 지정
- PAM 지원 (버전 1.2.0부터는 PAM을 통한 wtmp에 로긴 로그를 남김)
- xferlog 표준 로그 파일보다 상세한 자체 로그 파일 형식 지원
- Standalone 방식과 inetd(xinetd)를 통한 운영 모두 지원
- IP별 다른 환경 파일 지정 기능 (tcp_wrappers와 함께 사용할 때)
- ...
2. vsftpd 설치
※ 설치는 Redhat 기준. 솔라리스의 PAM에 대한 것은 README.solaris 파일 참조한다.
http://vsftpd.beasts.org/ 에서 최신버전(현재 1.2.0)의 소스를 받아온다.
=현재 최신버전 링크=
ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.2.2.tar.gz
1. vsftpd 가 설치되어 있는지 확인하고 설치한다.
소스 설치가 안될경우.. yum 으로 설치
[root@localhost sysconfig]# rpm -qa |grep vsftpd
[root@localhost sysconfig]# yum install vsftpd
-------------------------------------------------------------
# tar xvfz vsftpd-1.2.0.tar.gz
# cd vsftpd-1.2.0
-------------------------------------------------------------
한글로 된 파일명을 전송할 때 로그에 파일명이 ???? 로 남지 않도록
logging.c 파일을 연 후 140번째 줄의
str_replace_unprintable(p_str, '?');
를 다음처럼 주석 처리한다.
/* str_replace_unprintable(p_str, '?'); */
또한 tcp_wrappers를 통한 접속제어를 사용하려면 builddefs.h 에서
#undef VSF_BUILD_TCPWRAPPERS 를
#define VSF_BUILD_TCPWRAPPERS 로 바꾼다.
-------------------------------------------------------------
# make
# make install (vsftpd 데몬, man page, xinetd 용 설정 파일 설치)
# cp vsftpd.conf /etc (환경설정 파일 복사)
# chmod 600 /etc/vsftpd.conf
# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd (PAM 설정 파일 복사)
-------------------------------------------------------------
/etc/pam.d/vsftpd 첫번째 줄에 다음과 같이 있다.
pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
즉, /etc/ftpusers 파일에 존재하는 ID는 접속할 수 없게된다.(sense=deny)
-------------------------------------------------------------
# FTP 접속을 허용하지 않을 ID를 등록한다.
# /etc/passwd를 참조해서 설치할 서버의 환경에 맞게 등록
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
smmsp
xfs
gdm
mysql
3. 설정내역
# anonymous 사용자의 접속 허용 여부, 즉 anonymous ftp (default = YES)
# 공개된 형태의 FTP 서버로 운영할 것이 아니라면 NO로 한다.
anonymous_enable=NO
# 로컬 계정 사용자의 접속 허용 여부
local_enable=YES
# write 명령어 허용 여부
write_enable=YES
# 로컬 계정 사용자용 umask
local_umask=022
# anonymous 사용자가 파일을 업로드 할 수 있는지 여부
# anon_upload_enable=NO
#
# anonymous 사용자의 디렉토리 생성 허용 여부
# anon_mkdir_write_enable=NO
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
# xferlog 표준 포맷으로 로그를 남길지 여부
# 아래에서 NO로 설정했을 때를 설명함
xferlog_std_format=NO
# 파일 전송 로그 파일명
#xferlog_file=/var/log/vsftpd.log
#
# 파일 전송 로그를 남길 것인지 여부
xferlog_enable=NO
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# FTP 서버 접속할 때 로긴 메시지 (default = vsFTPd 버전번호)
# 한글 사용 가능
# ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# 사용자의 홈디렉토리를 벗어나지 못하도록 제한하기 위한 설정
# 제한이 필요할 경우 YES로 바꾼 후 제한할 사용자 ID를 chroot_list_file= 에 설정한 파일에
# 지정한다.
# chroot_local_user= 설정과 관련이 있으니 '3. 문제 해결'을 꼭 읽어보라.
#
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
# PAM 파일명을 지정 (설치할 때 /etc/pam.d/vsftpd명으로 복사함)
pam_service_name=vsftpd
userlist_enable=YES
#enable for standalone mode
listen=YES
tcp_wrappers=YES
4. 문제 해결
1) ftpwho 같은 명령은 있나?
또한 last를 해도 접속된 걸 확인할 수가 없는데 방법이 없나?
ftpwho 형태의 명령은 없으며 임시적으로 다음 명령어 등으로 확인할 수 있다.
# ps -ef|grep vsftpd
# fuser -v ftp/tcp
vsftpd v1.2.0이상부터 PAM을 통해 wtmp에 로그를 남기므로 last로 접속여부를 확인할 수 있다.
2) 한글 파일명이 전송될 때는 vsftpd.log 에 ???? 로 남는다. 해결책은?
vsftpd는 출력할 수 없다고 판단하는
ASCII 코드 31 이하, 128~159, 177 문자를 모두 ? 로 바꿔서 저장을 한다.
따라서 이 부분을 처리하지 않고 저장하도록 소스를 수정한 후 컴파일하면 해결된다.
3) 사용자가 홈디렉토리를 못 벗어나게 하고 싶는데?
/etc/vsftpd.conf에 다음을 추가하면, 모든 사용자는 자신의 홈디렉토리만 접근할 수 있다.
chroot_local_user=YES
또한 특정 사용자로만 제한을 하고 싶다면 다음과 같이 한다. /etc/vsftpd.chroot_list에는 제한할
사용자 ID를 한줄에 하나씩 나열하면 된다.
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
주의할 것은 chroot_local_user=YES와 chroot_list_enable=YES를 함께 사용할 경우에는
/etc/vsftpd.chroot_list에 포함된 사용자 ID만 제한없이 홈디렉토리를 벗어날 수 있다.
즉, 반대로 작용한다.
standalone으로 FTP서버가 동작중이면 재실행 필요. standalone에 대해서는 6)번에서.
4) root로 접속할 수는 없나?
가능하면 root 접속은 허용하지 않기를 바란다.
/etc/ftpusers 파일에서 root를 빼면 접속이 가능하다.
5) ID/비밀번호가 정확히 맞는데 로긴할 때 자꾸 530 Login incorrect. 라고 나온다.
/etc/ftpusers (또는 vsftpd.ftpusers)에 등록된 사용자인지 확인한다.
여기에 등록된 사용자는 로긴할 수 없다. 이럴 때 /var/log/messages에 다음과 같은 로그가 남는다.
Aug 16 22:21:52 truefeel vsftpd: PAM-listfile: Refused user xxxxxxxx for service vsftpd
6) standalone으로 운영하고 싶다.
(즉, apache나 sendmail처럼 xinetd 통하지 않고 운영을 원한다.)
/etc/xinetd.d/vsftpd (vsftpd가 아닌 다른 파일명일 수 있음) 에서 disable = yes 로 변경하여
xinetd로 서비스 하지 않도록 설정한다. xinetd 를 재실행하면 이제 xinetd를 통한 ftp 서비스는 종료된다.
레드햇의 경우 /etc/rc.d/init.d/xinetd restart
이제 vsftpd 데몬를 실행한다. (소스로 설치시 기본 경로는 /usr/local/sbin)
# /usr/local/sbin/vsftpd &
7) 다른 포트(기본 21번)를 사용하고 싶다. (예를 들어 11121번 포트를 원할 때)
* xinetd를 이용하는 경우
/etc/service 에 'ftp2 11121/tcp' 한 줄을 추가한다.
그리고 /etc/xinetd.d/vsftpd (vsftpd가 아닌 ftp와 같은 다른 파일명일 수 있음) 에서
service ftp 를 service ftp2로 바꾸고, xinetd 를 재실행한다.
* standalone으로 운영하는 경우
/etc/vsftpd.conf 에서 listen_port=11121 을 추가하고 vsftpd 서버를 재실행한다.
바뀐 포트로 운영중인지 확인은 netstat -atnp(리눅스) 또는 netstat -an(그 이외 유닉스)
8) 업로드 파일 크기를 제한하는 방법은 없나요? 이를테면 5MB이상의 파일은 업로드 못한다든지.
현재 1.2.1버전까지 vsftpd 자체에 설정하는 방법은 없습니다.
5. 참고할만한 문서
* vsftpd 1.2.0 설치 문서
ftp://vsftpd.beasts.org/users/cevans/untar/vsftpd-1.2.0/INSTALL
* vsftpd.conf man page
* vsftpd에서 한글파일로그와 lastlog 로긴확인하기 (좋은진호)
http://coffeenix.net/board_view.php?bd_code=4
* vsftpd에서 전송속도 제한 (bandwidth limit) (좋은진호)
http://coffeenix.net/board_view.php?bd_code=21
vsftpd의 다양한 기능 설정(vsftpd.conf)
vsftpd는 다양한 기능이 있습니다. 꼭 필요한 몇개의 지시자에 대해 알아보도록 하겠습니다.
1) 아스키모드로 파일전송 하려면?
vsftp는 기본적으로 아스키모드(ASCII)로의 파일 전송을 허용하지 않습니다. 윈도우와 리눅스등의 엔터문자로 인한 text파일 변조(??)등 때문에 기본 허용하지 않습니다. 만약 필요해서 허용 하려면 다음과 같이 설정하시기 바랍니다.
ascii_download_enable=YES ascii_upload_enable=YES |
2) 쉘권한이 없는 사용자들이 ftp를 사용가능하게 하려면?
대부분의 ftp서버는 로그인시 쉘을 요구하게 됩니다. 하지만 쉘 권한을 주지 않은 사용자들에게 ftp접근 권한을 주려면 /etc/pam.d/vsftpd파일에서 4번째 줄에 #을 입력하여 주석 처리 합니다.
(check_shell=NO 라는 지시자가 있었지만 PAM인증을 받는 곳에서는 작동하지 않았다.)
#%PAM-1.0 auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed auth required pam_stack.so service=system-auth #auth required pam_shells.so account required pam_stack.so service=system-auth session required pam_stack.so service=system-auth |
3) 사용자 home 디렉토리를 벗어나지 못하게 하려면?
ftp사용자가 자기 home디렉토리를 벗어나지 못하게 하려면 다음과 같이 설정합니다.
chroot_list_enable=YES chroot_local_user=YES |
단순히 touch /etc/vsftpd.chroot_list 이렇게 파일을 만들어 주면 됩니다.
그리고 특정유저는 제외하려면 /etc/vsftpd.chroot_list 파일에 사용자 계정을 넣어줍니다.
4) "."으로 시작하는 숨김파일을 기본적으로 보이게 하려면?
리눅스에서 "."으로 시작하는 파일은 숨김 파일입니다. 하지만, 다른 os에서는 "."으로 시작해도 숨김파일으로 취급하지 않는 경우가 있습니다. 이런경우 항상 "."으로 시작하는 파일을 보여주려면 다음과 같이 설정합니다.
force_dot_files=YES |
5) ftp 접속시 파일과 디렉토리의 소유권을 숨기려면?
특수한 목적으로 파일 및 디렉토리의 소유자를 숨길 경우가 있습니다. 이런 경우 다음과 같이 설정하면, ftp라는 사용자로 보이며, 본 ID는 보이지 않습니다.
hide_ids=YES |
6) 하위디렉토리의 파일 및 디렉토리를 볼수 있는 ls -R 명령 허용하려면?
하위디렉토리 리스트를 보여주기 위해서 ls -R 명령어를 내릴때가 있습니다. 이런경우 대부분의 ftp 서버는 부하등의 이유로 막아 두게 됩니다. vsftpd또한 기본적으로 막아 놓은 상태이며, 허용하기 위해서는 다음 지시자를 입력하세요.
ls_recurse_enable=YES |
7) openssh에 chroot 패치가 된 것을 사용하는데 정책을 같이 적용하려면?
openssh에 패치를 가하면, ssh 또한 자기 home 디렉토리를 벗어나지 못하게 설정가능합니다. 이 정책은 /etc/passwd파일의 홈디렉토리 부분에 /home/사용자/./ 와 같이 "/./"을 붙여 사용자를 홈디렉토리로 제한하게 됩니다. 이 정책에 따라 적용하려면, 다음 옵션을 적용하시기 바랍니다.
passwd_chroot_enable=YES |
8) 파일을 올렸는데 시간이 이상하게 보인다면?
대부분의 ftp서버에서 시간 표현은 표준시각(GMT)을 보여주게 됩니다. 국내에서만 사용하는 ftp서버는 다음 옵션으로 국내 시간으로 보여줄 수 있습니다.
use_localtime=YES |
9) 전송속도를 제한하고 싶다면?
다운로드 받는 한 사용자가 네트웍 트래픽을 모두 사용해 버리는 것을 방지하기 위해서 대역폭을 조정해야 하는 경우가 있습니다. 다음 옵션으로 가능합니다. 뒤에 나오는 숫자의 단위는 (Bytes/Sec) 입니다.
local_max_rate=300000 |
10) 동시 접속자수를 제한하려면?
ftp서버에 접속할 수 있는 최대 접속수를 제한하려면, 아래의 설정으로 제한 가능합니다.
max_clients=10 |
11) 한 IP당 접속할 수 있는 동시접속 수 제한하려면?
ftp서버의 한 사용자가 대역폭을 모두 사용해 버리는 것을 방지하기 위해, 전송 속도를 제한하면, flashget 등의 유틸리티로 몇개의 접속으로 나눠 받으면 대역폭 제한을 우회 할 수 있습니다. 이런경우 한 IP에서 접속 가능한 동시접속 수를 제한하므로 해결 가능합니다.
max_per_ip=2 |
12) PASSIVE 모드 사용시 사용하는 포트 범위를 제한하려면?
FTP에서 데이터 전송을 위해서 20번 포트를 사용합니다. 이경우 서버에서 클라이언트 쪽으로 연결을 하기 때문에 중간에 방화벽 또는 공유기등을 사용한다면, 정상작동하지 않을 수 있습니다. 이런 문제를 해결하기위해서 PASSIVE모드라는 것이 있고, 이 모드에서는 서버의 1024이후 포트를 사용합니다. 이 포트의 범위를 제한하기 위해서는 다음과 같이 설정합니다.
pasv_min_port=40000pasv_max_port=50000 |
13) mp3, wmv 등의 확장자를 가진 파일의 업로드를 금지하려면?
ftp를 통해 인증된 사용자가 파일을 올리는 것을 막는 방법은 거의 없었습니다. 이 vsftpd는 특이하게 특정파일 패턴을 제한하는 기능이 있습니다.
deny_file={*.mp3,*.wmv} |
14) 특정파일 패턴을 숨기려면?
특정파일이 서버내에는 존재하지만, ftp접속시 보여지지 않게 설정할 수 있습니다. 다음예를 보시기 바랍니다.
hide_file={*.mp3,.hidden,hide*,h?} |
-----------------------------------------------------------------------------------------------------------------------
####################################### Global Settings ########################################
## VsFTPd의 전체 설정 입니다. ##
################################################################################################
#
############################## 기본 설정 ##############################
#
## VsFTP 데몬을 background로 실행할 것인지 설정 합니다. (기본값 = NO)
## => VsFTP 데몬은 기본적으로 inetd 모드로 동작이 됩니다. 따라서 독립모드(standalone)로
## 데몬을 운영하실 거라면 이 옵션과 listen 옵션을 모두 YES로 켜주셔야 됩니다.
## 반대로 VsFTP 데몬을 inetd 모드로 운영하시려면 이 옵션과 listen 옵션을 비활성화 하시면 됩니다.
## 일반적으로 FTP 데몬은 많은 접속이 있을 경우에 standalone 모드로 운영하는것이 좋으며,
## 많은 접속이 없는 경우에는 inetd 모드로 운영하는것이 시스템 자원효율에 좋습니다.
background=YES
## background 옵션과 같이 사용되며, 이 옵션은 listen_port에서 들어오는 요청에 대해서
## 데몬이 요청을 받아드릴지에 대해 설정합니다. (기본값 = NO)
## => 만약 데몬을 독립모드(standalone)로 운영하실 거라면 background 옵션과 같이 이 옵션도
## 함께 활성화 시켜야 됩니다.
listen=YES
## listen 옵션과 동일하지만, IPv6에서 운영할 때 사용 합니다. (기본값 = NO)
## => 일반적으로 IPv6는 사용하지 않으므로 비활성화 하시면 됩니다.
listen_ipv6=NO
## VsFTP 데몬이 독립모드(standalone)로 동작할 때 사용할 포트를 지정합니다. (기본값 = 21)
listen_port=21
## 멀티 FTP 데몬을 사용할 때 요청을 받아드릴 IP를 설정합니다. (기본값 = none)
## => 이 옵션은 multi-homed의 설정을 참조하시기 바랍니다.
#listen_address=none
## listen_address와 동일하며 IPv6에서 운영할 때 사용 합니다. (기본값 = none)
#listen_address6=none
## NAT를 사용하는 클라이언트의 공용 IP를 설정할 때 사용 합니다. (기본값 = none)
## => 일반적으로 설정하지 않아도 상관 없습니다.
#pasv_address=none
## VsFTPd가 구동될 서버의 유저를 설정합니다. (기본값 = nobody)
nopriv_user=nobody
## FTP 서버에 접속할 수 있는 클라이언트의 최대수를 제한하는 옵션 입니다. (기본값 = 0)
## => 기본값인 0으로 설정하면 제한을 두지 않습니다.
max_clients=100
## IP당 접속할 수 있는 최대수를 제한하는 옵션 입니다. (기본값 = 0)
## => 기본값인 0으로 설정하면 제한을 두지 않습니다.
max_per_ip=30
## 계정 사용자의 최대전송률을 지정합니다. (기본값 = 0)
## => 업/다운로드의 속도를 제한할때 사용하며, 단위는 bps 입니다.
local_max_rate=0
## 한번에 전송될 크기를 지정합니다. (기본값 = 0)
## => 이 옵션은 전송할 파일을 지정한 단위로 나눠서 전송하도록 하는 옵션입니다.
## rate 옵션과 밀접한 관계가 있으며, 기본값인 0으로 설정하면, vsftpd가 알아서 판단하므로
## 되도록이면 수정하지 않는것이 좋습니다.
## vsftpd의 제작자 또한 이 옵션을 따로 수정할 이유가 없을 것이라고 말하고 있습니다.
trans_chunk_size=0
## 서버의 FTP 데몬시간을 서버의 표준시간으로 고정할지 설정합니다. (기본값 = NO)
## => 만약 이 옵션을 비활성화 하게되면 표준시각(GMT)를 보여주므로, 한국의 경우 9시간의 오차가 발생합니다.
use_localtime=YES
## 프로토콜의 현재 상태를 출력해줄 것인지 설정합니다. (기본값 = NO)
## => 이 옵션을 활성화하면 ps 명령어를 사용했을때 세션의 현재 상태도 보여줍니다.
## 또한 LTN에서 제공하는 ftpwho 스크립트를 사용할 때에도 이 옵션을 활성화 하셔야 됩니다.
setproctitle_enable=YES
## 특정 사용자의 개별 설정 파일을 지정합니다. (기본값 = none)
## => 이 옵션을 사용하면 /etc/vsftpd/vsftpd.conf의 지시문을 무시하고 사용할 수 있습니다.
#user_config_dir=none
#
############################## 접속 설정 ##############################
#
## 계정 사용자의 접속에 대한 설정을 합니다. (기본값 = NO)
local_enable=YES
## 명시된 사용자만 로그인을 허용할 때 사용하는 옵션입니다. (기본값 = NO)
## => userlist_deny 옵션이 비활성화 된 상태에서만 작동합니다.
userlist_enable=NO
## 명시된 사용자가 로그인을 할 수 없도록 제한하는 옵션 입니다. (기본값 = YES)
## => userlist_enable 옵션이 비활성화 된 상태에서만 작동하며, 서로 반대되는 개념 입니다.
userlist_deny=YES
## 명시된 사용자를 읽어올 파일을 지정합니다. (기본값 = /etc/vsftpd.user_list)
userlist_file=/etc/vsftpd.user_list
## 디렉토리 목록의 사용자와 그룹 필드들에 있는 숫자 ID 들이 보이는 것이 기본값 입니다.
## 당신은 이 파라미터를 활성화 함으로써 글자 이름을 사용할 수도 있습니다.
## 그러나 이 항목은 성능상의 이유로 기본적으로 비활성화 되어 있습니다. (기본값 = NO)
text_userdb_names=NO
## PAM 사용자 인증을 할 때 사용될 인증파일을 지정합니다. (기본값 = ftp)
## => VsFTPd를 RPM으로 설치하게 되면 일반적으로 vsftpd로 인증파일이 생성됩니다.
pam_service_name=vsftpd
## TCP wrappers에 의해서 FTP 접속을 제어 할 것인지 설정합니다. (기본값 = NO)
## => 이 옵션을 활성화하면 /etc/hosts.allow와 /etc/hosts.deny에 의해서 제어할 수 있습니다.
## 그러나 이 옵션을 사용하려면 vsftpd 소스중 builddefs.h 파일에서 설정을 변경해야 됩니다.
## 변경전 -> #undef VSF_BUILD_TCPWRAPPERS
## 변경후 -> #define VSF_BUILD_TCPWRAPPERS
## 참고: LTN에서 제공하는 vsftpd는 이미 패치되어 있습니다.
tcp_wrappers=YES
## TLS를 사용할 것인지에 대해 설정합니다. (기본값 = YES)
## => 이 옵션은 TLS를 활성화하며, TLS가 가능한 클라이언트가 이용하는데 도움이 됩니다.
ssl_tlsv1=YES
## SSL을 통한 보안접속을 지원할 것인지에 대해 설정합니다. (기본값 = NO)
## => 만약 OpenSSL에 대해서 컴파일 되어 있고, 이 옵션을 허용할 경우 vsftpd는 SSL을 통한 보안 접속을 지원합니다.
## 이 옵션은 제어 연결을 지원(로그인을 포함)하며, 또한 데이터 연결도 지원 합니다.
## 사용자는 SSL을 지원하는 클라이언트를 필요로 할 것이며, 반드시 필요한 경우에만 허용하는것이 좋습니다.
## 그러나 vsftpd는 OpenSSL 라이브러리의 보안과 관련한 게런티를 만들 수 없으며,
## 이 옵션을 활성화 한다는것은 OpenSSL 라이브러리의 보안을 믿는다는 것을 전제로 합니다.
ssl_enable=NO
## SSL v2 프로토콜 연결을 허용할 것인지에 대해 설정합니다. (기본값 = NO)
## => 이 옵션은 ssl_enable이 활성화 되었을 때만 적용되며, TLS v1 연결들을 선호 합니다.
ssl_sslv2=NO
## SSL v3 프로토콜 연결을 허용할 것인지에 대해 설정합니다. (기본값 = NO)
## => 이 옵션은 ssl_enable이 활성화 되었을 때만 적용되며, TLS v1 연결들을 선호 합니다.
ssl_sslv3=NO
## SSL 인증서의 위치를 지정합니다. (기본값 = none)
## => SSL의 암호화 접속을 사용하기 위해, DSA 인증서의 위치를 지정합니다.
#dsa_cert_file=none
## 이 옵션은 vsftpd가 암호화 된 SSL 연결들에 대해 어떤 SSL 암호화 방식을 선택하는지에 따라 사용됩니다.
## 더 자세한 사항은 관련 암호 메뉴얼 페이지를 보십시요.
## 암호화를 알리지 않는 것은 원격에서 선택된 암호화 방식의 취약점을 공격하려고 불법적인 원격 공격을
## 막기 위한 유용한 보안 지침이 될 수 있습니다. (기본값 = DES-CBC3-SHA)
#ssl_ciphers=DES-CBC3-SHA
## 이 옵션은 ssl_enable이 활성화 되었을 때만 적용되며, 만약 이 옵션이 활성화 되어 있다면
## 모든 비익명 로그인은 데이터 연결 상태에서 데이터를 주고 받기 위해 보안 SSL 연결을 사용하도록
## 강제적으로 설정됩니다. (기본값 = YES)
#force_local_data_ssl=YES
## 이 옵션은 ssl_enable이 활성화 되었을 때만 적용되며, 만약 이 옵션이 활성화 되어 있다면
## 모든 비익명 로그인은 비밀번호를 전달하기 위해 보안 SSL 연결을 사용하도록 강제적으로 설정됩니다.
## (기본값 = YES)
#force_local_logins_ssl=YES
#
############################ 대기시간 설정 ############################
#
## 액티브 모드(Active Mode)를 사용하는 클라이언트의 접속 허용시간을 설정합니다. (기본값 = 60/초)
## => 클라이언트의 요청패킷(SYN Packet)을 받은뒤, 지정된 시간내에 접속이 안될경우 종료합니다.
connect_timeout=60
## 패시브 모드(Passive Mode)를 사용하는 클라이언트의 접속 허용시간을 설정합니다. (기본값 = 60/초)
## => 클라이언트의 요청패킷(SYN Packet)을 받은뒤, 지정된 시간내에 접속이 안될경우 종료합니다.
accept_timeout=60
## 데이터 전송 대기시간을 설정합니다. (기본값 = 300/Secs)
## => FTP 서버로부터 데이터를 업/다운로드를 한 뒤 아무런 작동도 안할때 접속이 종료되도록 합니다.
data_connection_timeout=300
## 접속 대기시간을 설정합니다. (기본값 = 300/Secs)
## => FTP에 접속한 뒤 아무런 작동도 안할 때 지정된 시간이후 접속이 종료되도록 합니다.
idle_session_timeout=300
#
############################# 메시지 설정 #############################
#
## 사용자가 FTP 서버에 접속했을 때 보여줄 환영 메시지 파일을 설정합니다. (기본값 = none)
#banner_file=/etc/vsftpd/welcome.msg
## 사용자가 FTP 서버에 접속했을 때 보여줄 환영 메시지를 설정합니다. (기본값 = none)
ftpd_banner=Welcome to vsftpd server
## 디렉토리의 메시지 파일을 사용자에게 보여줄 것인지 설정합니다. (기본값 = NO)
dirmessage_enable=NO
## 메시지 파일을 지정 합니다. (기본값 = .message)
## => dirmessage_enable 옵션을 허용했을 경우에 메시지를 읽어올 파일을 지정합니다.
message_file=.message
#
############################## 모드 설정 ##############################
#
## 데이터 전송을 위해서 Active Mode를 사용할 것인지 설정합니다. (기본값 = YES)
port_enable=YES
## 액티브모드(Active Mode) 데이터 전송 포트인 20번을 사용할 것인지 설정 합니다. (기본값 = NO)
connect_from_port_20=YES
## 데이터 전송 포트를 지정합니다. (기본값 = 20)
## => connect_from_port_20 옵션이 활성화되었을때 사용되는 포트를 지정합니다.
ftp_data_port=20
## 데이터 전송을 위해서 Passive mode를 사용할 것인지 설정합니다. (기본값 = YES)
## => Active Mode로 접근할 수 없는 사용자들을 위해 활성화 하는것이 좋습니다.
pasv_enable=YES
## 동일한 IP주소에서 이루어지는 데이터 연결을 보장해주는 보안체크 기능을 사용할 것인지
## 설정합니다. (기본값 = NO)
pasv_promiscuous=NO
## 패시브 모드로 연결시 할당될 최대 및 최소 포트를 설정하는 옵션 입니다. (기본값 = 0)
## => 일반적으로 50000~60000 포트를 지정하는것이 좋으며, 기본값인 0으로 설정하게 되면
## well-known port를 제외한 무작위 포트를 이용하게 됩니다.
pasv_min_port=0
pasv_max_port=0
## 아스키모드(ASCII Mode) 전송 허용에 대해서 설정합니다. (기본값 = NO)
## => 이 옵션은 악의적인 사용자에 의해서 시스템의 자원이 고갈될 수 있으므로 주의해야 됩니다.
ascii_download_enable=YES
ascii_upload_enable=YES
#
############################## 권한 설정 ##############################
#
## 파일 생성 umask 값을 지정합니다. (기본값 = 077)
## => umask는 "max permission-umask=create permission" 의 공식을 가지고 있습니다.
## 디렉토리의 기본값은 0777이며, 파일의 기본값은 0666 입니다.
## 따라서 일반적인 시스템의 파일생성 퍼미션인 644를 생성하려면 022로 해야 됩니다.
## 디렉토리: 0777-022=0755, 파일: 0666-022=0644
local_umask=022
## 파일이 업로드 되었을 때의 퍼미션을 지정해주는 옵션 입니다. (기본값 = 0666)
## => 이 옵션은 반드시 umask 옵션보다 아래에 있어야 됩니다.
file_open_mode=0644
## 접속한 디렉토리의 파일리스트를 보여줄 지 설정합니다. (기본값 = YES)
dirlist_enable=YES
## 히든 파일/디렉토리를 보여줄 것인지 설정하는 옵션 입니다. (기본값 = NO)
## => 히든 파일/디렉토리는 dot(.) 으로 시작하는 것을 말합니다.
force_dot_files=NO
## 이 옵션이 활성화되면, vsftpd는 ~chris/pics와 같이 사용자 계정 이름에 틸드 표시가 따라오는 경우의
## 경로명을 접근하도록 시도하고 해석할 것입니다.
## vsftpd는 항상 ~ 와 ~/somthing 을 해석한다는 것을 주의하시기 바랍니다.
## (여기서 ~ 는 기본적으로 로그인 했을 때의 디렉토리로 해석됩니다.)
## ~user 경로들은 _current_ chroot() 에서 /etc/passwd 파일을 찾을 수 있을 경우에만 해석 될 수 있을 것입니다.
## (기본값 = NO)
tilde_user_enable=NO
## 디렉토리 목록에서 UID를 보여주지 않고, 모두 FTP로 표시할 것인지 설정합니다. (기본값 = NO)
## => 이 옵션을 활성화 하면 모든 파일의 소유권이 FTP로 표시되므로 보안에 도움이 될 수 있습니다.
hide_ids=NO
## 사용자에게 STOR(저장),DELE(삭제),RNFR(이름변경),RNTO(이름변경),MKD(디렉토리생성),RMD(디렉토리삭제),
## APE(이어올리기), SITE(umask,chmod)등의 권한을 허용할지 설정합니다. (기본값 = NO)
## => 이 옵션이 비활성화되어 있으면 사용자는 FTP 서버에 데이터를 쓸 수 없습니다.
write_enable=YES
## 다운로드에 대한 권한을 설정합니다. (기본값 = YES)
download_enable=YES
## 사용자가 퍼미션을 변경할 수 있도록 설정합니다. (기본값 = YES)
chmod_enable=YES
## 이 옵션은 당신의 플랫폼에서 sendfile() 시스템 호출을 사용하는 것과 관련된 이익을 테스트 할 때
## 사용되는 내부 설정입니다. (기본값 = YES)
use_sendfile=YES
## 사용자에게 허가할 명령어를 지정합니다. (기본값 = none)
#cmds_allowed=PASV,RETR,QUIT
## 업로드를 거부할 파일명을 지정합니다. (기본값 = none)
#deny_file={*.mp3,*.mov}
## 숨길 파일명을 지정합니다. (기본값 = none)
## => 이 옵션을 사용하면 서버에 실제로 데이터는 존재하지만, FTP 사용자에게는 보이지 않도록
## 설정하는 기능입니다. 악의적인 사용자에게 간단한 fake를 걸 수 있습니다.
#hide_file={*.mp3,*.mov}
## async ABOR 명령어를 사용할 수 있도록 설정합니다. (기본값 = NO)
## => 일부 FTP 클라이언트에서 파일전송을 취소했을 경우, 취소되지 않은 상태로 있는 경우가
## 생길 수 있는데 그것을 방지하기 위해 사용할 수 있습니다.
## 그러나 보안상 좋지 않기 때문에, 비활성화 하시는것이 좋습니다.
async_abor_enable=NO
## ls -R 명령을 허용할 것인지를 설정하는 옵션 입니다. (기본값 = NO)
## => 만약 하위디렉토리나 파일이 매우 많은 상위디렉토리에서 이 옵션을 활성화하게 되면
## 시스템 자원의 낭비가 심하므로, 비활성화 하시는것이 좋습니다.
ls_recurse_enable=NO
#
############################## 보안 설정 ##############################
#
## 모든 계정 사용자가 자신의 홈상위 디렉토리를 접근할 수 없도록 설정합니다. (기본값 = NO)
## => FTP 사용자가 시스템에 접근할 수 있으면 위험하므로 반드시 활성화 하는것이 좋습니다.
chroot_local_user=YES
## SSH로 접속했을 때 자신의 홈 상위 디렉토리를 접근할 수 없도록 설정합니다. (기본값 = NO)
## => chroot_local_user 옵션이 활성화되었고, OpenSSH에 패치를 했을경우, SSH 또한 자신의
## 홈상위 디렉토리를 접근할 수 없도록 설정할 수 있으며, /etc/passwd 파일의 홈 디렉토리
## 필드의 /home/사용자/./와 같이 "/./"를 붙여 사용자를 홈디렉토리에 제한하게 합니다.
passwd_chroot_enable=NO
## 명시된 사용자가 자신의 홈상위 디렉토리를 접근할 수 없도록 설정합니다. (기본값 = NO)
## => 이 옵션은 chroot_local_user 옵션이 비활성화되어 있어야 사용할 수 있습니다.
## => 전체 적용이 아니라 일부 사용자만 제한할때 편하지만, 개별 적용은 보안상 좋지 않습니다.
chroot_list_enable=NO
## 사용자의 홈상위 디렉토리를 설정한 파일을 지정합니다. (기본값 = /etc/vsftpd.chroot_list)
## => chroot_list_enable 옵션을 활성화했을 경우에 리스트를 읽어올 파일을 지정합니다.
chroot_list_file=/etc/vsftpd.chroot_list
## secure chroot()에 사용될 디렉토리를 지정합니다. (기본값 = /usr/share/empty)
## => 이 옵션에서 지정된 디렉토리는 비어있어야되며, ftp 사용자에 대해 쓰기 권한이 없어야 됩니다.
#secure_chroot_dir=/usr/share/empty
#
############################## 로그 설정 ##############################
#
## VsFTP의 기본 로그 파일을 지정합니다. (기본값 = /var/log/vsftpd.log)
## => 이 옵션은 xferlog_enable 옵션과 xferlog_std_format 옵션이 비활성화일때 작동하며,
## dual_log_enable 옵션이나 syslog_enable 옵션이 활성화될때 사용됩니다.
#vsftpd_log_file=/var/log/vsftpd.log
## 2중 로그를 기록할 것인지에 대해 설정합니다. (기본값 = NO)
## => 만약 이 옵션을 활성화하면, /var/log/xferlog와 /var/log/vsftpd.log에 로그가 기록됩니다.
#dual_log_enable=NO
## syslogd 데몬을 이용해서 로그를 기록할 것인지 설정합니다. (기본값 = NO)
#syslog_enable=NO
## xferlog_enable 옵션을 활성화했을 경우에 로그를 기록할 파일을 지정합니다.
## (기본값 = /var/log/vsftpd.log)
xferlog_file=/var/log/vsftpd.log
## 파일의 송/수신 결과를 xferlog_file 옵션으로 지정된 로그파일에 기록합니다. (기본값 = NO)
xferlog_enable=YES
## 로그를 기록할 때 표준 xferlog 포맷으로 저장할 것인지를 설정합니다. (기본값 = NO)
xferlog_std_format=NO
## FTP Protocol의 모든 내용을 기록할지 설정합니다. (기본값 = NO)
## => 이 옵션을 활성화하면 FTP 명령어와 반응이 모두 로깅되므로 디버그에 유용하게 쓰입니다.
log_ftp_protocol=NO
## 로그 파일을 잠글것인지에 대해서 설정합니다. (기본값 = NO)
## => 이 옵션은 vsftpd가 로그 파일을 기록할 때, 파일을 잠그는 것을 막는 옵션 입니다.
## 보통은 활성화 하지 않아도 되며, 솔라리스/베리타스 파일 시스템 조합에서 때때로
## 로그파일을 잠그려는 시도를 하는 운영체제 시스템 버그를 피하기 위해 존재 합니다.
no_log_lock=NO
## 사용자의 접속 기록을 남길 것인지 설정합니다. (기본값 = NO)
## => 이 옵션을 활성화하면 utmp/wtmp 파일에 접속 기록이 로깅됩니다.
## 따라서 last 명령어로 접속 여부를 확인하려면 활성화 하셔야 됩니다..
session_support=YES
#
#
##################################### Virtual User Settings ####################################
## 가상 사용자에 대한 설정 입니다. ##
################################################################################################
#
## 가상유저 모드로 운영할 것인지에 대해 설정합니다. (기본값 = NO)
## => 이 옵션을 활성화하면 모든 비익명 사용자는 가상 사용자로 접속이 됩니다.
guest_enable=NO
## 가상유저들의 실제 계정을 지정합니다. (기본값 = ftp)
#guest_username=ftp
## 가상유저들의 권한을 실제 계정의 권한처럼 허용할 것인지를 설정합니다. (기본값 = NO)
## => 이 옵션이 활성화되어있지 않으면 가상유저는 FTP에 접속해서 파일을 생성하지 못합니다.
## 또한 가상유저는 기본적으로 anonymous의 권한을 갖고 있습니다.
#virtual_use_local_privs=NO
## 가상유저들을 지칭할 가상의 변수를 지정합니다. (기본값 = none)
#user_sub_token=$USER
## 가상유저들이 로그인 후 이동될 디렉토리를 지정합니다. (기본값 = none)
#local_root=/home/virtual/$USER
#
###################################### Anonymous Settings ######################################
## 익명 사용자에 대한 설정 입니다. ##
################################################################################################
#
############################## 기본 설정 ##############################
#
## 익명 사용자의 접속에 대한 설정을 합니다. (기본값 = YES)
anonymous_enable=NO
## 익명사용자의 SSL을 통한 보안접속을 지원할 것인지에 대해 설정합니다. (기본값 = NO)
## => 이 옵션은 ssl_enable이 활성화 되었을 때만 적용됩니다.
#allow_anon_ssl=NO
## 로그인 거부 리스트 사용에 대한 설정을 합니다. (기본값 = NO)
## => /etc/vsftpd.banned_emails 에 설정된 주소로 로그인을 거부할 수 있습니다.
## 만약 anonymous@ 라고 설정해두면, anonymous@를 사용하는 사용자는 접속할 수 없게됩니다.
#deny_email_enable=NO
## 로그인 거부 파일을 지정합니다. (기본값 = /etc/vsftpd.banned_emails)
## => deny_email_enable 옵션을 활성화했을 경우에 리스트를 읽어올 파일을 지정합니다.
#banned_email_file=/etc/vsftpd.banned_emails
## 명시된 이메일 주소로만 접속을 허용할 지 설정합니다. (기본값 = NO)
#secure_email_list_enable=NO
## 접속을 허용할 이메일 주소 파일을 지정합니다. (기본값 = /etc/vsftpd.email_passwords)
## => secure_email_list_enable 옵션을 활성화했을 경우에 리스트를 읽어올 파일을 지정합니다.
#email_password_file=/etc/vsftpd.email_passwords
## 익명 사용자의 접속에 사용될 계정명을 지정합니다. (기본값 = ftp)
#ftp_username=ftp
## 익명 사용자가 접속할 때 패스워드를 묻지않고 접속시킬 것인지 설정합니다. (기본값 = NO)
## => 이 옵션을 활성화하면 접속시 패스워드를 묻지 않습니다.
#no_anon_password=NO
## 클라이언트 접속마다 하나의 프로세스가 작동되도록 할 것인지 설정합니다. (기본값 = NO)
## => 이 옵션을 활성화하면 접속하는 수만큼 프로세스가 작동되므로 효율이 좋습니다.
#one_process_model=NO
## 익명 사용자의 기본 디렉토리를 지정합니다. (기본값 = none)
## => 일반적으로 익명 사용자의 접근을 허용하면 ftp_username에 지정된 사용자의
## 홈 디렉토리가 기본적으로 설정됩니다.
## 그렇지만 만약 변경할 필요가 있을 경우에 이 옵션을 사용하면 됩니다.
#anon_root=/var/ftp/pub
## 익명 사용자의 다운로드 최대전송률을 지정합니다. (기본값 = 0)
## => 다운로드 속도를 제한할때 사용하며, 단위는 bps 입니다.
#anon_max_rate=0
#
############################## 권한 설정 ##############################
#
## 익명 사용자의 업로드에 대한 설정을 합니다. (기본값 = NO)
## => Global Setting에서의 write_enable 옵션이 허용되었을 경우에
## 익명 사용자가 업로드 가능한 디렉토리에 파일을 업로드할 수 있게 합니다.
#anon_upload_enable=NO
## 익명 사용자들의 다운로드에 대한 설정을 합니다. (기본값 = YES)
## => 익명 사용자들이 읽기 가능한 파일을 다운로드 할 수 있게 설정합니다.
#anon_world_readable_only=YES
## 익명 사용자의 디렉토리 생성에 대한 설정을 합니다. (기본값 = NO)
## => 익명 사용자가 쓰기 가능한 디렉토리에서 새로운 디렉토리를 생성할 수 있습니다.
#anon_mkdir_write_enable=NO
## 익명 사용자의 파일 삭제,변경에 대한 설정을 합니다. (기본값 = NO)
## => 파일 삭제 및 파일명 변경등과 같은 기능을 사용할 수 있게 합니다.
#anon_other_write_enable=NO
## 익명 사용자의 소유권 변경이 가능한 계정명을 설정합니다. (기본값 = root)
#chown_username=root
## 익명 사용자의 소유권 변경에 대한 설정을 합니다. (기본값 = NO)
## => 익명으로 업로드된 파일을 chown_username 옵션으로 명시된 사용자의
## 소유권으로 변경되도록 할 수 있습니다.
#chown_uploads=NO
## 익명 사용자의 파일생성 umask 값을 지정 합니다. (기본값 = 077)
## => umask에 대한 설명은 local_mask의 설명을 참조하시기 바랍니다.
#anon_umask=022
#
#######################################################################
[TIP] DNS 설정 절차
DNS 설정 단계 보기..
한가지 방법만 하지마시고 여러가지 방법으로 시도하시면 좋은 결과를 얻으실 수 있습니다.
나중에 도움도 되고요....
존파일을 아래와 같이 설정해보세요!
참고로 지금 잘돌아가는 네임서버의 존파일을 참고했습니다.
---------------------------------------------------------------
$TTL 86400
@ IN SOA ns1.sample2.co.kr. admin.sample2.co.kr. (
15 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns1.sample2.co.kr.
IN NS ns2.sample3.co.kr.
;
IN MX 10 mail.sample2.co.kr.
;
;
sample2.co.kr. IN A 210.100.20.150
ns1 IN A 210.100.20.150
ns2 IN A 211.***.**.***
www IN A 210.100.20.150
webmail IN A 210.100.20.150
mail IN A 210.100.20.150
;
* IN A 210.100.20.150
______________________________________________________________
존파일 참고하시고요...
제가 봤을땐 전체적으로 구성이 미흡한 것 같습니다.
/etc/named.conf
/var/named/sample2.co.kr.zone
위의 두가지만 설정한다고 네임서버설정이 제대로 되었다고는 볼 수 없습니다.
기본네임서버 설정파일인
/etc/resolv.conf
를 우선적으로 설정해주셔야 되고요...
이외에
/etd/hosts
그리고 네트워크 설정파일인
/etc/sysconfig/network
의 설정을 제대로 하셨는지부터 점검해보세요!
그러면 전체적인 네임서버 설정을 구성해보겠습니다.
DNS(Domain Naming System) 서버
보통 네임서버라고 하는데 네임서버의 역할은 아이피와 도메인의 다리역할을 한다고보면 됩니다.
예)
210.100.20.150 <--네임서버--> sample2.co.kr
아이피와 도메인을 매핑(mapping) 즉, 연결시켜준다는거죠.
목적 : IP주소를 별칭(도메인)으로 지정하여서 간편하게 사용
=>아무래도 아이피를 외우는것보다는 도메인을 외우는게 쉽기때문이죠...
DNS를 전체적인 세팅 절차를 적어보겠습니다.
① 도메인 명을 등록한다.
② 네임서버로 사용할 시스템의 /etc/hosts 파일에 등록한 네임 서버의 정보(호스트명과 도메인 어드레스)를 추가한다.
/etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
210.100.20.150 ns.sample2.co.kr ns // =>호스트명과 도메인명을 추가했다.
③ /etc/resolv.conf 파일에 1차 네임서버로 등록한 네임서버의 정보를 입력한다.
==>resolv.conf 는 네임서버를 지정해주는 파일이다.
가장 기본이되는 네임서버 설정파일입니다.
/etc/resolv.conf
search ns.sample2.co.kr
nameserver 210.100.20.150 // IP주소
nameserver *.*.*...
④ /etc/sysconfig/network 파일에 hostname과 domainname 을 추가한다.
hostname에는 보통 네임서버의 호스트이름인 ns를 사용하며,
domainname에는 도메인 이름을 기입한다.
/etc/sysconfig/network
NETWORKING = yes
HOSTNAME = ns
DOMAINNAME = sample2.co.kr
GATEWAY = 210.100.20.1
=>HOSTNAME 과 DOMAINNAME 을 추가해주었습니다.
=>변경된 내용을 적용하기 위해서 network 데몬을 재시작해줍니다.
#/etc/rc.d/init.d/network restart
또는
#service network restart
☞ 여기에서 service 는
#setup
System Service 목록에 있는것들인데 체크가 되어있는것은 리눅스 부팅과 동시에 실행되는 데몬들이고 체크가 되지않은것은 실행되지 않은 데몬들입니다.
(이러한 데몬들은 /etc/rc.d/init.d/ 디렉토리에 있습니다.)
MS 윈도우의 서비스와 같은 개념인데...
즉, MS 윈도우에서는 서비스라 부르고 리눅스에서는 데몬이라 부르죠...
⑤ /etc/named.conf 파일에 forward zone 파일과 reverse zone 파일에대한 정보를 추가한다.
=>named.conf 는 네임서버 설정파일이다.
⑥ /var/named 디렉토리에 forward zone 파일과 reverse zone 파일을 생성한다.
이때 존 파일은 /etc/named.conf 파일에서 지정한 파일 이름을 사용하여야 합니다.
⑦ named 데몬을 재실행하여 변경된 내용을 반영한다.
#/etc/rc.d/init.d/named restart
또는
#service named restart
⑧ named 데몬이 살아있는지 확인한다.
#ps aux | grep named
named 641 0.0 0.8 29624 1056 ? S 17:52 0:00 [named]
root 1428 0.0 0.4 3548 528 pts/0 S 20:33 0:00 grep named
⑨ nslookup 이나 host 또는 dig명령어를 사용하여 자신의 네임서버가 제대로 동작되는지 확인한다.
#nslookup sample2.co.kr
Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server: 210.100.20.150
Address: 210.100.20.150#53
Name: sample2.co.kr
Address: 210.100.20.150
#
네임서버의 전체전인 설정은 대략 이렇습니다. ^^
보니가 여러번 해보신 분이니 전체적인 설정을 정리해봤습니다.
네임서버 설정을 몇줄로 정리한다는건 좀 무리죠...
참고만 하세요.
네임서버 이녀석이 의외로 섬세한 녀석입니다.
꼼꼼히 해주지 않으면 작동을 안하거든요...^^
네임서버 설정 꼭 성공하세요!!
흠... 나의 베스트 프렌드들과 커뮤니티 결성했다랄까...
Development 와 Star의 합성어이다..
개발 + 별 = 개발계의 떠오르는 별이라는 생각으로 이름을 지어봤다..
앞으로 웹이나 게임쪽 공모전을 같이 프로젝트 형식으로 진행하면서 참가도 해보고,
개개인의 테크니컬 강의를 올린다던가, 프리토크 게시판과 뉴스 게시판을 따로두어
최근 경향흐름을 분석하고 판단하면서 재밌는 커뮤니티를 진행해나갈수 있는
그런 사이트가 됐으면 좋겠다..
2009년 3월 23일 월요일
[TIP] 쿼리값이 NULL값인 변수를 변환시 오류 해결책
쿼리값에 공백이나 null 값이 들어가있을시, Clng 함수나 Format 함수등으로 그 값을 변환시
에러 또는 오류가 출력되어 전체 페이지가 출력이 안되는 경우가 발생할 수 있다.
<td align=center class="under">
<%
If price_12 = "" Or IsNull(price_12) Or Not IsNumeric(price_12) Then
response.write("0")
Else
%><%=FormatNumber(price_12,0)%> //이 부분은 PHP에서는 간단하고 보기좋게 표현이 가능..
<%
End If
%>원</td>
PHP에서 하던 습관(대로 ASP에서는
response.write(FormatNumber(price_12,0)) 이렇게하면 될줄 알았는데
ASP에서는 상식이 안통했다..
결국 PHP에서 여러가지 쓰던 방식중 하나를 위에 적용시켜봤더니 된다. -_-
하아.. 정말 ASP 귀찮을뿐더러, 컴퍼넌트도 거의 유료라서 무료는 찾아보기도 힘들고..
컴퍼넌트를 설치해야 돌아가는 웹사이트를 만지자니.. 초반에 애를 먹었다랄까..
아뭏든 MS의 IIS, MSSQL 정말 싫다; 인터페이스 너무 불편하잖아 이건..
[COMPONENT] ABCUPLOAD 4.1
ABCUpload는 4.1버젼 이하는 사용제한이 없지만 그 위 버젼부터는
사용기간이 있어 시리얼을 입력해 주어야 합니다.
사려면 생각보다 가격이 높네여 ㅋㅋ
[설치법]
1. ABCUpload를 다운 받습니다.
2. 압축을 풀고 인스톨을 합니다.
3. c:\windows\system32 안에서 ABCUpload4.dll을 복사해서 현재 설정한 사이트 홈디렉토리에 넣습니다.
4. 시작 -> 실행에서 regsvr32 "홈디렉토리 전체경로\ABCUpload4.dll"
5. "DllRegister Server 성공" 가 뜨면 성공적으로 설치가 끝난것입니다.
6. Upload가 이루어지는 디렉토리는 쓰기권한을 주는게 당연하겠지요~
[출처] [본문스크랩] ABCUpload 설치법 및 다운로드|작성자 호수비밀
2009년 3월 21일 토요일
자주 쓰이는 ASP 선언문 종류
ASP에서의 IF문 사용법
IF 조건 THEN
참일 때의 처리 실행.
ELSE
거짓일 때의 처리 실행.
END IF
선언 및 생성
1.
Dim - 변수를 선언. (예: Dim strName)
2.
Set - 개체를 생성. (예: Set rs = Server.CreateObject("ADODB.RecordSet"))
논리 구문
3.
IF ~ THEN - 만약 ~ 라면. (조건이 적은 경우)
4.
SELECT CASE - 만약 ~ 라면. (조건이 많은 경우)
5.
FOR ~ NEXT - 순환하면서 실행. (반복 횟수를 정확하게 알고 있을 때)
6.
DO WHILE - 순환하면서 실행. (반복 횟수를 정확하게 알 수 없을 때)
IIS 5.x 설치 후 환경설정
왼쪽 아이콘 중 Windows 구성 요소 추가/제거 탭을 누르고 누르면 나오는 창에서
인터넷 정보 서비스를 체크하고서 Windows XP 시디를 미리 넣어주고 확인을 누르면 설치가 된다.
설치하고나서 페이지를 테스트시 로그인창이 뜨는 경우가 있기에

제어판 -> 관리 도구 -> 로컬보안정책을 열고
보안 설정 > 로컬 정책 > 보안 옵션을 누르면 나오는 목록중
네트워크 액세스 : 로컬 계정에 대한 공유 및 보안에 게스트 전용으로 설정되어있는 값을
일반 - 로컬 사용자를 그대로 인증으로 설정해준다.

그리고 보안 설정 > 로컬 정책 > 사용자 권한 할당에서
네트워크에서 이 컴퓨터 액세스 부분을 누르면 나오는 창에서 IUSR_사용자명이 추가 되있는지 확인한다.
이렇게까지 설정해줬는데도 로그인창이 뜨는 경우가 있는데, 필자는 제어판의 방화벽 창을
열고 사용 -> 사용안함 으로 바꿔주니 외부에서 로그인창이 뜨지 않았다..
방화벽 사용으로 설정한 상태에서 고급탭의 설정을 눌러 HTTP 포트에 접근 권한을 개방해놔도...
안되던것이... 사용안함으로 설정해놓으니 되는것이 참... IIS 참 짜증을 유발시킨다...
어쨌든 테스트 서버는 이렇게 설정해놓고 테스트해야겠다...
2009년 3월 18일 수요일
ASP에서 MSSQL 연동해서 쿼리 출력하는 예제
안녕하세요? 웹프로그램에 가장 흥미와 제미 있을시기가 지금 님의 시기인듯 한데요
상세한 정보를 원하신다면 제가 끝에 남긴곳에 강좌를 보시구요
저는 실전적으로 바로 적용할수 있고 초보개발자가 빨리 이해할수있는 수준으로 글을 작성하겠습니다.
따라서 학술적이나 이론적으로는 상이함이 있을수 있습니다만...
님이 원하시는 답변의 핵심에 최대한 접근해보도록 노력하겠습니다.
소스작성 순서는
디비접속객체로 디비접속 =>디비 내용 전달 객체생성=>변수활용 쿼리작성=>디비내용전달객체에 쿼리실행에 의한 테이블내용 담기=>리스팅 뿌리기
이상이 순서입니다.
주석을 확인하시면 미약하지만...^^; 설명이 있습니다.
소스
<%
constr="Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=디비명;User ID=유져아이디;Password=비밀번호;Network Library=dbmssocn"
Set db = Server.CreateObject("ADODB.Connection") 'db라는 컨넥션 object 를 생성합니다.
db.Open constr
'위내용은 constr 변수 내용으로 db라는 object로 데이터베이스에 접속한다는 뜻입니다.
Set rs = Server.CreateObject("ADODB.Recordset")
'rs라는 레코드셋 object 생성합니다. rs안에 테이블내용이 들어갑니다.
Set rs.ActiveConnection = db 'rs는 접속할것이다 db라는 객체를 활용해서
'위내용은 테이블 내용을 전달할 rs object 선언과 rs는 db object 를 활용해서 디비에 접속한다는 뜻입니다.
strSql ="select * from table " 'strSql 이라는 변수에 실행 쿼리를 작성
rs.Open strSql 'strSql 변수의 내용(쿼리)으로 rs에 테이블 내용을 담으라는 뜻입니다.
'위내용은 strSql 의 변수 활용으로 쿼리 작성해서 rs가 그것을 활용해서 테이블 내용을 가져오는 과정입니다.
while not(rs.EOF) '루프를 돌립니다. 테이블의 끝레코드가 아니면 계속 루프가 돌아가라는 조건으로
response.write rs("필드명") &"<br>" '뿌려야할 필드를 출력
rs.MoveNext '다음레코드로 이동
wend '루프의 끝
'위내용은 rs 가 갖고 있는 필드내용을 출력하는 예제입니다. 그리고 그다음 레코드가 이동이 되는 과정도 있구요
%>
이상이 디비에 있는 내용을 출력하는 소스 예제이구요...
물론 객체를 생성했으면 close 하고 nothing 해야한다 변수선언 똑바로 안하냐?
그런 내용의 테클적인 글도 올라올수 있겠으나...
님이 원하는 질문의 핵심에 최대한 접근이 이글 작성의 목표입니다.
상세한 학습을 원하신다면 teayo 사이트의 asp 강좌를 보시면 정말 잘나와있습니다.
제글이 도움이 되셨으면 합니다. 좋은하루요 ^^
MSSQL2005의 권한 설정 설명
MSSQL2000에서는 권한설정을 하면 SQL을 기준으로 권한을 주었다. 예를 들면 검색권한을 주고싶으면 select 권한을 주는 식으로 필요한 권한을 체크해주는 식이였다.
그래서 MSSQL2005왔을때 많이 해맸다-_-;;;;
어찌됫건 MSSQL2005와서 권한 설정의 가장큰 변화는 로그인권한과 데이터베이스 사용권한을 따로 생성해야하는 것인거 같다.
MSSQL2000때는 로그인권한을 가진 유저를 각DB에 추가시키는 방식으로 권한을 주었지만 MSSQL2005부터는 로그인권한을 가진 유저를 만든후 DB에 유저를 추가시킨다음 만든 로그인과 연결된 권한을 생성하는 방식이다.(C#으로 보자면 인스턴스를 만들어서 접근하는 것과 비슷한거 같다.) 간단하게 말하자면 로그인하는 계정과 DB를 사용하는 계정을 따로 생성해야 한다는 것이다.
로그인 계정을 만드는 것은 MSSQL2000때와 같다. 보안>로그인 에서 새 로그인을 만들어주면된다.
이제 DB로 가서 보안>사용자 새 사용자를 추가한다. 사용자이름을 추가하고 아까만든 로그인(로그인 이름)을 설정해준다.
기본 스키마는 자신보다 높은 권한을 가진 스키마를 설정해야한다. 디폴트로 dbo로 되있는데 dbo의 정보를 보면 오너 권한이 있는걸 알수있다. 사용자를 만들면 자동으로 스키마도 생성해주므로 필요하다면 다른 스키마를 선택해도 된다.
밑에보면 데이터베이스 역할 멤버 자격 이라는 칸이 있는데 이것이 예전의 권한설정부분이다.
MSSQL2000과 많이 달라진 것중하나가 권한설정 부분이다. 어디서 본것 같다했는데.....오라클할때 배운거 같다-_-;;;
권한을 설명하자면
역할 멤버 |
설명 |
db_accessadmin |
Windows 로그인, Windows 그룹 및 SQL Server 로그인에 대한 액세스를 추가하거나 제거할 수 있습니다. |
http://technet.microsoft.com/ko-kr/library/ms191451(SQL.90).aspx | |
설명으로 봐서는 로그인에 대한 계정을 추가 삭제할수 있는 권한이다. | |
db_backupoperator |
데이터베이스를 백업할 수 있습니다. |
http://technet.microsoft.com/ko-kr/library/ms189041(SQL.90).aspx | |
말그대로 DB를 빽업할 수 있다. | |
db_datareader |
데이터베이스에 있는 테이블이나 뷰에 대해 SELECT 문을 실행할 수 있습니다. |
http://technet.microsoft.com/ko-kr/library/ms188629(sql.90).aspx | |
보통 이 권한을 염두하고 프로그램을 만들었으니 변환한 DB의 사용자는 거의 이 권한으로 주었다. | |
db_datawriter |
모든 사용자 테이블에서 데이터를 추가, 삭제 또는 변경할 수 있습니다. |
http://technet.microsoft.com/ko-kr/library/ms175039(SQL.90).aspx | |
MSSQL2000 에서는 안써본기능이라 잘 모르겠다;; | |
db_ddladmin |
데이터베이스에서 모든 DDL(데이터 정의 언어) 명령을 실행할 수 있습니다. |
http://technet.microsoft.com/ko-kr/library/ms190667(SQL.90).aspx | |
데이터 정의어로 오라클에서는 테이블을 생성,삭제,변경할 수 있는 권한이었는데 여기서도 그런거 같다 | |
db_denydatareader |
데이터베이스 내에 있는 사용자 테이블의 데이터를 읽을 수 없습니다. |
http://technet.microsoft.com/ko-kr/library/ms187916(SQL.90).aspx | |
어디에 쓰이는지 모르겠다;; | |
db_denydatawriter |
데이터베이스 내의 사용자 테이블에 있는 데이터를 추가, 수정 또는 삭제할 수 없습니다. |
http://technet.microsoft.com/ko-kr/library/ms188308(SQL.90).aspx | |
안써봐서 모른다;; | |
db_owner |
데이터베이스에서 모든 구성 및 유지 관리 작업을 수행할 수 있습니다. |
http://technet.microsoft.com/ko-kr/library/ms180977(SQL.90).aspx | |
개발할 때 이 권한을 주면 편하다 ㅡ.-;;; | |
db_securityadmin |
역할 멤버 자격을 수정하고 사용 권한을 관리할 수 있습니다. |
http://technet.microsoft.com/ko-kr/library/ms188685(SQL.90).aspx | |
Database Roles에서 사용자를 추가, 삭제, 객체사용권한등을 변경할 수 있다. | |
Public |
사용자를 만들면 들어가있는 권한 |
어디에 쓰이는 권한인지는 모르겠다. |
이렇게 역할 멤버 자격까지 주면 사용자가 추가된다.
저장프로시저를 이용하기위해서는 전처럼 하나하나에 권한을 추가해주어야한다.
프로그래밍 기능<저장 프로시저 에서 해당 저장프로시저에서 오른쪽 클릭을 하여 속성을 눌러 속성창을 연다.
사용권한에 보면 사용자 또는 역할이 있는데 아까 만들었던 사용자(로그인이 아님)를 추가하고 Execute권한에 체크를 한다. 스키마 밑에 보면 '스키마 사용 권한 보기'라는 것이 있는 이것을 누르면 연결된 스키마의 권한 정보가 나온다. 로그인 사용자를 누르고 Execute권한에 체크를 한다.(어느 사이트의 설명에서는 권한을 위임받아서 사용한다고 되있었다.)
유효 사용 권한을 눌러보면 연결이 제대로 됬는지 확인해 볼수 있다.
좀 복잡한 느낌은 들지만 나는 어차피 테이블을 다 만들어놓고 그것에 마쳐 프로그래밍을 하기때문에 어차피 쓰는권한은 한정되있으니 별로 걱정은 되지 않지만....예상보다 구하기 힘든 자료에 당황스러웠다;;;(도움말이 이렇게 허접하게 느껴질줄이야-_-;;)
이제 완벽하니 다음 포맷때는 삽질 말아야지
[출처] MSSQL2005의 변화된 권한 설정|작성자 당근천국
MSSQL 접속프로그램 다운받기(서버 운영 프로그램도 포함)
MSSQL서버에 접속하는 프로그램을 다운받으려면 아래 주소에 가서
SQL Server Management Studio Express 를 다운받는다
MSSQL 서버를 운영하고 싶다면 SQL Server 2005 Express Edition SP1 을 다운 받는다
http://www.microsoft.com/korea/msdn/vstudio/express/sql/download/
2009년 3월 17일 화요일
ASP- ODBC MYSQL 연동하기
ODBC로는 연결이 잘되는데 OLEDB로 연결하려고 삽질 했네요 ㅡㅡ'
이렇게 간단한걸...
1.준비물
MyOLEDB3.exe (http://www.mysql.com/downloads/download.php?
file=Downloads/Win32/MyOLEDB3.exe&pick=mirror)
2. Connect 부분
"Provider=MySqlProv;Location=xxx.xxx.xxx.xxx;Data Source=디비명;User ID=아이디;Password=패스;"
- 한글부분은 알아서 ^^ (xxx.xxx.xxx.xxx는 ip)
3. 간략 예제
<%
strcon = "Provider=MySqlProv;Location=xxx.xxx.xxx.xxx;Data Source=디비명;User ID=아이디;Password=패스;"
set DbCon = Server.CreateObject("ADODB.Connection")
DbCon.open strcon
SQL_query = "SELECT count(*) FROM 테이블명"
Set RS = DbCon.Execute(SQL_query)
Response.Write " Query : " + SQL_query + "<p>"
Response.Write " Result : "
while not RS.eof
Response.Write RS(0)
Response.Write "<br>"
RS.MoveNext
wend
RS.Close
DbCon.Close
set RS = nothing
set DbCon = nothing
%>
[출처] odbc mysql-asp 연동하기|작성자 야로
FLEX와 MYSQL 연동
Flex는 MySQL과 직접적으로 연동을 할수가 없습니다.
때문에 Flex->PHP->MySQL->XML->Flex 라는 다소 복잡한 과정을 거쳐야합니다.
(PHP 대신에 ASP 혹은 JSP 등을 사용할수도 있습니다.)
(물론 잘 찾아보면 DB를 연동할수 있는 컴포넌트가 있긴합니다만,
Flex 자체에서 정식으로 지원하지는 않습니다. 자세한 정보를 원하시면
http://code.google.com/p/assql/ 를 참고하시기 바랍니다.)
개략적인 프로그램의 흐름은 다음과 같습니다.
inputID라는 textinput에서 ID를 받아서 버튼을 눌러 PHP파일을 호출합니다.
PHP파일에서는 mxml에서 보낸 id를 받아서 해당 id의 파일 목록을 얻어와서
xml형식으로 만들어서 다시 flex로 보냅니다.
자 다음은 소스를 보도록 합시다.
MXML
<?xml version="1.0" encoding="utf-8"?> <!--url은 php파일의 경로이고, result는 php파일 호출후 실행할 함수명입니다.--> <!--실질적으로 php에 데이터 보내는곳입니다. <tag>내용</tag>형식으로 추가하면 됩니다.--> |
PHP
<? //Flex에서 보낸 데이터를 받습니다. 변수를 추가로 더 받을때는 //"$변수 = $_POST['tag'];" 형식으로 합니다. //MySQL이 있는 주소를 적으면 됩니다. php파일이 있는곳에 DB가 있다면 //localhost 라고 하면 됩니다. ID와 패스워드는 mysql의 아이디와 패스워드입니다. //db선택 //쿼리 //db교체
$dataNum = mysql_num_rows($result); //데이터를 배열로 받아옵니다. for($i = 0; $i < $dataNum; $i++) } print($return); //xml형식으로 만들어서 뿌려줍니다. mysql_close($link);
|
MySQL
db생성-web create database web; web/userinfo테이블에 데이터 삽입 db생성-tkeo create database tkeo; tkeo/file테이블 생성 tkeo/file테이블에 데이터 삽입 |
2009년 3월 12일 목요일
CENT OS FTP 설치 및 설정
###VSFTPD 실행####
> service vsftpd start or restart
CentOS 기반에서 FTP (proftp) 설치 및 운영하기 more..
1.FTP 란 FTP는 "File Transfer Protocol" 의 약자로써 쉽게 말해 서버에(=홈페이지) 에 자료를 올리기위한 규정같은 것이라고 보시면 됩니다. 다른 자료들을 보면 구구절절 내용이 많은데 내용적인 측면을 공부하시려면 좀더 자료를 찾아 보시고 여기서는 간략하게 Linux 에서 ftp를 설치하고 사용하는데 필요한 계념및 정보들을 알려드리는게 맞는것 같습니다. 일반사람들이 자신의 계정이나 혹은 무계정으로 ftp에 접속하여 홈페이지자료를 올린다거나 음악,영화,프로그램의 저장목적으로 많이 사용하며 기타 저장매체가 없어도 인터넷만 된다면 아주 효율적으로 자료를 확보할수있기 때문에 ftp를 씁니다. 관리자 입장에서는 백업과 서버이전작업시 꼭 필요한 서비스이겠지요... ^^ 먼저 ftp는 port 21 을 사용합니다. 보통전송모드에는 아스키모드(일반모드) 와 패시브모드(보안이강화된 모드) 가 있습니다. 우리가 설치할(컴파일로) proftp 의 설정파일은 서버단에서 /usr/local/proftpd/conf/proftpd.conf 입니다. 설정파일인 proftpd.conf 에서 ftp에 관련된 모든 내용을 셋팅할수있습니다. 그내용은 이 강좌 마지막부분에서 낫낫히 알려 드리겠습니다. 그럼 이제 사뿐히 설치해 볼까요... (컴파일로 설치합니다. rpm은 누구나 한번에 설치다 하니 추후에...) 2. PROFTP 컴파일 설치하기 ########## 설치되어 있는지 확인 하기 ########## => 서버에서 LISTEN 하고 있는 서비스들을 봅니다. [root@lecture ~]# netstat -anp | grep LISTEN 자 위의 결과처림 아직 21번포트를 LISTEN하고 있는 ftp 서비스는 보이질 않는고 sendmail 및 ssh등의 서비스만이 있음을 알수있다. 그리고 pstree라는 명령어로 ftp프로세서가 있는지도 확인해 봅니다. 혹시나 설치가 되어있더라도 중복설치 가능하니 걱정말고 다음 관정으로 넘어간다.주의할점은 어떤것이든지 덮어씌워 설치를 할때는 그 서비스는 내려놓고 하는것이 정석입니다. ^^ proftp 를 다운받아 설치하기 항상 말하는것이지만 컴파일설치시 보통 /usr/local/에서 주로 합니다. 그러나 이것은 절대적인것은 아니며 만약 rpm으로 설치를 하시면 경로는 대부분 /etc/아래에 설정파일같은것들이 다 들어가게 됩니다. 참고하시구요. 다음과같이 다운로드하고 설치합니다. ########## proftp 컴파일하여 설치하기 ########## cd /usr/local wget http://ftp.suidc.com/pub/FTP/proftpd/proftpd-1.2.10.tar.gz tar xvfz proftpd-1.2.10.tar.gz cd proftpd-1.2.10 ./configure prefix=/usr/local/proftpd make && make install 위의 절차대로 /usr/local/로 이동하여 소스파일을 다운받고 압축을 풀어서 컨피귤러 한다음 make 와 make install 을 해 주면 설치가 끝납니다. 컴파일이라고는 하나 rpm만큼이나 쉽게 설치할수있습니다. ftp는 설치도 중요하겠지만 더욱더 중요한것은 아마 다음 내용인 셋팅부분이(proftpd.conf) 아닌가 합니다. 설치가 에러없이 끝났으면 서비스를 실행시키기위해 설정파일을 분석해봅시다. proftp의 실행은 /usr/local/proftpd/sbin/proftpd 하시면 됩니다. 확인은 위에서 해보았듯이 netstat -anp | grep LISTEN 이나 pstree, ps등으로 확인할수있습니다. [root@lecture ~]# netstat -anp | grep LISTEN 3. proftpd.conf 완전 분석하기 ftp의 계념과 설치방법에 대해 알아보았습니다. 별 어려움 없이 넘어오셨을 것입니다. 마지막으로 설치후 기본적인 셋팅과 보안적인 셋팅등 입맛에 맛게 ftp를 설정하는데 /usr/local/proftpd/conf/proftpd.conf 설정파일이 그것이며 기본셋팅및 다른 어떤 셋팅 항목들이 있는지 직접 설정파일을 열어 항목들과 설명만 정리하였습니다. 빨간색 부분은 최소 기본적으로 해주셔야 할 것들이고 나머지는 상황에 따라 하시면 됩니다. =========== proftpd.conf ========================================================== vi /usr/local/proftpd/etc/proftpd.conf 분석 # 로그인시 보여줌 암거나 적어. ServerName "ProFTPD RhapSody Welecome to FTP ^^" # inetd 와 standalone 모드 선택 ServerType standalone # 주 IP address 또는 설정블록에서 지정되어진 address중의하나가 아닌 IP address로 # 들어오는 커넥션이 있을때 기본으로 사용되어질 서버설정 ( 먼말이야 ㅡ.,ㅡ ) DefaultServer on |
2009년 3월 11일 수요일
리눅스 자동 백업 스크립트
crond 는 특정 시간이나 날짜(좀 복잡하게도 가능)에 정해진 일을 수행하는 데몬이다.
자세한거는 직접들 찾아보시고
이렇게 명령을 주게되면 crond 에 매일 아침 6시에 /bin/backup.sh 를 실행하라는
것을 의미한다. 자세한 의미는 굳이 설명하지 않겠다.
이러면 crond 는 매일 아침 6정각에 /bin/backup.sh 를 실행한다.
다음은 backup.sh 의 내용이다.
#!/bin/bash
dstring="backup_`date +'%y%m%d'`.tar.gz" # 파일명을 만들어낸다.
# 04년06월21일같은경우에
# backup_040621.tar.gz 를 만든다.
#wall < /bin/start_backup_message # 접속되어있는 모든 사용자에게
# 백업이 시작됨을 알리고
#/etc/init.d/network stop # 네트워크 서비스를 중지시킨다.
tar cfz $dstring "/home" # ex) home 디렉토리를 파일명으로 압축한다.
#/etc/init.d/ network start # 네트워크 서비스 재개
Server="Backup Server Address" # 서버IP
UserID="USERID" # ID
Password="PASSWORD" # backup 받는 유저의 패스워드
ftp -n $Server <<End-Of-Session # ftp 에 접속 -n 옵션은 자동로그인을 안한다.
user $UserID $Password # 로그인
binary
put "$dstring"
bye
End-Of-Session
rm -f $dstring # 백업파일 삭제
#wall < /bin/end_backup_message # 백업이 끝났음을 알린다
2009년 3월 4일 수요일
흠.. 고민때리네..
이도 저도 아닌 소속이 된거 같은데...
일단, 대략 200만원 정도 상당의 다음 트랙 장학금과 현장실습후 지급되는 돈 40만원 정도...
운이 좋다고 해야하나.. 성적은 그닥 잘 안나왔었지만, 운이 따랐는지..
돈으로 받게 되서 어려운 상황에서 한줄기 빛을 본거 같다..
그래, 인턴 3개월후에 내 인생의 방향이 결정될거 같군...
그때까지 이 악물고 미친듯이 해보자..
09.2.27 ~.2.28 먹자파 1박 2일!~

27일 리조트 도착후 이른 저녁식사 중

27일 화투치다 산책하다가..

28일 리조트 및 호텔 구경하다..

28일 위미리까지 가서 낚시 후 기념샷

2009년 3월 2일 월요일
리눅스 VI 편집기 명령어 정리
Vi 에디터 사용법
<Vi의 3가지 Mode>
모 드 |
전환키 |
설 명 |
Command Mode |
ESC |
문서내의 텍스트를 지우거나, 복사하거나, 추가하거나, 삽입하거나, 옮기거나 할 수 있는 명령을 사용할 수 있는 모드입니다. |
Insert Mode |
i,a,o,O, ... |
문서에 텍스트를 추가하거나, 삭제하거나, 복사할 수 있는 모드입니다. |
ex Mode |
: |
맨 아래 라인에 확장된 명령어를 입력할 수 있도록 해줍니다. |
<Command Mode>
편집한 파일을 저장하고 닫고, 다른 파일을 편집하고 싶을 때, ESC를 눌러서 명령을 내릴 수 있는 상태로 변환하고, 다음 명령을 사용한다.
명 령 |
설 명 |
ZZ or :wq |
저장하고 vi 끝내기 |
:w [파일이름] |
주어진 파일이름으로 파일 저장하기 |
:w! [파일이름] |
주어진 파일이름으로 저장/덮어쓰기 |
:q! |
편집한 내용을 저장하지 않고 vi 끝내기 |
:e! |
편집한 내용을 저장하지 않고 최종 저장된 상태로 파일 열기 |
:w 새파일이름 |
현재 작업중인 파일을 새파일이름으로 저장하기 |
:e 열고_싶은_파일이름 |
vi를 끝내지 않고 다른 파일 편집하기 |
<Inset(삽입) Mode>
1. 커서의 이동
다른 에디터처럼 방향키나, 다른 기능키를 이용하여서도 가능하여 요즘은 아래의 키는 잘 사용하지 않지만 초창기 버전에서는 아래표의 키만 적용되는 버전도 있음
키 |
기 능 |
입력 키 |
기 능 |
h |
오른쪽으로 한 칸 |
b |
한 단어 뒤로 이동 |
j |
아래로 한 칸 |
B |
특수문자/기호들은 단어로 치지 않고, 한 단어 뒤로 이동 |
k |
위로 한 칸 |
w |
한 단어 앞으로 이동 |
l |
왼쪽으로 한 칸 |
W |
특수문자/기호들은 단어로 치지 않고, 한 단어 앞으로 이동 |
0 |
라인의 시작으로 이동 |
:0 |
문서의 맨 앞으로 |
$ |
라인의 끝으로 이동 |
:$ |
문서의 맨 뒤로 |
^ |
라인의 첫 번째 단어로 이동 |
|
|
2. 편집 명령
입력 키 |
기 능 |
입력 키 |
기 능 |
i |
insert, 현재 문자 앞에서부터 입력 |
cw |
한단어 change |
a |
append, 현재 문자 뒤부터 입력 |
x |
한문자 delete |
o |
현재 줄 아래 한 줄 삽입 O : 현재 줄 위에 한 줄 삽입 |
y |
yank(copy) text, 문자 복사 yw : 단어 복사 yy : 한줄 복사 3yy : 세줄 복사 |
r |
replace |
p |
put(paste) 현재 줄 다음 줄에 버퍼의 내용을 붙인다. |
R |
현재 문자 이후부터 replace |
P |
현재 줄 앞에 버퍼의 내용을 붙인다. |
dw |
delete word |
u |
마지막 명령을 Undo U : 그줄에서 수행한 명령들을 Undo |
dd |
delete line |
J |
join, 두 줄을 연결한다. |
3. 기타 명령
명 령 |
설 명 |
:se nu :set number :se nonu :set nonumber :set ic :set noic ^g |
각 라인앞에 일련번호를 표시 각 라인앞에 일련번호를 표시하지 않는다. 검색시 대소문자를 구분하지 않는다.5 검색시 대소문자를 구분한다. 현재 라인버호를 표시 |
:ab ttt the |
ttt를 the로 상용구 등록 |
:e filename :r filename :sh :! command :r !command |
filename 불러와 편집 filename을 불러와 커서 위치에 삽입 shell 나들이 shell 명령어 수행 shell 명령어를 vi 화면내에 출력 |