bbong blog : 위치로그 : 태그 : 방명록 : 관리자 : 새글쓰기
bbong blog 블로그에 오신것을 환영해요^^
방명록에 글 남기기!!
55
108
159246
'Linux/FTP'에 해당되는 글 8건
쉘 창에 아래 명령어를 쳐주세요

setsebool -P ftp_home_dir 1

위로
/sbin/modprobe nf_nat_ftp

위로
ftp passive 설정법입니다 (방화벽)
Date : 2009/10/29 15:00 (보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.)
/sbin/modprobe nf_conntrack_ftp ports=21,(변경포트추가)

위로
vsftpd
Linux/FTP, (2007/10/02 14:05)

vsFTP패키지는 마찬가지로 superuser.co.kr에서 받을수 있습니다.


패키지를 설치합니다.

rpm -ivh vsftpd-2.0.3-1.i386.rpm


그리고

rpm -ql vsftpd-2.0.3-1.i386을 이용하여 설치된 파일들을 볼 수 있습니다.


/etc/rc.d/init.d/vsftpd는 서버 실행 스크립트이며


/etc/vsftpd/vsftpd.conf는 서버의 설정파일입니다.


설정파일을 수정하여 여러가지 옵션의 변경이 가능합니다.




vi /etc/vsftpd/vsftpd.conf


chroot

일반 ftp사용자들이 접속하였을때 실제 root를 숨기고 가상루트를 적용시킵니다.


사용자들에게는 접속후 바로 접근하는구역, 즉 홈디렉터리가 루트(/)로 나오게 됩니다.


편집기를 이용하여 vsftpd.conf에 다음 내용을 추가시켜야 합니다.

chroot_local_user=yes 가상루트를 적용합니다.

chroot_list_enable=yes 리스트에 있는 계정은 예외로 한다는 뜻입니다.

                                      반대로 no로 되어있으면 리스트에 있는 계정에만 적용한다는 뜻입니

chroot_list_file=/etc/vsftpd/chroot_list 리스트파일의 위치입니다. 파일을 만들어야 합니다



userlist

계정의 접근을 제한하고 싶을때 사용하는 옵션입니다.


userlist_enable=yes 거부자 목록을 사용한다고 선언합니다.

userlist_deny=yes 목록을 거부자 목록으로 사용합니다.

                               no인경우는 목록에 없는 계정을 접근거부자로 인식합니다.

userlist_file=/etc/vsftpd/user_list 리스트 파일의 위치입니다.



max_clients 최대접속자수를 정합니다.

ex) max_clients=5



max_per_ip 한개의 ip당 최대 접근횟수를 정합니다.



anon_max_rate 계정의 속도를 제한합니다.(익명계정)(최대 1Mbyte)


local_max_rate 계정의 속도를 제한합니다.(시스템계정)


위로

필자가 근무하는 호스팅회사의 고객중 홈페이지가 나오지 않는다고 책임소재를 따진다는 고객이 있었는데 로그를 살펴보니 고객이 직접 파일을 삭제한 흔적이 있었습니다.

간단하게나마 xferlog 의 각각의 항목에 대해 조사해봤습니다.

Xferlog형식 ->  [current-time][transfer-time][remote-host][file-size][filename][transfer-type][special-action-flag][direction][access-mode][username]
[ser-vice-name][authentication-method][authenticated-user-id][completion-status]
아래의 로그가 고객이 index.html 파일을 지운 흔적이며 간단하게 분석을 하자면 아래와 같습니다.

Mon May  9 23:05:55 2005 0 222.100.7.122 740 /home3/speechkorea/public_html/index.html a _ d r speechkorea FTP 0 * c


(1) Mon May  9 23:05:55 2005 0 222.100.7.122  -> 접근 날짜와 시간, 그리고  접속 IP 입니다.

(2) 740 ->파일사이즈를 의미합니다.

(3) /home3/speechkorea/public_html/index.html -> 작업한 파일명을 의미합니다.

