linux FTP PART 1

반응형

FTP

(File Transfer Protocol)

- 파일을 전송하기 위한 목적으로 만들어진 표준 프로토콜

ex) 웹하드, 파일서버, ...


FTP를 사용하면 서로 파일을 주고 받을 수 있습니다. 리눅스는 물론 파일질라라는 프로램을 사용하면 윈도우즈에서도 주고 받을 수 있는 서비스라 정말 많이 사용하는 서비스 중 하나입니다.


FTP를 사용하려면 여느 서비스와 같이 서버와 클라이언트 설정이 필요하겠습니다.



FTP SERVER


 모든 방화벽 끄기

- iptabls

(iptabls -X, iptabls -F)

- firewall

(systemctl stop firewalld)

-selinux

(/etc/sysconfig/selinux)


② 사용자 계정 생성

useradd <user_name>

passwd <user_name>

* FTP의 사용자 계정과 리눅스의 사용자 계정은 동일합니다.


 FTP Server 프로그램(패키지) 설치

- vsftpd (Very Secure FTP Daemon) (클라이언트용)

- ftp (서버용)

* daemon : 리눅스에서 (네트워크)서비스 관련 프로그램


④ FTP 프로그램 실행

systemctl start vsftpd

ps -ef | grep vsftpd (실행확인)

ss -ant (포트 목록 확인)

* ftp의 포트번호는 21



FTP CLIENT


① ftp 접속

ftp <server ip>

ex) ftp 192.168.*.**

ftp 계정 id (아까 만들었던)

passwd 입력

* anonymous(익명) 사용자로 접속하면 패스워드 입력 안하고 연결



<FTP 명령어 모음>


ascii : 전송모드를 ASCII모드로 설정한다.(ascii또는 as)

binary : 전송모드를 BINARY모드로 설정한다.( binary또는 bi)

bell : 명령어 완료시에 벨소리를 나게한다.(bell)

bye : ftp접속을 종료하고 빠져나간다.(bye)

cd : remote시스템의 디렉토리를 변경한다.(cd 디렉토리명)

cdup : remote시스템에서 한단계 상위디렉토리로 이동한다.(cdup)

chmod : remote시스템의 파일퍼미션을 변경한다.(chmod 755 index.html)

close : ftp접속을 종료한다. (close)

delete : remote시스템의 파일을 삭제한다.(delete index.old)

dir : remote시스템의 디렉토리 내용을 디스플레이한다.(dir)

disconnect : ftp접속을 종료한다.(disconnect)

exit : ftp접속을 종료하고 빠져나간다.(exit)

get : 지정된 파일하나를 가져온다.(get index.html)

hash : 파일전송 도중에 "#"표시를 하여 전송중임을 나타낸다.(hash)

help : ftp명령어 도움말을 볼 수 있다.(help또는 help 명령어)

lcd : local시스템의 디렉토리를 변경한다.(lcd 디렉토리명)

ls : remote시스템의 디렉토리 내용을 디스플레이한다. (ls 또는 ls -l)

mdelete : 여러개의 파일을 한꺼번에 지울 때 사용한다.( mdelete *.old)

mget : 여러개의 파일을 한꺼번에 가져오려할 때 사용한다. ( mget *.gz)

mput : 한꺼번에 여러개의 파일을 remote시스템에 올린다.(mput *.html)

open : ftp접속을 시도한다.(open 168.126.72.51또는 open ftp.kornet.net)

prompt : 파일전송시에 확인과정을 거친다. on/off 토글 (prompt)

put : 하나의 파일을 remote시스템에 올린다.(put index.html)

pwd : remote시스템의 현재 작업디렉토리를 표시한다.(pwd)

quit : ftp접속을 종료하고 빠져나간다.(quit)

rstatus : remote시스템의 상황(version, 어디서, 접속ID등)을 표시한다.(rstatus)

rename : remote시스템의 파일명을 바꾼다.(remote 현재파일명 바꿀파일명)

rmdir : remote시스템의 디렉토리을 삭제한다.(rmdir 디렉토리명)

size :remote시스템에있는 파일의 크기를 byte단위로 표시한다.(size index.html)

status : 현재 연결된 ftp세션가지 모드에 대한 설정을 보여준다.(status)

type : 전송모드를 설정한다.(type 또는 type ascii 또는 type binary) 



② FTP 종료

quit 입력


② 윈도우즈 접속

FileZilla (윈도우즈용 FTP 클라이언트) 프로그램 설치

- 호스트(ip),사용자명(id),패스워드,포트번호(21) 입력후 연결

- anonymous 사용자로 접속하면 패스워드,포트번호 입력 안하고 연결



FTP의 동작 과정(데이터의 전달 방식)

ex) 파일 업로드, 디렉터리 조회, ...


(1). Active mode (능동 모드)

ex) ftp -A 192.168.*.**

- 클라이언트가 명령


(2). Passive mode (수동 모드)

ftp -p (옵션 없으면 자동으로 수동모드) 192.168.*.**

- 서버가 명령

호스트(ip),사용자명(id),비밀번호(pw),포트번호(21) 입력후 연결

- anonymous (익명)사용자로 접속하면 패스워드, 포트번호 입력안하고 연결



inetd mode로 FTP 실행


기존의 vsftpd로 실행하면 독립모드로 서비스가 실행이 됩니다. 독립모드는 서비스 자체적으로 실행하기 때문에 속도는 빠르지만 자원낭비가 많습니다. 하지만 inetd mode로 서비스를 실행하면 xinetd에 의해 실행이 제어가 되기 때문에 자원절약이 됩니다!


indet mode(xinetd)

- 서비스가 단독으로 실행되지 않음

- xinetd에 의해서 실행이 제어

- inetd(internet super daemon)

- 서비스를 관리하는 서비스

- 자원절약


inetd mode로 실행하는 방법


① 실행하고 있는 ftp 종료

systemctl stop vsftpd


② 프로그램 설치

xinetd.x86_64


③ xinetd 설정

3-1) vi /etc/vsftpd/vsftpd.conf

listen_ipv6=YES -> NO




3-2) /etc/xinetd.d/vsftpd

cd /etc/xinet.d

touch vsftpd

vi vsftpd

- 새로 만든 vsftpd 파일에 다음 내용을 추가


service ftp{

# 서비스 활성화 or 비활성화

disable = no

# 통신 방식(tcp, udp, other, ...)

socket_type = stream


# 멀티 스레드

wait = no


# 프로세스의 실행 권한

user = root


# 실행 프로그램의 경로

server = /usr/sbin/vsftpd


# 실행 인자

server_args = /etc/vsftpd/vsftpd.conf }



④ xinetd 실행

systemctl start xinetd


다시 독립모드로 실행하는 방법


① vi /etc/vsftpd/vsftpd.conf

- listen_ipv6=NO -> YES


② vi /etc/xinetd.d/vsftpd

- disable = yes


이것으로 ftp 실행방법과 동작과정, 실행모드에 대해서 포스트를 마치겠습니다.

다음 포스트에서는 ftp 접근제어 포스트로 찾아오겠습니다.

반응형

'OS > linux' 카테고리의 다른 글

linux DNS  (0) 2016.10.17
linux FTP PART 2  (0) 2016.10.14
linux SAMBA  (0) 2016.10.11
linux NFS  (0) 2016.10.10
linux ACL  (0) 2016.10.10
TAGS.

Comments