linux class 1 페이지

본문 바로가기
사이트 내 전체검색


회원로그인

linux class

ftp 서비스 - server(vsftpd)

페이지 정보

작성자 admin 작성일15-12-23 15:27 조회217회 댓글0건

본문

ftp 서버

종류

ftp 서버는 여러가지 종류가 있는데 리눅스에서 많이 사용되어지는 ftp 서버는

vsftpd 와 proftpd 두가지 정도이다.
어떤 ftp 서버라도 한가지만 제대로 이해하고 운영할 수 있으면 다른 ftp 서버를
설정하고 운영하는것도 그리 어렵지 않을것이다.

1. vsftpd
- 페도라 패키지에 포함되어 있는 ftp 서버이다.
[root@star ~]# rpm -q vsftpd
vsftpd-2.0.3-1 <= 설치되어 있다.


공식사이트
http://vsftpd.beasts.org

장점
Security
Performance
Stability

1)설정

rpm 이나 yum 으로 설치하는 경우 설정 파일의 기본 디렉토리는
/etc/vsftpd 이다.

a)익명 사용자 설정

anonymous_enable=YES : 익명접속허용 여부

anon_upload_enable=NO : 익명접속 파일업로드 허용여부

anon_mkdir_write_enable=NO :익명접속시 디렉토리 생성허용 여부

anon_root=/var/ftp/pub : 이 설정을 하지 않으면 ftp 계정 디렉토리가 된다.

logging 설정

xferlog_file=/var/log/xferlog : 로그 저장 파일

xferlog_enable=YES : 파일전송 기록 허용여부

dual_log_enable
If enabled, two log files are generated in parallel, going by default to /var/log/xferlog and
/var/log/vsftpd.log. The former is a wu-ftpd style transfer log, parseable by standard tools. The latter
is vsftpd’s own style log.

Default: NO


b) local account 설정

local_enable=YES : 로컬 계정 접속 허용 여부
local_umask=022 : 파일생성시 디폴트 권한 (umask값이 022 인경우 기본파일퍼미션:644, 기본디렉토리퍼미션:755)
* chroot 는 보안을 위한 설정이다.
chroot 가 적용되면 사용자가 사용자 홈디렉토리에 갖혀서 다른 디렉토리로 이동할 수 없다.
chroot_list_enable=YES : chroot_list_file 설정 허용
chroot_list_file=/etc/vsftp/chroot_list : chroot 적용 받는 사용자
chroot_local_user=YES : 모든 사용자에게 chroot 기능 적용
* chroot 기능은 vsftpd 버전에 따라서 chroot_local_user=YES 설정 아래에
allow_writeable_chroot=YES 를 같이 사용해야
적용될수 있는 vsftpd 버전도 있다.
selinux 설정을 따로 하던지 그렇지 않으면 selinux 설정을 해제해야 한다.
selinux 설정 해제는 setenforce 0
방화벽 데몬 중단 --> systemctl stop firewalld


userlist_deny=YES : userlist_file 옵션 허용여부
userlist_file=/etc/vsftpd/user_list : userlist_deny 가 YES 일때 이파일에 적혀
있는 사용자는 ftp 서버 접속불가

c) timeout 시간 설정
idle_session_timeout=60(초단위) : 접속후 아무것도 하지 않을때의 접속종료시간
data_connection_timeout=120 : 파일전송시 아무런 동작을 하지 않을때 접속 종료시

d) 출력 메세지 설정
ftpd_banner=Welcome to blah FTP service.
banner_file=/etc/vsftpd/welcome.msg
dirmessage_enable=YES
message_file=.messages

e) 동시접속자수 제한
max_clients=30 : 최대 동시접속자수는 30명으로 제한
max_per_ip=2 : 한 ip 당 동시접속을 계정과 상관없이 2개로 제한
-----------------------------------------------------------------
예제를 통해 vsftpd 의 설정을 이해한다.