(4) a -> ascii mode 를 의미하며 b가 나올수도 있는데  b는 binary 를 의미합니다.

(5) _ -> 아무런 action이 발생하지 않은 것을 의미하며
기타로 올수 있는 항목은 아래와 같습니다.
C는  file 은 압축되어져 있는 것을 의미  
U 는file은 압축이 되어 져있지 않은것을의미
      T  는file 이  tar로 묶여져 있는 것을 의미합니다.

(6) d -> 이부분이 고객이 파일을 지운 것을 알수 있는 부분입니다. Delete 의 앞자 d 입니다.
기타로 올수 있는 항목은 아래와 같습니다
o 는 파일을 받을 때 ( outgoing 의 약자 )
i 는 파일을 올릴 때 나올수 있습니다. (incoming 의 약자)

(7) r -> 사용자가 어떤방식으로 접근했는지 알수 있는부분으로 r 은 real 의 약자로 인증된 사용자란 뜻입니다.
기타로 올수 있는 항목은 아래와 같습니다
a ->   anonymous 의 약자로 익명유저를 의미

(8) speechkorea -> 고객이 로그인한 ID 를 의미합니다.

(9) ftp -> man 페이지를 보면 발생되어지는 service 이름이며 보통은 FTP 라고 나와있습니다.

(10) 0 -> man 페이지를 보면 인증에 사용된 방법이라고 나와있습니다.
기타로 올수 있는 항목은 아래와 같습니다
1 -> RFC931 Authentication 이 있다고 합니다.
(11) * -> 이부분은 authenticated-user-id 부분으로 인증 방법에 의해 돌려지는 user id 라고 합니다. * 은 인증되어진 사용자 id 가 이용될수 없으면 사용된다고 man페이지에 명시되어 있습니다.

(12) c -> 전송상태를 나타내며 c 는 complete transfer 의 약자이며

기타로 올수 있는 항목은 아래와 같습니다

I  -> incompete transfer (불완전한 전송) 를 의미합니다.

-> 정리하고 나니 man 페이지 해석한 수준밖에 되지 않네요..  그래도 한번쯤 읽어보시면 도움이 될 듯 싶습니다. ^^


위로
vsftp.conf
Linux/FTP, (2007/08/17 10:04)
 vsftpd.conf 완전 분석하기

ftp의 계념과 설치방법에 대해 알아보았습니다. 별 어려움 없이 넘어오셨을 것입니다.
마지막으로 설치후 기본적인 셋팅과 보안적인 셋팅등 입맛에 맛게 ftp를 설정하는데
/etc/vsftpd.conf 설정파일이 그것이며 기본셋팅및 다른 어떤 셋팅
항목들이 있는지 직접 설정파일을 열어 항목들과 설명만 정리하였습니다.
빨간색 부분은 최소 기본적으로 해주셔야 할 것들이고 나머지는 상황에 따라 하시면 됩니다.
특히 vsftp와는 다르게 접근계정을 파일에 명시하고 접속을 허락하고 거부하는
정책을 유심히 보시길 바라면 다른 사항은 비슷합니다.

=========== vsftpd.conf ==========================================================


                
[root@lecture ~]# vi /etc/vsftpd.conf

# 익명사용자를 접속시킬것이냐?
# 공개용 ftp가 아니라면 no 혹은 주석처리!!
# anonymous_enable=YES


# local유저 즉 이서버에 있는 계정들을 접속가능하게
# 할것이냐? 당근이지요..
local_enable=YES
#
#
# 쓰기권한부여할거냐?
write_enable=YES


# 쉽게말해서 로컬접속자 접속권한을 걸어주는건데
# umask 계산법은 따로 찾아보시구요
# 022해주시면 755라는 퍼미션으로 접속하게 됩니다.
local_umask=022

