코인데일리넷

가상화폐 / NFT / 경제

기타/1432

[DAY26] FTP서버 , NFX 서버 설치 및 운영

코인데일리넷 매니저 2021. 10. 29. 22:04

1.FTP 란 무엇인가?  

- File Transfer Protocol의 약자, 파일전송에 사용하는 서비스 

대표적으로 파일질라, 알드라이브 등이 있다 . 

 

[FTP 세팅방법]

[Server]
VSFTP

 

dnf -y install vsftpd
/var/ftp/pub     <- 기본 폴더

cd /var/ftp/pub
cp /boot/vmliuz-4*  file1         <- 샘플 파일 복사

systemctl restart vsftpd
systemctl status vsftpd
systemctl enable vsftpd

방화벽, 포트 추가
서비스 
ftp    런타임/영구적   추가
포트 
20/tcp
21/tcp

vsftp 설정 파일
/etc/vsftpd/vsftpd.conf
gedit /etc/vsftpd/vsftpd.conf
12줄
anonymous_enable=NO
anonymous_enable=YES     <- 변경
저장하고 나가기
systemctl restart vsftpd

[WinClient]
ftp 전용 클라이언트 프로그램 설치 연결
filezilla <- 프리웨어
https://filezilla-project.org
download
FileZilla Client   클릭 -> Windows(64bit x86)  다운로드 -> 설치
호스트에 192.168.111.100 입력하여 빠른 연결 클릭 

pub 폴더 안의 file1 다운로드

업로드 과정에서 
에러 550 Permission denied
퍼미션 777 : rwxrwxrwx
퍼미션 550 : r-xr-x---
w 쓰기 권한이 없어서 업로드 실패

[Server]
업로드 가능하게 설정
gedit /etc/vsftpd/vsftpd.conf
19행 write_enable=YES     <- YES로 설정되었는지 확인  : 쓰기 권한
29행 #anon_upload_enable=YES   <- 젤 앞에 # 주석 제거 : 익명 사용자의 업로드 권한
32행 #anon_mkdir_write_enable=YES  <- 젤 앞에 # 주석 제거 : 익명 사용자의 디렉토리 생성 권한
저장하고 나가기
------------------------------
vsftpd.conf 파일
- anonymous_enable : anonymous(익명) 사용자의 접속을 허가할지 설정
- local_enable : 로컬 사용자의 접속 허가 여부 설정
- write_enable : 로컬 사용자가 저장, 삭제, 디렉토리 생성 등의 명령을 실행하게 할것인지 설정(anonymous 사용자는 해당 없음)
- anon_upload_enable : anonymous 사용자의 파일 업로드 허가 여부 설정
- anon_mkdir_write_enable : anonymous 사용자의 디렉토리 생성 허가 여부 설정
- dirlist_enable : 접속한 디렉토리의 파일 리스트를 보여줄지 설정
- download_enable : 다운로드의 허가 여부 설정
- listen_port : FTP 서비스의 포트 번호 설정(기본 : 21번)
- deny_file : 업로드를 금지할 파일 지정 (ex: deny_file={*.mpg, *.mpeg, *.avi})
- hide_file : 보여주지 않을 파일 지정 (ex: hide_file={*.gif, *.jpg, *.png})
- max_clients : FTP 서버의 동시 최대 접속자 수 지정
- max_per_ip : PC 1개가 동시에 접속할 수 있는 접속자 수 지정

https://2factor.tistory.com/96        <- vsftpd.conf 설정 옵션 설명
-------------------------------

/var/ftp/pub <- 소유자 변경
chown ftp.ftp /var/ftp/pub

systemctl restart vsftpd

[WinClient]
ftp 재 접속
업로드 가능

[Client]
터미널로 FTP 접속 해서 다운로드 업로드
NCFTP 클라이언트 접속 프로그램 설치
wget http://download.hanbit.co.kr/centos/8/ncftp-3.2.5-17.fc30.x86_64.rpm
su -c 'dnf -y install ncftp*.rpm'

ncftp로 ftp 서버 접속
# ncftp 192.168.111.100
ncftp /> ls
ncftp /> cd pub
ncftp /pub > ls -l
ncftp /pub > get file1     <- get 다운로드
ncftp /pub > put ncftp*    <- put 업로드
ncftp /pub > bye