*. selinux 설정이 enforcing 상태이면(setstatus 명령어로 확인.)
--> getsebool -a | grep ftp (ftp 서비스 관련 설정 확인)
--> allow_ftpd_anon_write, allow_ftpd_full_access,ftp_home_dir
--> 이세가지 설정이 off 이면 on 상태로 변경하여야 한다.
설정방법 --> setsebool -P ftp_home_dir=1
setsebool -P allow_ftpd_anon_write=1
setsebool -P allow_ftpd_full_access=1

예제.

1. ftp 서버로 접속했을때 login 하기전 아래 메시지를 출력한다.

************************ (banner_file)
Welcome to my ftp server
************************

2. 익명계정으로 login 했을때
************************ (dirmessage_enable / message_file)
Welcome anonymous user!
************************
<-- 이 메세지가 아래처럼 익명계정으로 login 할때 바로 출력이 되어야 한다.

server2 ~:# ftp myserver1
Connected to myserver1 (192.168.20.10).
220 (vsFTPd 3.0.2)
Name (myserver1:root): anonymous
331 Please specify the password.
Password:
230-

230-******************************
230-welcome, anonymous user1
230-******************************

230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

3. 클라이언트 한개당 ftp 서버의 동시접속을 2개까지로 제한한다. ( max_per_ip)
설정을 제대로 하였으면 하나의 클라이언트에서 창을 두개 열어서 ftp 를 계정에 관계없이
두개 접속하고 나서 새로 창을 하나 더 열어서 접속하면 아래처럼 메시지가 출력된다.

[root@server2 ~]# ftp myserver1
Connected to myserver1 (192.168.20.10).
421 There are too many connections from your internet address.
ftp>


4. ftp 서버 최대의 접속자수를 50명까지로 제한한다.( max_clients)

5. /var/ftp/upload 디렉토리는 업로드 및 다운로드 허용.(anon_upload_enable)

6. /var/ftp/pub 디렉토리는 다운로드는 허용하고 업로드는 금지한다

7. user2 계정의 ftp 서비스를 금지한다. (userlist_deny / userlist_file)

8. user1,user3 계정에게만 chroot 기능을 적용시킨다.(chroot_list_enable/chroot_list_file)

9./var/ftp/upload 디렉토리로 들어갈때 아래와 같은 메시지 자동출력.
(vsftpd.conf 의 도움말중 dirmessage_enable 옵션(변수) 참조)
******************************
상용 및 불법자료 업로드 금지!!!
******************************
10. 파일을 전송할때 ascii 모드의 파일전송을 허용한다.
* 참고 - 아래는 ascii 모드로 파일을 다운로드 할때의 출력내용
아래에 빨간색글씨로 표시된 부분을 보면 바이너리 모드로 연결이 되고
그래서 다운받을때 바이너리로 다운로드가 되어서 올바르게 다운되지
않았을수도 있다고 메시지가 표시되어 있다.
이것은 아스키 모드의 전송을 허락하지 않도록 설정되어 있기때문이다.

ftp> ascii <-- 이명령어를 안쓰면 디폴트는 binary 이다.
200 Switching to ASCII mode.
ftp> get .bashrc
local: .bashrc remote: .bashrc
227 Entering Passive Mode (192,168,20,10,81,245).

150 Opening BINARY mode data connection for .bashrc (231 bytes).
WARNING! 11 bare linefeeds received in ASCII mode
File may not have transferred correctly.

226 Transfer complete.
231 bytes received in 0.000198 secs (1166.67 Kbytes/sec)
ftp>

-------------------------------------------------------------------------------------------------------------
추가문제.
1.root 계정으로 ftp 서버로 접속 가능하게 설정

댓글목록

등록된 댓글이 없습니다.


접속자집계

오늘
131
어제
66
최대
611
전체
453,412
개인정보취급방침 서비스이용약관 twoseven.kr All rights reserved.
상단으로