# 익명사용자가 업로드 할수있게 할거냐?
# 함부러 큰파일들 올리면 위험하겠지요 신중히... ^^
# anon_upload_enable=YES
#
#
# 익명사용자가 디렉토리를 만들게 할거냐?
# 익명사용자를 허용안할거면 익명관련은 다 no겠지욤 ^^
#anon_mkdir_write_enable=YES


#원격에서 접속하면 환영문자 사용할건지?
dirmessage_enable=YES


#업,다운로드 로그 남길건지?
xferlog_enable=YES
#
# 업,다운로드 로그 파일지정
xferlog_file=/var/log/vsftpd.log

# ascii 모드 파일을 취급(업,다운로드)할거냐?
#ascii_upload_enable=YES
#ascii_download_enable=YES

# ftp서버접속시 보여줄 멘트
#ftpd_banner=Welcome to blah FTP service.

# 이자식은 좀 웃깁니다.
# 단순히 yes , no 계념이 아니고
# 먼저 yes를 하면 다름 나오는 파일에 명시된
# 계정들을 chroot(홈디렉토리 위로갈수있는) 하겠다라는
# 뜻이되고 no를 하면 아래파일에 적힌 계정들만
# chroot 못하게 하겠다라는 뜻
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list

#로컬 유저들에대해서만 chroot적용
chroot_local_user=YES

#########################################################
#
# 여기서부터는 기본 설정에는 없고 필요시 추가해서
#
# 쓰는 설정들입니다.
#
#########################################################

# PAM 파일명을 지정 (설치할 때 /etc/pam.d/vsftpd명으로 복사함)
pam_service_name=vsftpd

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

# 사용자가 자신의 home directory를 벗어나지 못하도록 설정
chroot_local_user=YES

# 새로운 디렉토리에 들어갔을 때 뿌려줄 환경 메시지를 저장한 파일명
# message_file=.message

# xferlog 형식으로 log를 남기려면 (위에서 이미 YES로 했음)
# xferlog_std_format=NO
#
#  - 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"
#  Sun Jul 12 01:38:38 2003 [pid 31199] [truefeel] OK LOGIN: Client "127.0.0.1"
#  Sun Jul 12 01:38:41 2003 [pid 31201] [truefeel] OK MKDIR: Client "127.0.0.1", "/mp3"
#  Sun Jul 12 01:39:06 2003 [pid 31201] [truefeel] OK UPLOAD: Client "127.0.0.1", "/델리
#  스파이스 5집 - [04]키치죠지의 검은 고양이.mp3", 6855473 bytes, 3857.39Kbyte/sec

# 전송속도 제한 (0은 제한없음, 단위는 초당 bytes)
anon_max_rate=0
local_max_rate=0
trans_chunk_size=0

# 최대 접속 설정 (단 xinetd를 통하지 않고 standalone으로 동작할 때만 사용 가능)
# standalone을 위해서는 listen=YES 추가하고 별도로 vsftpd를 띄워야 함
#
# max_clients=최대 접속자 수, max_per_ip=IP당 접속 수
# max_clients=100
# max_per_ip=3

# Standalone 으로 운영할 때 listen=YES. 포트 변경을 원할 경우 listen_port 설정
# 디폴트 포트는 21번 포트이다.
# listen=YES
# listen_port=21

http://kltp.kldp.org/stories.php?story=03/10/09/5659809 참고함
    
    

==================================================================================


위로
iptables -A INPUT -p tcp -m state --state NEW --dport 20 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --dport 10000:20000 -j ACCEPT

vsftpd.conf 수정부분

pam_service_name=vsftpd
userlist_enable=YES
session_support=YES
#enable for standalone mode
listen=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_promiscuous=YES
port_promiscuous=YES
use_localtime=YES
#local_umask=022
hide_ids=YES
one_process_model=NO
pasv_min_port=10000
pasv_max_port=20000
#전송속도 제한(byte단위)
anon_max_rate=10000000
local_max_rate=10000000

lsmod 사용중에 느려지는 모듈 삭제
rmmod ip_conntrack_ftp

위로