<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>vsftpd Archives - JIN&#039;s BOT</title>
	<atom:link href="https://jinsbot.com/tag/vsftpd/feed/" rel="self" type="application/rss+xml" />
	<link>https://jinsbot.com/tag/vsftpd/</link>
	<description>Coding + Engineering</description>
	<lastBuildDate>Sun, 22 Sep 2024 11:19:39 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>
<site xmlns="com-wordpress:feed-additions:1">158124120</site>	<item>
		<title>FTP 서버 만들기 for NAS</title>
		<link>https://jinsbot.com/ftp-%ec%84%9c%eb%b2%84-%eb%a7%8c%eb%93%a4%ea%b8%b0-for-nas/</link>
					<comments>https://jinsbot.com/ftp-%ec%84%9c%eb%b2%84-%eb%a7%8c%eb%93%a4%ea%b8%b0-for-nas/#respond</comments>
		
		<dc:creator><![CDATA[geniuskpj]]></dc:creator>
		<pubDate>Fri, 23 Dec 2022 08:08:21 +0000</pubDate>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[NAS]]></category>
		<category><![CDATA[vsftp]]></category>
		<category><![CDATA[vsftpd]]></category>
		<category><![CDATA[공유]]></category>
		<guid isPermaLink="false">https://jinsbot.com/?p=836</guid>

					<description><![CDATA[<p>FTP 는 파일공유를 위한 가장 기본적인 프로토콜 중 하나이다. 윈도우 든 리눅스 든 기본적으로 제공하기때문에 쉽게 사용할 수 있다. 기본으로 제공되는 FTP 서비스 외에도 파일질라, vsftp 등 은 더 다양한 기능을 제공한다. 다만 생각보다 환경 구축 과정이 초보에게는 어렵거나 귀찮을 수 있다. 그런 사람들을 위해 docker로 FTP 서버 만드는 방법을 소개하겠다. 우선 사용할 이미지를 골라야한다. [&#8230;]</p>
<p>The post <a href="https://jinsbot.com/ftp-%ec%84%9c%eb%b2%84-%eb%a7%8c%eb%93%a4%ea%b8%b0-for-nas/">FTP 서버 만들기 for NAS</a> appeared first on <a href="https://jinsbot.com">JIN&#039;s BOT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>FTP 는 파일공유를 위한 가장 기본적인</p>
<p>프로토콜 중 하나이다.</p>
<p>윈도우 든 리눅스 든 기본적으로 제공하기때문에</p>
<p>쉽게 사용할 수 있다.</p>
<p>기본으로 제공되는 FTP 서비스 외에도</p>
<p>파일질라, vsftp 등 은 더 다양한 기능을 제공한다.</p>
<p>다만 생각보다 환경 구축 과정이 초보에게는</p>
<p>어렵거나 귀찮을 수 있다.</p>
<p>그런 사람들을 위해 docker로 FTP 서버</p>
<p>만드는 방법을 소개하겠다.</p>
<p>우선 사용할 이미지를 골라야한다.</p>
<p><a href="https://hub.docker.com/r/fauria/vsftpd" target="_blank" rel="noreferrer noopener">fauria/vsftpd</a>라는 이미지를</p>
<p>많은 사람들이 사용하고 있다.</p>
<p>vsftpd는 Very Secure FTP Daemon의</p>
<p>약자에 나와있듯이 보안이 강화되었다.</p>
<p><a href="https://hub.docker.com/r/stilliard/pure-ftpd" target="_blank" rel="noreferrer noopener">pure-ftpd</a>도 많은 유저들이 사용중이니</p>
<p>살펴보고 골라서 사용하면 된다.</p>
<p>사실 둘다 워낙 유명한 데몬이다보니</p>
<p>어떤 이미지를 골라도 크게 차이 나지 않는다.</p>
<p>이를 기반으로 docker-compose.yml을</p>
<p>작성해보면 다음과 같다.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="dracula" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">version: '3'
services:
    vsftpd:
        image: fauria/vsftpd
        container_name: vsftpd
        environment:
            - FTP_USER=아이디
            - FTP_PASS=비밀번호
            - PASV_MIN_PORT=21100
            - PASV_MAX_PORT=21110
            - PASV_ADDRESS=접속주소
            - PASV_ADDR_RESOLVE=YES
        ports:
            - 0.0.0.0:ftp포트:20
            - 0.0.0.0:ftp포트2:21
            - 0.0.0.0:21100-21110:21100-21110
        volumes:
            - 공유경로:/home/vsftpd/아이디:rw
            - ./log/vsftpd:/var/log/vsftpd</pre>
<p>한글로 적은 것은 직접 입력해야한다.</p>
<p>Active모드에서 21포트로 연결되면 서버측에서</p>
<p>클라이언트로 20포트로 데이터를 전송한다.</p>
<p>보안측면에서는 더 안전할 수 있지만</p>
<p>클라이언트 방화벽에 의해 차단될 가능성이 있다.</p>
<p>Passive모드에서는 데이터를 받을 때도</p>
<p>클라이언트가 서버에 접속하기때문에</p>
<p>방화벽 문제가 생기지 않는다.</p>
<p>PASV_ADDRESS는 서버의 IP를 적어도 되고</p>
<p>본인이 사용중인 도메인을 적어도 된다.</p>
<p>ftp포트는 많은 해커들이 노리고 있기때문에</p>
<p>꼭 20,21 이외의 포트번호를 지정하길 바란다.</p>
<p>내부 20포트에 해당하는 포트는 서버에서 클라이언트로</p>
<p>접속하는 것이기때문에 포트포워딩 하지 않아도 된다.</p>
<p>volume에 절대경로를 사용해도 되고</p>
<p>상대경로를 사용해도 상관없다.</p>
<p>예를들어 외장하드에 Transmission으로 받은 파일을</p>
<p>공유하기 위해 /mnt/xxx 로 지정했다.</p>
<h2>FTP 주의사항</h2>
<p>이전글에도 적었듯이 Transmission Docker와</p>
<p>FTP docker는 동시에 사용할 수 없다.</p>
<p>오늘 소개한 이미지의 단점은</p>
<p><strong>멀티유저</strong>사용이 까다롭다.</p>
<p>다음과 같은 방법으로 멀티유저 사용이 가능하다.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="dracula" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">docker exec -i -t vsftpd bash
mkdir /home/vsftpd/아이디
echo -e "아이디\n비밀번호" &gt;&gt;/etc/vsftpd/virtual_users.txt
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
exit
docker restart vsftpd</pre>
<p>vsftpd의 bash에 들어가서 수동으로 virtual user를</p>
<p>추가하는 방법이다.</p>
<p>다만 위의코드대로 수행하면 원본 아이디와</p>
<p>별도의 폴더를 공유하게 된다.</p>
<p>같은 폴더를 공유하게 하려면 다음과 같은 경로를</p>
<p>docker-compose.yml의 volume에 추가하면 된다.</p>
<p>공유경로:/home/vsftpd/추가아이디:rw</p>
<p>잘 추가되었는지 보려면 다시 bash에 들어가</p>
<p>db_dump -d a /etc/vsftpd/virtual_users.db | grep len</p>
<p>라는 명령어를 쳐보면 된다.</p>
<p>추가한 사용자를 삭제하기 위해서는 virtual_users.txt에서</p>
<p>추가아이디와 비밀번호를 삭제한후 db_load 해주면 된다.</p>
<p>이해가 잘 안간다면 멀티유저를 지원하는</p>
<p>다른 이미지를 사용하길 바란다.</p>
<p>이런 종류의 방범은 db가 볼륨에 저장되지 않기때문에</p>
<p>docker-compose.yml을 이용해 다시 켤 경우</p>
<p>virtual_users.db가 원복된다는 점이 문제다.</p>
<p>이런 경우 유저를 추가하기보단 yml 파일에서</p>
<p>아이디와 비번을 공용으로 바꾸는것이 더 간편하다.</p>
<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" />
<p>관련글</p>
<ul id="block-fce4c033-25d6-4b80-8610-b0b5f27b1836">
<li><a href="https://jinsbot.com/nas-setup-comparison/">NAS 구축 관련 자료 정리</a></li>
<li><a href="https://jinsbot.com/nas-%ec%84%9c%eb%b2%84-os-comparison/">NAS 서버 OS별 장단점</a></li>
<li><a href="https://jinsbot.com/nas-%ea%b5%ac%ec%b6%95-architecture/">NAS 구축 : 아키텍쳐 선택</a></li>
<li><a href="https://jinsbot.com/freenas-review/">FreeNAS 사용후기</a></li>
<li><a href="https://jinsbot.com/pi-docker-wordpress/">wordpress , PI 를 위한 Docker 환경 구축</a></li>
<li><a href="https://jinsbot.com/%ed%86%a0%eb%a0%8c%ed%8a%b8-%eb%a8%b8%ec%8b%a0-%eb%a7%8c%eb%93%a4%ea%b8%b0-for-nas/">토렌트 머신 만들기 for NAS</a></li>
<li><a href="https://jinsbot.com/jellyfin-for-nas/" target="_blank" rel="noreferrer noopener">Jellyfin for NAS</a></li>
</ul>
<p>The post <a href="https://jinsbot.com/ftp-%ec%84%9c%eb%b2%84-%eb%a7%8c%eb%93%a4%ea%b8%b0-for-nas/">FTP 서버 만들기 for NAS</a> appeared first on <a href="https://jinsbot.com">JIN&#039;s BOT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jinsbot.com/ftp-%ec%84%9c%eb%b2%84-%eb%a7%8c%eb%93%a4%ea%b8%b0-for-nas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">836</post-id>	</item>
	</channel>
</rss>
