CentOS 환경에서 Server와 Client 간 ftp 통신을 통해 파일을 전송할 수 있도록 설정하는 방법을 설명드리겠습니다.

FTP 통신 간 Server와 Client 부에 따른 설치 방법입니다.

 

■ FTP Server 부
- Client에서 Server로 ftp 연결을 하기 위해서는 Server에 ftp server가 필요합니다. Server 쪽에 ftp server를 설치해줍시다.

ftp server는 대표적으로 vsftpd와 proftpd가 있는데, 보안성 부분에서 vsftpd가 더욱 뛰어나다고 합니다.

# yum -y install vsftpd

 

- 설치가 완료되었으면 ftp server를 실행하고, 시스템 부팅 시 ftp server가 자동으로 구동될 수 있도록 systemctl enable 명령어을 이용하여 설정합니다.

# systemctl start vsftpd

# systemctl enable vsftpd

 

- ftp server에서는 Client에서 접속하는 ftp 사용자에 대한 권한이나 다양한 자료 등을 관리할 수 있습니다.

Server쪽의 /etc/vsftpd/vsftpd.conf 파일에서 설정이 가능합니다. 3가지의 예를 기재하겠습니다.

# vi /etc/vsftpd/vsftpd.conf

•anonymous_enable=NO → 익명 사용자의 접속을 거부한다.
•chroot_local_user=YES → 홈폴더를 벗어날 수 있다. (단, 보안상 취약할 수 있음)
•xferlog_file=/var/log/xferlog → 파일전송 기록을 해당 파일에 남긴다.

 

- 설정 변경 후 vsftpd를 restart 시키고 active 상태가 되었는지 확인합니다.

# systemctl restart vsftpd

# systemctl status vsftpd

 

- Client에서 ftp 접속을 할 경우 기본적으로 root의 Name으로 접속하는 것은 제한되어 있습니다.

/etc/vsftpd/ftpusers 파일의 내용을 들여다보면 접속이 제한되어있는 목록이 나오는데, 해당하는 User Name을 주석처리하면 접속이 가능합니다. 예를 들어 /etc/vsftpd/ftpusers 파일에서 root를 주석 처리하면 root의 Name으로 접속할 수 있습니다.

 

- 또한, SELINUX는 보안 설정으로 인해 Server쪽 디렉토리에 Client 사용자의 Write를 막으므르 Disable 시키도록 합니다.

# vi /etc/sysconfig/selinux에서 SELINUX=enforcing를 SELINUX=disabled로 변경하여 selinux를 끕니다.

 

- Client에서 ftp 접속 시 Error 발생한다면 방화벽 설정을 확인한다.
"ftp: connect: 호스트로 갈 루트가 없음" Error가 발생하면 다음의 명령어로 방화벽이 활성화되어 있는지 확인합니다.

# systemctl status firewalld

 

- 만일 활성화 되어 있다면 재부팅 후에도 방화벽이 활성화 되지 않도록 명령어를 실행합니다.

# systemctl stop firewalld

# systemctl mask firewalld

 

■ FTP Client 부
- ftp server에 접속을 하기 위해 ftp 관련 패키지들을 설치합니다.

# yum -y install ftp*

 

- ftp 패키지 설치가 완료되면 ftp로 접속 할 ip주소 입력 후 Name과 Password를 입력하여 접속합니다.

# ftp 192.168.x.xx

Name: root
Password: root

 

- ftp 사용 시 다양한 명령어가 있지만, 간단한 Server, Client 디렉토리 변경 및 파일을 전송하는 명령어만 예시로 올리겠습니다.

# ftp> lcd /home/client -> Client 쪽 디렉토리 변경

# ftp> cd /home/server -> Server 쪽 디렉토리 변경

# ftp> get /home/server/testfile /home/client/testfile -> Server에서 Client로 testfile 가져오기

# ftp> put /home/client/testfile /home/server/testfile -> Client의 파일을 Server로 옮기기

 

'Communication' 카테고리의 다른 글

GPIB 컨트롤러용 NI-488.2 드라이버 설치 및 통신  (0) 2020.02.29
포트와 소켓  (0) 2020.02.28
CentOS 환경 NFS 설정하기  (0) 2020.02.14
Ethernet / Serial / GPIB 비교  (0) 2020.02.14
시리얼 통신의 종류  (0) 2020.01.23