-----------------------------------------------------------------------------------
Pure-FTPd(  소프트웨어 보안에 중점을 둔 무료 FTP 서버  )의 설치와 운영
[Server]
cd ~

기존 vsftpd 삭제 
dnf -y remove vsftpd

pure-ftpd 다운 설치
wget http://download.hanbit.co.kr/centos/8/pure-ftpd-1.0.49-2.epel8.playground.x86_64.rpm
dnf -y install pure*.rpm

설정파일
/etc/pure-ftpd/pure-ftpd.conf
gedit /etc/pure-ftpd/pure-ftpd.conf
NoAnonymous no      <- 77줄  확인
AnonymousCantUpload yes -> no : 변경     <- 287
저장하고 나가기

systemctl restart pure-ftpd
systemctl enable pure-ftpd

디렉토리 권한 변경
cd /var/ftp
rm -rf *
mkdir upload download
chown ftp.ftp upload download
chmod 333 upload
chmod 666 upload
ls -l
cp /boot/vm* /var/ftp/download

[WinClient]
접속

---------------------------------------------------------------

2.NFS 란 무엇인가?  

-Network File System의 약자, 리눅스 컴퓨터끼리 저장공간을 서로 공유할 수 있도록 해주는 시스템.

[NFS 세팅방법]

[Server]
터미널
rpm -qa nfs-utils

yum -y install nfs-utils         <- centos 8 버전 이전
dnf -y install nfs-utils          <- centos 8 버전 이후

 

공유 폴더 생성
mkdir /share
chmod 707 /share
cp /boot/vm* /share
ls -l /share

NFS 환경 설정
gedit /etc/exports
/share  192.168.111.*(rw,sync)        <- 공유 폴더는 /share   접근 ip 192.168.111.0 네트워크 대역 rw 읽기, 쓰기 권한 sync 동기화
추가 저장후 나가기

ex)
/share 192.168.111.128(ro)        <- 192.168.111.128 만 읽기 권한으로 공유
/share *.this.com(rw)                <- this.com 도메인만 /share 폴더 읽기 쓰기 
man exports

NFS 서비스 시작
systemctl restart nfs-server
systemctl enable nfs-server
systemctl status nfs-server

서비스 확인
exportfs -v

방화벽 끄기
systemctl stop firewalld
systemctl disable firewalld


[Client]
nfs 서버 공유
rpm -qa nfs-utils

공유 폴더 확인
showmount -e 192.168.111.100

centos 계정 홈디렉토리에 공유받을 폴더 생성
pwd
/home/centos
mkdir myshare              <- 공유받을 폴더 생성

마운트 시키기
su -c 'mount -t nfs 192.168.111.100:/share  /home/centos/myshare'
-t nfs : 파일 시스템 타입  NFS 
192.168.111.100:/share    : 장치파일
/home/centos/myshare   : 마운트 포인트

마운트 확인
mount
cd /home/centos/myshare
ls -l
touch aaa.txt

[Server]
ls -l /share     <- aaa.txt 파일 확인

[Client]
항상 마운트 되게 설정   <- 설정 파일 : /etc/fstab
su -           <- root 계정 변경
gedit /etc/fstab
exit

su -c 'gedit /etc/fstab'
젤아래에 추가
192.168.111.100:/share     /home/centos/myshare  nfs  defaults 0 0
저장 후 나가기

NFS 서버는 Windows 에서 공유가 가능
[WinClient]
NFS 서버 공유에 접근
windows 기능 추가/삭제
제어판 -> 보기기준: 큰아이콘 -> 프로그램 및 기능 -> 
왼쪽 : Windows 기능 켜기/끄기 -> 
NFS용 서비스 클릭 : NFS용 클라이언트 클릭  -> 확인 -> 닫기 

CMD (명령 프롬프트) 실행 
검색 -> CMD 입력 -> 위에 CMD 앱에 마우스 오른쪽 : 관리자 권한으로 실행 -> 
mount 192.168.111.100:/share *
z: 드라이브 생성
z:
z:\> dir

윈도우 탐색기
내 PC -> 마우스 오른쪽 -> 네트워크 드라이브 연결 ->
드라이브 : Z:
폴더 : 192.168.111.100:/share

 

참고 및 출처 : 위키트리, 이것이 리눅스다