[LINUX] pure-ftpd

장성욱·2025년 7월 22일

LINUX

목록 보기
8/10

FTP

FTP서버프로그램: 컴퓨터를 파일 전송용 서버로 만들어주는 프로그램
FTP: 컴퓨터 간 파일을 전송할 때 사용하는 프로토콜(규칙)

ex) 서버에 웹페이지 파일을 올릴 때, 파일질라같은 프로그램으로 서버에
접속해 파일을 올리거나 받을 때 사용하는게 FTP

pure-ftpd 설치 및 세팅

- sudo dnf install pure-ftpd -y

- sudo dnf vim /etc/pure-ftpd/pure-ftpd.conf
MySQLConfigFile 앞에 주석 제거 후
/etc/pure-ftpd/pureftpd-mysql.conf로 수정

- sudo vim /etc/pure-ftpd/pureftpd-mysql.conf
MYSQLSocket /var/lib/mysql/mysql.sock
MYSQLUser pureftpd	//사용할 ID
MYSQLPassword korea1231 	//비밀번호
MYSQLDatabase pureftpd 	// 사용자 DB정보
MYSQLCrypt cleartext	// 비번을 평문으로 저장

저장 후 나와서  pure-ftpd 활성화 & 실행


MariaDB에 pureftpd 계정 생성
- mysql root 계정으로 실행(mysql -u root -p)
ㄴ기존 koreast계정과 달리 pureftpd는 pureftpd DB에 대한 
권한만 가짐

- GRANT ALL PRIVILEGES ON pureftpd.* TO pureftpd@`localhost` IDENTIFIED BY 'korea1231';
- FLUSH PRIVILEGES;

SQLyog 세팅

- CREATE DATABASE pureftpd;


DROP DATABASE IF EXISTS pureftpd;

CREATE DATABASE pureftpd;

USE pureftpd;

CREATE TABLE users (
  uidx int(10) unsigned NOT NULL AUTO_INCREMENT,
  `user` varchar(100) NOT NULL,
  `password` varchar(100) NOT NULL,
  `gid` int(10) unsigned NOT NULL,
  `uid` int(10) unsigned NOT NULL,
  `occurDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `status` tinyint(1) unsigned NOT NULL DEFAULT '1',
  `ipaccess` varchar(15) NOT NULL,
  `comment` varchar(100) NOT NULL,
  `ulBandWidth` smallint(5) unsigned NOT NULL,
  `dlBandWidth` smallint(5) unsigned NOT NULL,
  `quotaSize` smallint(5) unsigned NOT NULL,
  `quotaFiles` int(10) unsigned NOT NULL,
  `dir` varchar(100) NOT NULL,
  PRIMARY KEY (`uidx`)
);

insert  into `users`(`uidx`,`user`,`password`,`gid`,`uid`,`occurDate`,`status`,`ipaccess`,`comment`,`ulBandWidth`,`dlBandWidth`,`quotaSize`,`quotaFiles`,`dir`) values 
(1,'site1','korea1231',1001,1001,NOW(),1,'*','',0,0,0,0,'/web/site1'),
(2,'site2','korea1231',1001,1001,NOW(),1,'*','',0,0,0,0,'/web/site2'),
(3,'site3','korea1231',1001,1001,NOW(),1,'*','',0,0,0,0,'/web/site3');



SELECT * FROM users;	// 확인
위에 1000,1000 확인하려면
vim /etc/passwd 하면 koreast 보면 옆에 나옴 그거와 동일하게 맞춰줘야된다.



접속테스트

cd / => 루트디렉토리이동
cd web
cp -r site0 site3
sudo dnf install ftp
ftp 127.0.0.1
계정1 : site1 / korea1231
계정2 : site2 / korea1231
계정3 : site3 / korea1231
접속이 안된다면 잘 못 한것 => 전 과정 다시 해보기

외부에서 접속

포트포워딩 : FTP / 0.0.0.0 / 2121 / 10.0.2.16 / 21
확인 2번
파일질라 열기
좌측상단 파일 => 사이트관리자
새사이트 : site1@127.0.0.1
프로토콜 : FTP
HOST : 192.168.56.1
ㄴvirtual box 환경에서는 127.0.0.1과 같은 의미
pureftpd의 버그로 인해 FTP 접속시에는 127.0.0.1 대신 이걸 사용해야 함
포트 : 2121
사용자 : site1
전송설정 : 능동형 선택
전송설정 후 연결
profile
https://frost-puck-b0f.notion.site/B-2610fdaef71d80c49d1bccdcb575dcb5

0개의 댓글