가상 호스팅 · 2 min read · Dec 14, 2025
Debian Etch에서 vsftpd 및 MySQL을 이용한 가상 호스팅
Debian Etch에서 vsftpd 및 MySQL을 이용한 가상 호스팅
버전 1.0
저자: Falko Timme
Vsftpd는 리눅스를 위한 가장 안전하고 빠른 FTP 서버 중 하나입니다. 일반적으로 vsftpd는 시스템 사용자와 함께 작동하도록 구성됩니다. 이 문서에서는 실제 시스템 사용자 대신 MySQL 데이터베이스의 가상 사용자를 사용하는 vsftpd 서버를 설치하는 방법을 설명합니다. 이는 훨씬 더 성능이 뛰어나며 단일 머신에서 수천 개의 FTP 사용자를 가질 수 있게 해줍니다.
MySQL 데이터베이스 관리를 위해 phpMyAdmin과 같은 웹 기반 도구를 사용할 수 있으며, 이 문서에서도 설치됩니다. phpMyAdmin은 명령줄을 다루지 않아도 되는 편리한 그래픽 인터페이스입니다.
이 튜토리얼은 Debian Etch(Debian 4.0)를 기반으로 합니다. 이 튜토리얼의 처음 6개 장에서 설명한 대로 기본 Debian Etch 시스템을 이미 설정했어야 합니다: https://www.howtoforge.com/perfect_setup_debian_etch
이 문서는 실용적인 가이드를 목적으로 하며 이론적 배경은 다루지 않습니다. 이론적 배경은 웹의 다른 많은 문서에서 다루어집니다.
이 문서는 어떤 종류의 보증 없이 제공됩니다! 이는 이러한 시스템을 설정하는 유일한 방법이 아님을 말씀드리고 싶습니다. 이 목표를 달성하는 방법은 여러 가지가 있지만, 이것이 제가 선택한 방법입니다. 이것이 여러분에게 작동할 것이라는 보증을 제공하지 않습니다!
1 사전 참고
이 튜토리얼에서는 호스트 이름 server1.example.com과 IP 주소 192.168.0.100을 사용합니다. 이러한 설정은 여러분의 환경에 따라 다를 수 있으므로 적절한 곳에서 교체해야 합니다.
2 vsftpd, MySQL 및 phpMyAdmin 설치
Vsftpd는 내장된 MySQL 지원이 없으므로 PAM을 사용하여 MySQL 데이터베이스에 대한 인증을 수행해야 합니다. 따라서 vsftpd, MySQL 및 phpMyAdmin 외에도 libpam-mysql을 설치합니다:
apt-get install vsftpd libpam-mysql mysql-server mysql-client phpmyadminMySQL 사용자 root의 비밀번호를 생성합니다(여기서 yourrootsqlpassword를 사용하고자 하는 비밀번호로 교체):
mysqladmin -u root password yourrootsqlpassword그런 다음 다음 명령어로 확인합니다:
netstat -tap | grep mysqlMySQL이 어떤 주소에서 수신 대기하고 있는지 확인합니다. 출력이 다음과 같으면:
tcp 0 0 localhost.localdo:mysql *:* LISTEN 2713/mysqld이는 MySQL이 localhost.localdomain에서만 수신 대기하고 있음을 의미하므로, 이전에 설정한 비밀번호로 안전합니다. 그러나 출력이 다음과 같으면:
tcp 0 0 *:mysql *:* LISTEN 2713/mysqld호스트 이름에 대한 MySQL 비밀번호도 설정해야 합니다. 그렇지 않으면 누구나 데이터베이스에 접근하고 데이터를 수정할 수 있습니다:
mysqladmin -h server1.example.com -u root password yourrootsqlpassword3 vsftpd를 위한 MySQL 데이터베이스 생성
이제 vsftpd라는 데이터베이스와 vsftpd 데몬이 나중에 vsftpd 데이터베이스에 연결하는 데 사용할 MySQL 사용자 vsftpd를 생성합니다:
mysql -u root -pCREATE DATABASE vsftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;문자열 ftpdpass를 MySQL 사용자 vsftpd에 사용할 비밀번호로 교체합니다. 여전히 MySQL 셸에서 필요한 데이터베이스 테이블을 생성합니다(예, 테이블은 하나뿐입니다!):
USE vsftpd;CREATE TABLE `accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 30 ) NOT NULL ,
`pass` VARCHAR( 50 ) NOT NULL ,
UNIQUE (
`username`
)
) ENGINE = MYISAM ;quit;여러분이 알다시피, quit; 명령어로 MySQL 셸을 종료하고 리눅스 셸로 돌아왔습니다.
참고로, (여러분의 FTP 서버 시스템의 호스트 이름이 server1.example.com이라고 가정합니다) 브라우저에서 http://server1.example.com/phpmyadmin/에서 phpMyAdmin에 접근할 수 있으며(서버1.example.com 대신 IP 주소를 사용할 수도 있습니다) 사용자 vsftpd로 로그인할 수 있습니다. 그런 다음 데이터베이스를 살펴볼 수 있습니다. 나중에 phpMyAdmin을 사용하여 vsftpd 서버를 관리할 수 있습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.