241201

김소희·2024년 12월 7일

리눅스

목록 보기
10/10

pure-ftpd 삭제

sudo dnf remove pure-ftpd -y
sudo rm -rf /etc/pure-ftpd

pure-ftpd 설치 및 기본세팅

sudo dnf install pure-ftpd -y

위 설치 명령어 안될때

  • sudo dnf install epel-release -y
  • sudo dnf update -y

sudo vim /etc/pure-ftpd/pure-ftpd.conf

MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf로 수정

주석 해지하고 수정하기!

esc =>
/MySQLConfigFile
=> 엔터
=> n 통해서 찾기
=> 찾았다면 앞에 주석제거 후 뒤에 나와있는 내용 @sysconfigdir@/pureftpd-mysql.conf 부분을 /etc/pure-ftpd/pureftpd-mysql.conf로 수정


sudo vim /etc/pure-ftpd/pureftpd-mysql.conf 명령어 입력 후

MYSQLSocket /var/lib/mysql/mysql.sock 으로 변경


mysql 소켓 파일 확인은 mysql이 돌아가고 있는 상태에서 sudo updatedb 명령 후 sudo locate mysql | fgrep sock 로 경로를 찾을 수 있다.

  • MYSQLUser pureftpd # pure-ftpd 에서 mysql 에 접속할 때 사용할 ID
  • MYSQLPassword korea1231 # pure-ftpd 에서 mysql 에 접속할 때 사용할 PW
  • MYSQLDatabase pureftpd # ftp 사용자 정보 DB
  • MYSQLCrypt cleartext # 비번은 평문으로 저장 하겠다.

데이터베이스 생성

CREATE DATABASE pureftpd;


MariaDB에 pureftpd 계정 생성

mysql -u root -p

  • 아래의 권한부여 SQL은 mysql root 계정으로 실행(mysql -u root -p)
    • 기존의 koreast 계정과 다르게 이번에 추가되는 pureftpd 계정은 pureftpd DB에 대한 권한만 가진다.
    • 이렇게 pureftpd 계정을 꼭 추가해야하는 건 아니지만, 추가하면 보안이 강화된다.
- GRANT ALL PRIVILEGES ON pureftpd.* TO pureftpd@`localhost` IDENTIFIED BY 'korea1231';

- FLUSH PRIVILEGES;


MariaDB에 pureftpd가 사용할 장부와 장부 데이터 생성

SQLYog에서 아래 쿼리문 실행
전체선택(Ctrl + A) 후 F9
실행

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 보면 옆에 나옴 그거와 동일하게 맞춰줘야된다.

마리아db에서 빠져나온 후


pureftpd 활성화 및 실행

sudo systemctl enable pure-ftpd
sudo systemctl restart pure-ftpd

로컬 ftp 설치 및 접속테스트

sudo dnf install ftp

  • ftp 127.0.0.1
    계정1 : site1 / korea1231
    계정2 : site2 / korea1231
    계정3 : site3 / korea1231
    접속이 안된다면 잘 못 한것

외부에서 접속하기

  • 포트포워딩 : FTP / 0.0.0.0 / 21 / 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 대신 이걸 사용해야 한다.
      포트는 기본 21 이기 때문에 따로 적지 않아도 된다.
  • 전송설정
    • 능동형 선택
  • 전송설정 후 연결

0개의 댓글