lftp 속도 제한

리눅스/FTP|2015. 1. 16. 11:53
반응형

속도 제한기능

 

    - lftp.conf 전체 속도 제한 방법 
      set net:limit-rate down:up (0은 속도제한 없음)

    - 예제) 3MByte/s 로 다운제한
      set net:limit-rate 3145728:0

 

[발췌] 쉬밤 | 아이좋아 (http://blog.naver.com/harvana?Redirect=Log&logNo=100032717897)

반응형

댓글()

lftp 액티브모드로 접속하기

리눅스/FTP|2015. 1. 16. 11:53
반응형

lftp 접속은 기본이 패시브모드입니다.

따라서 액티브모드로 다른 서버에 접속할 경우 아래와 같이 옵션을 주어야 합니다.

 

lftp -u sysdocu sysdocu.tistory.com -e "set ftp:passive-mode 0"

 

sysdocu : 접속계정

sysdocu.tistory.com : 접속 서버 (IP입력 가능)

0 : 액티브모드 접속 ('1'일 경우 패시브모드 접속 - 기본)

 

또는 lftp 일반 접속 후 set ftp:passive-mode 0 로 세팅 변경해도 됩니다.



반응형

'리눅스 > FTP' 카테고리의 다른 글

proftpd, vsftpd 서버 시간 맞추기  (0) 2015.01.16
lftp 속도 제한  (0) 2015.01.16
vsftpd 각 옵션 설명  (0) 2015.01.16
FTP로 올린 파일 생성시간을 시스템 시간에 맞추기  (0) 2015.01.16
vsftpd 포트 변경  (0) 2015.01.16

댓글()

vsftpd 각 옵션 설명

리눅스/FTP|2015. 1. 16. 11:53
반응형

vsftpd.conf 설정 

anonymous_enable=YES : 익명 FTP 서비스 활성화 여부 설정 
local_enable=YES : 로컬 계정 사용자 접속 여부 설정 
write_enable=YES : 쓰기 가능 여부 설정 
local_umask=022 : 파일 퍼미션 정의(022로 설정하면 파일의 퍼미션은 644가 됨) 
anon_upload_enable=YES : 익명 FTP 접속자의 파일 업로드 권한 설정 
anon_mkdir_write_enable=YES : 익명 FTP 접속자의 디렉토리 생성 권한 설정 
dirmessage_enable=YES : FTP 접속자가 다른 디렉토리로 이동시, 알림메시지 출력 여부 설정 
xferlog_enable=YES : FTP 접속자들의 업/다운로드 상황 로그파일 저장 여부 설정 
connect_from_port_20=YES : standalone 모드를 운영하면서 데이터 전송포트 사용시 설정 
chown_uploads=YES : 익명 FTP 서비스에서 익명 접속자가 업로드한 파일의 소유권 자동 변경 여부 설정 
chown_username=whoever : 익명 FTP 서비스에서 익명 접속자가 업로드한 파일의 소유권 자동 변경한 후, 그 소유권을 변경할 사용자 설정(root로 설정하지 말 것!) 
xferlog_file=/var/log/vsftpd.log : 로그파일 경로 설정 
  > cp vsftpd.log /etc/logrotate.d/vsftpd : 생성한 로그파일을 /etc/logrotate.d/vsftpd로 복사
xferlog_std_format=YES : 로그파일 포맷 설정 
idle_session_timeout=600 : idle 상태에서 접속을 유지할 최대 시간 설정(기본값 300초) 
data_connection_timeout=120 : 파일 업/다운로드시 연결을 유지하는 시간 설정(기본값 300초) 
xferlog_std_format=YES : 로그파일 포맷 설정 
nopriv_user=missflash : 익명 FTP 접속자가 접속하는데 사용할 사용자 설정(기본값 nobody)
async_abor_enable=YES : async ABOR 명령 가능 여부 설정(기본값 NO) 
ascii_upload_enable=YES : ASCII 파일 업로드 가능 여부 설정(기본값 NO) 
ascii_download_enable=YES : ASCII 파일 다운로드 가능 여부 설정(기본값 NO) 
ftpd_banner=Welcome : FTP 접속자에게 보여줄 환영 메시지 설정 
deny_email_enable=YES : 익명 FTP 접속시 접속을 거부할 이메일[각주:3] 설정(기본값 NO)[각주:4] 
banned_email_file=/etc/vsftpd.banned_emails : 접속을 거부할 이메일의 파일 경로 설정 
chroot_local_user=YES : 홈 디렉토리 위로 이동 제한 여부 설정(기본값 NO)[각주:5] 
chroot_list_enable=YES : chroot에서 제외할 사용자 목록 파일 사용 여부 설정(기본값 NO) 
chroot_list_file=/etc/vsftpd.chroot_list : chroot에서 제외할 사용자 목록 파일과 경로 설정 
ls_recurse_enable=YES : FTP 접속자들의 ls -R 명령어 사용가능 여부 설정(기본값 NO) 
listen=YES : standalone 모드로 서비스할 때 설정(기본값 xinetd) 
pam_service_name=vsftpd : pam 인증에 사용할 설정파일의 이름 설정 
  > 해당 파일 복사 : cp /usr/local/src/ftpd/vsftpd-2.0.5/RedHat/vsftpd.pam /etc/pam.d/vsftp 
  > 사용자 계정 접속 제한 : (vsftp 파일 내용중) item=user sense=deny file=/etc/ftpusers
pasv_min_port=5000 : 패시브 모드 최소 포트번호 설정 
pasv_max_port=6000 : 패시브 모드 최대 포트번호 설정(iptables 방화벽에서 5000~6000까지 오픈해야 함) 
pasv_enable=NO : 패시브 모드를 해지(기본값 YES) 
max_clients=100 : 최대 동시접속자수 제한 설정(기본값 0[각주:6]) 
max_per_ip=5 : IP당 최대 가능 접속수 설정(기본값 0) 
session_support=YES : wtmp에 접속로그 남기도록 설정(YES 설정시 last 명령으로 접속 사용자의 최근 접속시간 파악 가능) 
trans_chunk_size=8192 : 파일 업/다운로드시 지정한 byte 단위로 잘라서 전송(4096부터 65536사이의 값으로 지정해야 함, 기본값 0[각주:7]) local_max_rate=500000 : 계정 사용자의 최대 초당 전송량(bytes) 제한(기본값 0) 
anon_max_rate=300000 : 익명 접속자의 최대 초당 전송량(bytes) 제한(기본값 0) 
force_dot_files=YES : 숨김 파일(.으로 시작하는 파일)을 보여줄지 여부 설정(기본값 NO) 
hide_ids=YES : 디렉토리와 파일의 원래 소유자와 소유그룹을 숨길지 여부 설정(기본값 NO) 
deny_file={*.mp3,*.wmv} : 특정 확장자 파일 업로드 제한 
hide_file={*.mp3,*.wmv} : 특정 확장자 파일 열람 제한

 

 

[발췌] http://blog.missflash.com/538

반응형

'리눅스 > FTP' 카테고리의 다른 글

lftp 속도 제한  (0) 2015.01.16
lftp 액티브모드로 접속하기  (0) 2015.01.16
FTP로 올린 파일 생성시간을 시스템 시간에 맞추기  (0) 2015.01.16
vsftpd 포트 변경  (0) 2015.01.16
proftpd 설치 및 설정  (0) 2015.01.16

댓글()

FTP로 올린 파일 생성시간을 시스템 시간에 맞추기

리눅스/FTP|2015. 1. 16. 11:53
반응형

vsftpd.conf 내용중

use_localtime=yes 로 설정하면 됩니다.

반응형

'리눅스 > FTP' 카테고리의 다른 글

lftp 액티브모드로 접속하기  (0) 2015.01.16
vsftpd 각 옵션 설명  (0) 2015.01.16
vsftpd 포트 변경  (0) 2015.01.16
proftpd 설치 및 설정  (0) 2015.01.16
[vsftp]500 OOPS: cannot change directory  (0) 2015.01.16

댓글()

vsftpd 포트 변경

리눅스/FTP|2015. 1. 16. 11:52
반응형

# vi /etc/vsftpd/vsftpd.conf

listen_port=원하는포트번호 추가 gn,  vsftpd 재실행.

반응형

댓글()

proftpd 설치 및 설정

리눅스/FTP|2015. 1. 16. 11:52
반응형

<FTP 서버 구축하기>

(File Transfer Protocol)는 파일을 클라이언트로 전송하는 서비스이다. ftp서버는 클라이언트에서 파일을 받아갈수 있도록 pro-ftp나 wu-ftp와 같은
서버 프로그램을 설치한 서버를 말한다.
pro-ftp는 unix기계 또는 unix호환 운영체제를 위한 FTP데몬이다.(일반적으로 실행할때 ftpd가아니라 proftpd를 실행시키면된다.)
또한 Free software로 GPL(GNU Public License)에 따라 개발 되어져 왔으며, 완전한 소스코드공개와 이에 따른 패키지도 함께 제공하고 있다.



FTP 설치하기

다운받기
웹에서 다운받기 http://www.proftpd.org
ftp에서 다운받기
#mv proftpd.1.2.4.tar.gz /usr/local/src
#cd /usr/local/src
#tar zxvf proftpd.1.2.4.tar.gz
Readme,install, contrib/readme
#cd /etc/
#cp proftpd.conf proftpd.conf.pre ->만약에 대비에 요파일을 복사해둔다.(/etc에서 복사)
#./configure --prefix=/usr/local/proftpd --sysconfdir=/etc --enable-autoshadow
1). --prefix=/usr/local/proftpd (프로그램소스가 설치될 경로 지정한것.)
2). --sysconfdir=/etc (proftpd.conf가 설치된 장소(/etc) 여기서 sysconfdir은 환경설정파일이다.)
#make
#make install
#/etc/rc.d/init.d/xinetd stop ---> 기존의 돌고있는 데몬을 중지시킨다.
#vi /etc/proftpd.conf ---> 요놈을 연다
내용을 servername ---> 서버네임을 적어준다...나중에 접속시 재대로 작동이 되는지 확인차 적어준다.
servertype inetd ---> 요걸 주석처리하거나 삭제시킨다. 이파일은 xinet가구동될때 같이 돌게끔해준다....
servertype standalone ---> 다음 밑에 요것을 적는다.
#/usr/local/proftpd/sbin/proftpd ---> 새로 설치한 proftpd의 데몬을 실행
#ftp wowhome.pe.kr --->새로컴파일한것을 ftp로 접속하여본다.
#접속이 되는지 확인........
servertype inet로 구동시킬때 xinet로 같이 구동되게끔 할려면 다음과 같이 수정한다.
#재부팅시 기존의 ftp가 아닌 새로설치한 ftp를 자동구동시키기 위해선 다음을 수정한다.
#vi /etc/xinetd.d/proftpd ----> 기존에 구동되고 있는 ftp의 실행경로를 수정한다.
server =/usr/sbin/in.proftpd --->요것을 다음과같이 수정---> (server = /usr/local/proftpd/sbin/in.proftpd)새로설치한 ftp경로.)
/etc/rc.d/init.d/xinetd restart
접속

우선 vi /etc/proftpd.conf의 내용을 알아보자
# See the References in '/usr/share/doc/proftpd-core-{version}/' directory
# If u have any question, visit our Web Site. http://www.wowlinux.com
# or http://proftpd.oops.org
# Thank you - WOWLINUX.COM
##ServerName "ProFTPD Default Installation-WOW"
ServerName "새로설치한 proftp"
ServerType inetd
#ServerType standalone
DefaultServer on
Port 21 ------> ftp접속시 포트번호 이곳은 vi /etc/services를 열면 볼수있다
Umask 022 ------> 새로생성된 파일이 자동으로
MaxInstances 30 ------> dos의 공격에 보호하기 위해서 proftpd가 standalone모드로 동작할때, 생성되는 최대자식프로세스 수
보안상 중요하므로 될수있는 한 기본값에 따른다.
User nobody ---> 유저지시자로 설정한 유저는 proftpd설정을 실행하는 사용자로 의미한다.
Group nobody ---> 그룹지시자는 proftpd를 실행하는 사용자그룹을 의미한다
UseReverseDNS off --->
IdentLookups off
AuthPAMAuthoritative on
RootLogin off ---> 기본으로 root는 ftp접속이 불가능하게 되어있다....그러나 on으로 하면 접속이 가능하다.
<Directory /*>
AllowOverwrite on ---> Allowoverwrite 지시자는 새로생성될 파일로 덮어쓰기를 결정한다.반대로 off는 덮어스기를 결정하지않는다.
</Directory>
<anonymous --------------> 익명의 사용자를 의미>
<Anonymous ~ftp>
User ftp --->
Group ftp
UserAlias anonymous ftp ---> 별칭 자기가 anonymous로 접속하고 싶은 별칭을 갖고 anonymous와 같이 접속하는 효과를 가진다.
MaxClients 10 "Sorry, maxium users %m -- try again later" ---> anonymous로 동시접속할수 있는 최대 인원을 나타낸다.

((실습) --->우선맥스클라이언트를 1로 바꾸고 /etc/rc.d/init.d/xinetd restart를 구동시킨다. 그런후 #ftp localhost로 접속하고
id는 ftp나 anonymous로 하고 패스워드는 임의로 하나 만든다 그런다음 창을 하나 더열어 똑같은 방법으로 접속하여본다.
접속시
Login failed.
421 Service not available, remote server has closed connection ---> 요렇게 나오면 성공이다.

MaxClientsPerHost 1 "Sorry, Allow only one client for host"
DisplayLogin welcome.msg ----> 메세지를 뿌려주는것
DisplayFirstChdir .message
RequireValidShell off ----> 요부분이 off로 되어있어야만 anonymous로 접속이가능하다.(기본설정은 off)로 되어있다.
HideUser root
# Anonymous's Uploads Directory
<Directory uploads/*>
AllowOverwrite on --------> 덮어쓰기가 가능하게 할것인가 묻는옵션,또한 파일업로드도 가능하다.
AllowRetrieveRestart on
AllowStoreRestart on
<Limit DELE RMD>
DenyAll --------------> 삭제하는것을 불허한다는 옵션 삭제가능은 allowall로 설정하면 된다.
</Limit>
<Limit READ STOR MDK> --> 업로드라는 방에 대해서 읽기는 가능하고 디렉토리만드는것이 가능하다 upload라는 방에대해서...
AllowAll
</Limit>
</Directory>
# anonymous로 접속했을시 get과 put모두 사용가능하다. 단 rmdir rm은 사용불허한다.
# Anonymous's Public Directory
<Directory pub/*>
<Limit READ> ----------------> pub는 읽기 가능하다.
AllowAll ----------------> 모든것을 허용한다.
</Limit>
<Limit STOR DELE RMD MKD> ---------------> pub삭제나 생성이 불가능하다는 뜻.
DenyAll
</Limit>
</Directory>
# 일반적으로 anonymous로 접속을 했을시 get(읽기는 가능하고) put(불가능하게 한다)
--------------------------------------------------------------------------------
CWD (작업 디렉토리 변경)
작업 directory를 변경하는 것을 제어할때 사용된다.이 명령이 limits에 설정
이 되면 CDUP (디렉토리 UP 변경) 명령도 역시 적용이 된다.

MKD (Directory 생성)
새로운 directory생성을 제어 할때 사용한다.

RNFR (ReName FRom), RNTO (ReName TO)
rename에 대한 권한을 제어할때 사용한다.

DELE (DELEte)
file delete에 대한 권한을 제어할때 사용한다.

RMD (ReMove Directory)
directory delete에 대한 권한을 제어할때 사용한다.

RETR (RETRieve)
server로 부터 client로의 file 전송을 제어할떄 사용한다.(down load)

STOR (STORe)
client로 부터 server로의 file 전송을 제어할떄 사용한다.(up load)

READ
file 읽기에 관련된 모든 FTP명령들에 대한 제어를 할때 사용한다.
directory listing은 포함되지 않는다 예) RETR, STAT 등

WRITE
file 또는 directory에 대한 모든 FTP 명령에 대한 제어를 할때 사용한다.
쓰기/생성/제거(MKD 와 RMD 도 포함된다.)

DIRS
directory listing에 대한 모든 FTP 명령에 대한 제어를 할때 사용한다.
예) LIST 와 NLST
SITE_CHMOD(파일 권한 바꾸기)

ALL
모든 FTP 명령들을 제어할때 사용한다. (READ, WRITE, DIRS 들이 정의하고 있는 모든 권한들)
--------------------------------------------------------------------------

<ftp 계정접속불가자 만들기>
수정파일의 경로 #vi /etc/pam.d/ftp를 연다...
1. <내용 fpt>
원래파일은 file=/etc/proftpd/conf/ftpusers를 아래와 같이 수정한다.
file=/etc/ftpusers (수정한 내용) onerr=suceed
2.실제 ftp불가 계정자 등록하기
vi /etc/ftpusers를 연다
#root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
(kywebm01)-->요렇게 추가한다.
저장하고 나온후 새로데몬을 리스타트시킨다.
#/etc/rc.d/init.d/xinetd restart
#ftp 211.42.115.155로 접속한후
추가시킨 계정명(kywebm01)이란 아이디로 접속을 시켜본다.
접속이 되지않으면 성공.



<서버와 클라이언트간의 ftp 불가 호스트만들기>
#vi /etc/proftpd.conf를 연다....
내용가장하단에 보면....anonymous안에 내용을(limit~/limit)적는다.
<limit login> ----> 내용시작하는 옵션
Order deny,allow ----> (deny(접속불가,allow(접속허용)우선순위 적용한내용....)
Deny from 211.42.115.162 ----> (접속불가호스트명)
Allow from all ----> 접속불가호스트명을 제외한 나머지 호스트는 허용한다는 뜻
</limit> ----> 내용이끝나는 옵션
</Anonymous> ----> 마지막 라인위에 내용을 삽입한다.
***********************************중요***********************************

현재 로그인 제한 범위가 <anonymous>~</anonymous>안에서 효력을 발휘하므로
로그인제한범위설정을 anonymous밖에 놓아두면 다른(162번컴퓨터) 컴퓨터에서
다른계정으로 접속하는게 불가능하다.
-------------------------------------------------------------------------
저장하고 나온다.
#/etc/rc.d/init.d/xinetd restart --> 데몬 리스타팅
확인방법(162번 컴퓨터에서 서버컴퓨터에 접속을 하여본다)
#ftp 211.42.115.155
login:anonymous
passwd:아무게나
접속이 불가능하면 성공....



<ftp사용자가 접속시 welcome.msg를 이용한 환영메세지 뿌리기>
1. 우선 #vi /var/ftp/welcome.msg ---> 파일을 만든어 아래와 같이 메세지를 적는다.
************************** welcome.msg의 내용 **************
환영합니더
Proftp 1.2 %V ---> proftp버전을 나타내는 함수
ftp://%L/ --->
.남은용량 : %F ---> 남은용량확인
.현재사용자수 : %N /%M ---> 현재사용자수/제한사용자수
.%R 에서 %U 님이 접속하셨습니다.--->클라이언트컴퓨터에서 호스트컴퓨터로 접속한 아이피주소와 id출력.
.%T 년에 접속 --->마지막 접속한 시기알리기
FTP사용상에 애로틱한 사항이 있으시면
재빨리 메일주소를 남겨주세요....
E-mailto : %E
***********************************************************
2. vi /etc/proftpd.conf 을 열어보면은 아래와같은 내용이 적혀있는데
그중에서 (DisplayLoginwelcome.msg)이란내용을 anonymous 밖에 복사하여적으면
일반사용자도 (welcome.msg 파일의 내용이 ftp접속시 화면에 디스플레이된다.)
anonymous 안에 적혀있으면 anonymous로 접속한 사용자가
(welcome.msg 파일의 내용이 ftp접속시 화면에 디스플레이된다.)
(예 : aa라는 계정이 있는 경우 aa계정 디렉토리안에 welcome.msg를 복사하여 넣어준다.)
*****************************내 용 **************************
DisplayLogin welcome.msg
<Anonymous ~ftp>
User ftp
Group ftp
UserAlias anonymous ftp
MaxClients 1 "Sorry, maxium users %m -- try again later"
##MaxClientsPerHost 1 "Sorry, Allow only one client for host"
MaxClientsPerHost 1 "바부야 안되제....켁"
DisplayLogin welcome.msg
DisplayFirstChdir .message
RequireValidShell off
HideUser root

**************************************************************
시스템 데몬을 리스타트시킨후 계정으로 접속을 하여본다.
여기서 welcom.msg의 내용이 나타나면 성공..
---------------------------------------------------------------------------------------------
68 <Directory upload> <=== 여기서부터는 추가한 내용이다.
69 <Limit RETR> RETR: 다운로드를 의미한다.
70 DenyAll DenyAll : 모든사용자에게 금지
71 </Limit>
72 <Limit STOR> STOR : upload 를 의미한다.
73 AllowAll
74 </Limit>
75 </Directory>
76
77 <Directory pub>
78 <Limit RETR READ>
79 AllowAll AllowAll : 모든 사용자에게 허용
80 </Limit>
81 <Limit STOR>
82 DenyAll
83 </Limit>
84 </Directory>
85 </Anonymous>
------------------------------------------------------------------------------------------
Order를 이용한 권한 제어
위에서 다루었던 proftpd.conf는 단순히 AllowAll 과 DenyAll만을 사용해 권한 제어를 했는데 Order 명령을 이용해서
접근제어와 권한 제어를 할 수 있습니다.
특정 호스트만 로그인을 허용할 때
<Limit LOGIN>
Order allow,deny
Allow from 203.241.205.,.rootman.co.kr
Deny from all
</Limit>
Order 명령에서 Allow 와 Deny는 공백 문자가 아닌 쉼표(,)로 구분합니다.
Allow 와 Deny의 대상을 입력할 때도 대상들의 구분은 공백이 아닌 쉼표(,)로 구분합니다.
위의 설정은 203.241.205의 네트워크 주소를 가지거나 rootman.co.kr을 포함해 하위 호스트들만 접근이 가능하고 그외 호스트에 대해서는 Login을 받아 들이지 않습니다.
예)
203.241.205.97 ---> 로그인 가능(203.241.205의 네트워크 주소를 가진다)
203.241.202.16 ---> 로그인 불가(203.241.205의 네트워크 주소를 가지지 않는다)
linux.rootman.co.kr ---> 접속 가능(rootman.co.kr의 하위 호스트이다)
microsoft.com ---> 접속 불가(rootman.co.kr의 하위 호스트가 아니다)
order명령은 LOGIN외에 READ, MKD, DELE, RMD, STOR등에도 적용할 수 있습니다.
2. 그외 설정 
2-1 ftp 루트( / ) 디렉토리 지정
DefaultRoot ~
사용자가 fpt로 접속해서 자신의 홈 디렉토리 외에 다른 곳에는 접근하지 못하게 합니다.
~(물결표시)는 사용자의 홈 디렉토리를 가리킵니다. 즉 자신의 홈 디렉토리가 루트( / ) 디렉토리가 됩니다.
이 지시자를 설정 하지 않으면 기본적으로 DefaultRoot는 /로 설정되어 있기 때문에 사용자는 최상위 경로( / ) 까지 접근 할 수 있습니다.
예)
DefaultRoot ~aaa,bbb,ccc
--> aaa, bbb, ccc 그룹에 속하는 ftp 접속 떄 자신의 홈 디렉토리가 루트( / ) 디렉토리가 된다.
DefaultRoot ~ !aaa
--> aaa 그룹에 속하는 사용자들을 제외한 나머지 접속자들은 자신의 홈 디렉토리가 루트 ( / ) 디렉토리가 된다.
2-2 심볼릭 링크 파일 보여주기
ShowSymlinks On 또는 Off
디렉토리에서 심볼릭 링크가 된 파일을 보여 주는냐, 보여 주지 않느냐에 대한 설정입니다.
이 설정이 안 되어 있을 때에는 기본적으로 계정 사용자 접속의 경우에는 심볼릭 링크파일이 보여지고 anonymous사용자 접속의 경우는 심볼릭 링크 파일을 보여주지 않습니다.
전체 사용자에게 On 또는 Off를 설정하고 싶다면 Global 섹션에 포함 시키면 됩니다.
2-3 숨김파일 보여주기
LsDefaultOption "-a"
이 설정을 함으로써 점( . ) 으로 시작하는 파일 또는 디렉토리명을 보여 줍니다. 즉 숨김 파일에 대한 설정입니다. 하지만 요즘 사용하는 ftp클라이언트에서도 이 기능을 제공합니다.
3. welcome.msg 파일에 사용할 수 있는 유용한 것들
호스트명 : %L
남은 용량 : %f
현재 접속자 수 : %N
최대 접속자 수 : %M
리모트 호스트 : %R
사용자명 : %U
관리자 메일 : %E
 



[작성] 까르페디엠 ( http://enigma777.egloos.com/3279366 )


반응형

댓글()

[vsftp]500 OOPS: cannot change directory

리눅스/FTP|2015. 1. 16. 11:51
반응형

vsFTP 에 접속하는 일반적은 경우는 
vsftpd.conf 를 수정하는 것이겠다.

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

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

# setsebool -P ftp_home_dir=1

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



[출처] 만쥬뽀옹 | http://blog.naver.com/egirl5?Redirect=Log&logNo=110023368258

반응형

댓글()

삼바서버 설정 간단 메뉴얼

리눅스/FTP|2015. 1. 16. 11:50
반응형

삼바 버젼 정보

samba-3.0.23c-2
samba-client-3.0.23c-2
samba-common-3.0.23c-2


삼바 설정파일


/etc/samba/smb.conf 파일 수정

 

[global]
# 언어셋 맞춤. 설정하는 곳이 없으므로 [global]안에 아무 위치에나 넣어줍니다.
unix charset = cp949 
dos charset = cp949 
display charset = cp949

 

# 접근대역 설정. 아래는 192.168.1.x 대역에서만 접근 가능
hosts allow = 192.168.1.

 

# share 일 경우, 익명 접근 가능
# user 일 경우, smbpasswd 로 등록한 사용자만 접근 가능(시스템 계정과는 다름)
security = share

 

[public] 
comment = 누구나 접근 가능한 디렉토리  <--- 삼바 접근시 보여지는 제목
path = /samba_data                              <--- 파일을 upload / download 하기 위한 홈디렉토리
read only = no                                      <--- 디렉토리에서 쓰기도 가능하게 함
writable = yes                                       <--- 쓰기를 허용할것
security = share                                     <--- 모두 오픈
public = yes                                          <--- 공동 사용 디렉토리
create mask = 0755                               <--- 파일이나 디렉토리 생성시 설정되는 퍼미션값


디렉토리 퍼미션 조절

root@sysdocu:~# chmod 1777 /samba_data

위 명령으로 디렉토리에 sticky bit 를 부여합니다.

참고 : sticky bit 의 이용목적은 어떠한 폴더 혹은 파일을 생성 후, 쓰기, 읽기, 실행 등 모든것이 가능합니다.
         단, 그 디렉토리나 혹은 파일의 삭제는 그 파일의 소유자만이 가능합니다.


네트워크 드라이브 연결

윈도우즈 탐색기 - [도구] - [네트워크 드라이브 연결] - 드라이브 : 원하는 드라이브 선택, 폴더 : (삼바서버IP)public (마침)

※ 참조

특정 계정 및 암호 설정

1) 시스템 계정을 만들고 패스워드를 설정합니다.

# useradd fileuser

# passwd fileuser

 

2) 삼바 계정을 생성합니다.

# smbpasswd -a fileuser

* 삼바 계정 패스워드 갱신 : smbpasswd -U fileuser

* 쉘스크립트상에서 자동 등록을 하려면 아래와 같이 사용이 가능합니다.

smbpasswd -a sysdocu << EOF

1q2w3e4r

1q2w3e4r

EOF

또는

echo -ne "PassWord\nPassWord\n" | smbpasswd -a -s sysdocu


3) 설정파일(/etc/samba/smb.conf)을 재설정 한 후, 삼바를 재시작하여 적용합니다.

security = user                                      <--- 사용자 계정으로 로그인

[public] 
comment = 누구나 접근 불가능한 디렉토리  <--- 삼바 접근시 보여지는 제목
path = /samba_data                              <--- 파일을 upload / download 하기 위한 홈디렉토리
read only = no                                      <--- 디렉토리에서 쓰기도 가능하게 함
writable = yes                                       <--- 쓰기를 허용할것
public = no                                           <--- 공동 사용 디렉토리
create mask = 0755                               <--- 파일이나 디렉토리 생성시 설정되는 퍼미션값

valid users = fileuser                             <--- 접근 가능한 계정

 

반응형

댓글()

vsftpd 디렉토리 및 파일 업로드시 자동으로 퍼미션 조절하기

리눅스/FTP|2015. 1. 16. 11:50
반응형

아래 설정을 하게되면 ftp 로 디렉토리 및 파일 업로드시 퍼미션을 자동으로 조절해줍니다.


# vi /etc/vsftpd/vsftpd.conf


local_umask=022          // 디렉토리 퍼미션 (777 - 022 = 755 의 권한을 갖게됩니다.)

file_open_mode=0755    // 파일 퍼미션 (파일은 빼기 없이 그냥 755의 권한을 갖게됩니다.)



반응형

댓글()

NFS 설정 방법 (자세히)

리눅스/FTP|2015. 1. 16. 11:50
반응형
1. NFS의 정의
1) Network File System의 약자이며, TCP/IP 네트워크로 다른 컴퓨터에 있는 파일 시스템을 마운트시켜 서버의 자료를 공유할 수 있게 해주는 시스템이다.
2) 리눅스 운영체제간에 파일을 공유하기 위해 많이 사용되고 있는 프로토콜로 썬 마이크로 시스템사에서 개발되었다.
3) 삼바는 리눅스-윈도간의 파일및 하드웨어 공유인 반면 리눅스를 비롯한 유닉스 운영체제에서는 삼바보다는 NFS 프로토콜을 이용한다.
4) 서버에 의해 마운트되는 것이 아니라 클라이언트가 파일 시스템을 마운트하여 자신의 파일 시스템처럼 사용한다.
5) 보안에 허점이 있다.
 
2. NFS의 3가지 구성요소
1) TCP/IP 네트워크를 통하여 클라이언트와 서버가 연결이 가능한가
2) 클라이언트는 서버의 파일 시스템을 마운트시킬 수 있는가
3) 서버는 클라이언트에 의해서 마운트될 수 있는가
 
3. NFS 서버 설정
1) NFS 서버는 언제든지 클라이언트가 마운트할 수 있도록 준비되어야 하는데, 이러한 준비과정을 exporting이라 한다. 따라서 exporting 될 서버는 NFS 데몬인 rpc.mountd, rpc.nfsd 두 데몬이 프로세스상에서 작동할 수 있도록 설정해야 한다.
 
4. NFS 주요 데몬
rpc.mountd
* NFS 마운트 데몬이다.
* /etc/exports 설정에 따라 클라이언트의 마운트 요청을 처리한다.
rpc.nfsd
* 클라이언트가 rpc.mountd에 접속이 유지되면, rpc.nfsd를 사용하여 클라이언트의 요구에 따라 처리한다.
* /etc/exports 설정에 따라 클라이언트는 다양한 작업을 할 수 있다.
rpc.lockd
* 파일 잠금과 관련된 데몬으로 현재 사용 중인 파일을 다른 사람이 사용할 수 없게 잠그는 역할을 한다.
rpc.startd
* 파일 잠금과 해제의 역할을 한다.
 
5. Portmap
→ RPC(Remote Procedure Call) ㅍ로그램을 port(tcp/udp)에 매핑시켜주는 데몬이다.
→ NFS를 사용하려면 꼭 필요한 데몬이다.
→ RPC를 사용하는 프로그램(NFS)이 시작되면 portmap은 서비스를 제공할 port를 portmap에 등록시킨다.
→ portmap은 Time Service를 필요로 한다.
   (Time Service는 xinetd 데몬에 포함되어 있다.)
→ portmap이 자신의 운영체제에 설치되어 있는지 확인하자.
 
6. NFS Exporting 설정
1) /etc/exports에서 설정하며, NFS의 주요 설정 파일이다.
2) 사용자가 원하는 설정을 작성해 주어야 한다.
3) /etc/exports 파일에서 사용 가능한 마운트 옵션은 다음과 같다.

옵션                            기능
root_squash                클라이언트에서 루트를 서버상에 nobody 사용자로 매핑한다.
no_root_squash          서버와 클라이언트 모두 같은 root를 사용한다.
ro                                 파일 시스템을 읽기전용으로 마운트 한다.
rw                                파일시스템을 읽기/쓰기 로 마운트 한다.
insecure                       인증되지 않은 액세스도 가능하다.
link_relative                서버에 있는 루트와의 링크를 포함하는 디렉토리에서 얻는 "../" 만큼 링크 앞에 두어 절대 심볼릭 링크를 상대 심볼릭 링크로 바꿀때 사용한다.
 
7. NFS Exporting 설정 예
/home/redhat   one.linux.co.kr  (ro)  two.linux.co.kr  (rw)

/home/redhat  디렉토리를 one.linux.co.kr과 two.linux.co.kr 
두 개의 클라이언트 컴퓨터들이 마운트할 수 있으며, 
one 클라이언트 컴퓨터는 오직 읽기로만 마운트되고, 
two 클라이언트 컴퓨터에는 읽기/쓰기로 마운트 된다.

/usr/local/bin    *.linux.co.kr    (ro)
linux.co.kr 도메인 내에 있는 모든 컴퓨터들이 /usr/local/bin 파일 시스템을 읽기 전용으로 마운트된다.
/pub                                        (ro, insecure,root_square)
/pub 디렉토리에 대해서 읽기로만 마운트할 수 있고, 사용자 인증이 없이 액세스가 가능하며, 이 데렉토리 파일 시스템에 액세스 하는 모든 컴퓨터의 루트를 서버에서 nobody 사용자로 액세스할 수 있게 한다는 의미이다.
 
8. NFS 데몬 실행
1) NFS 서버에서는 NFS Exporting을 준비한 후에 클라이언트가 NFS 파일 시스템을 마운팅할 수 있도록 NFS 데몬을 띄워 주어야 한다.
2) 서버가 부팅시 자동적으로 NFS 데몬이 활성화 되도록 하려면 ntsysv 명령을 실행하여 서비스 항목에서 nfs를 선택하여 부팅하면 된다.
3) 클라이언트에 의해서 마운트될 파티션을 /etc/fstab 파일에 마운트 정보를 삽입시켜 자동적으로 마운트가 될 수 있도록 해준다.
4) 데몬 띄우는 방법은 다음과 같이 스크립트를 실행해 주어야 한다.
             시작          /etc/rd.d/init.d/nfs start
             중지          /etc/rd.d/init.d/nfs stop
             재시작       /etc/rd.d/init.d/nfs restart
 
5) rpcinfo

 NFS가 작동 중일때, RPC 정보를 보여주는 프로그램이다.
 사용법 : rpcinfo [-n portnum] [옵션] host prognum [versnum]
 rpcinfo의 옵션
   -p : 호스트의 포트맵을 보여준다.
   -u : udp를 사용한다.
   -t  : tcp를 사용한다.
   -n : 포트 번호를 지정한다.
   -b : 모든 호스트에 broad cast하여 정보를 받는다.
   -d : 삭제한다.


9. 클라이언트 NFS 마운트
1) 마운트 사용법
mount [-t nfs] 서버:디렉토리 /마운트 위치
예) mount onr.linux.co.kr:/home/linuxone /LinuxOne
 
2) /etc/fstab을 통한 NFS 마운트하기
nfs_server.linux.co.kr:/home/redhat/CD-ROM
/users/redhat/CD-ROM nfs     timeo=15,  initr
 

nfs_server.linux.co.kr:/home/redhat/CD-ROM

nfs_server.linux.co.kr 호스트에 있는 "/home/redhat/CD-ROM" 파일 시스템을 클라이언트 마운트 위치인 "users/redhat/CD-ROM"으로 마운트 하는 것이다.

/users/redhat/CD-ROM nfs

파일 시스템은 nfs임을 나타낸다.

timeo=15

타임아웃 시간은 1.5초로 설정한다.

initr

파일 시스템 작동을 인터럽트 가능하게 하는 것이다.

3) NFS 마운트에서 사용되는 옵션

옵션                        기능
rsize = n                  NFS 서버로부터 읽어 들이는 바이트 수 지정, 기본값은 1024 바이트이다.
wsize = n                NFS 서버에 쓰기할때 사용하는 바이트 수 지정, 기본값은 1024 바이트이다.
timeo = n                 RPC 타임아웃이 발생되고 나서 첫번째 재전송 요구를 보낼때 사용되는 시간으로 기본값은 7*1/10초이다.
retrans = n               주 타임아웃을 발생시키는 부 타임아웃과 재전송 횟수로 기본값은 3번의 타임아웃이다.
port = n                   NFS 서버와 연결할 수 있는 포트 번호를 지정한다.
fg                             첫번째 NFS 마운트 시도에서 타임아웃이 발생되면 즉시 중단하며, 기본값이다.
intr                          주 타임아웃이 발생되었을때 신호를 보내 NFS 호출을 인터럽트한다.
hard                         주 타임아웃이 발생되면 server not responding 출력하고 무한정 재시도 한다.
soft                          주 타임아웃이 발생되면 프로그램에게 I/O 에러를 보고한다.


출처 (ㅡ.ㅡa) | 못난이
원문 http://blog.naver.com/akrthwn/140019046346


반응형

댓글()

NFS 설정 방법 (간단) - 구버전

리눅스/FTP|2015. 1. 16. 11:49
반응형

1. 데이타가 존재하는 서버에서..



우선 필요한 패키지를 설치해줍니다.


root@sysdocu:~# yum install portmap nfs*


1) 아래 파일에서 공유할 디렉토리와 클라이언트IP를 등록합니다.

root@sysdocu:~# vi /etc/exports

/nfsdata    192.168.0.100(rw,no_root_squash)

※ /nfsdata : 공유할 폴더
     192.168.0.100 : 접근 허용할 IP
     rw,no_root_squash : read, write 권환과 해당 디렉토리에 대한 root 권한 할당. (옵션을 안주어도 됨)

2) portmap 과 nfs 데몬이 실행중인지 확인 후, 실행이 되지 않았을 경우 가동시켜줍니다. (portmap 우선)

root@sysdocu:~# service portmap start  <- 반드시 nfs 시작 전에 구동해야합니다. (최신리눅스에서는 portmap 대신 rpcbind 사용함)
root@sysdocu:~# service nfs start

root@sysdocu:~# service nfslock start

root@sysdocu:~# vi /etc/sysconfig/nfs  <- 포트를 고정할 경우 아래항목 주석 해제

RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892


root@sysdocu:~# rpcinfo -p  <- 열려있는 포트 확인

※ iptables 에서 관련포트를 모두 open 시켜 줍니다. (udp, tcp 모두 등록)

    > 111, 875, 892, 2049, 32803, 32769

    > 해보니 그냥 tcp로 111, 875, 2049 만 오픈해주면 되었음 (좀더 체크 해볼것)




2. 클라이언트 서버에서..

필요한 패키지를 설치해줍니다.


root@sysdocu:~# yum install portmap


root@sysdocu:~# service portmap start

root@sysdocu:~# mkdir /home/data_link (마운트하기전 디렉토리를 생성해줍니다.)

root@sysdocu:~# mount -t nfs -o nolock 192.168.0.99:/nfsdata /home/data_link

부팅시에도 자동 마운트 되게 하고 싶을 경우, fstab 에 아래 항목을 등록해줍니다.

root@sysdocu:~# vi /etc/fstab

ns:/nfsdata        /data_link    nfs    rw    0 0

또는 /etc/rc.d/rc.local 에 mount 명령을 써넣어줘도 됩니다.


[참고]

/var/log/messages 에 아래와 같은 메세지가 반복 된다면..

Oct 27 21:38:50 localhost kernel: statd: server localhost not responding, timed out
Oct 27 21:38:50 localhost kernel: lockd: cannot monitor 192.168.0.100
Oct 27 21:38:50 localhost kernel: lockd: failed to monitor 192.168.0.100

 

mount 시 -o nolock옵션을 추가하여 실행하면 됩니다.

root@sysdocu:~# mount -t nfs -o nolock 192.168.0.99:/nfsdata /home/data_link

  

반응형

댓글()