SFTPGo 2.5.0 ์๋ฒ ๋ฆด๋ฆฌ์ค๊ฐ ๊ฒ์๋์ด SFTP, SCP/SSH, Rsync, HTTP ๋ฐ WebDav ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ํ์ผ์ ๋ํ ์๊ฒฉ ์ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๊ณ SSH ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ Git ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. . ๋ก์ปฌ ํ์ผ ์์คํ ๊ณผ Amazon S3, Google Cloud Storage ๋ฐ Azure Blob Storage์ ํธํ๋๋ ์ธ๋ถ ์คํ ๋ฆฌ์ง ๋ชจ๋์์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ํธํ๋ ํํ๋ก ์ ์ฅํ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด PostgreSQL, MySQL, SQLite, CockroachDB ๋๋ bbolt์ ๊ฐ์ SQL ๋๋ ํค/๊ฐ ํ์์ ์ง์ํ๋ DBMS๊ฐ ์ฌ์ฉ๋์ง๋ง RAM์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ฐ๋ฅ์ฑ๋ ์์ต๋๋ค. ์ธ๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ. ํ๋ก์ ํธ ์ฝ๋๋ Go๋ก ์์ฑ๋์์ผ๋ฉฐ GPLv3 ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
์ ๋ฒ์ ์์:
- ์น ์ธํฐํ์ด์ค๋ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ซ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๊ด๋ฆฌ์๋ฅผ ์ํ ์น ์ธํฐํ์ด์ค์์ ๊ฐ์ฌ ๋ก๊ทธ ๊ฒ์ ๋ฐ ๊ฐ์ฌ ๋ก๊ทธ์์ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์๊ณ IP ์ฃผ์ ๋ฐ ๋คํธ์ํฌ ๋ชฉ๋ก ๊ด๋ฆฌ๊ฐ ๊ตฌํ๋์์ผ๋ฉฐ SMTP ๋ฐ ์ผ๋ฐ์ ์ธ ACME ๋ฐ SFTP ๋งค๊ฐ๋ณ์๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ ๊ณต. ํด๋ผ์ด์ธํธ ์น ์ธํฐํ์ด์ค๋ ์์ฒด ๋ก๊ทธ์ธ ์์(๊ธฐ๋ณธ ์ธ์ฆ ๋์ )์ ๊ตฌํํ๊ณ ๋ณต์ฌ ์์
์ ์ถ๊ฐํ์ผ๋ฉฐ ๋ค์ด๋ก๋ ํฌ๊ธฐ ์ ํ์ ์ ๊ฑฐํ์ต๋๋ค.
- ์๋ฅผ ๋ค์ด ์ํธ ์ ์ฑ ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์ด ์ํธ ๊ฐ๋ ์๊ตฌ ์ฌํญ์ ์ ์ํ๊ณ ์ํธ ์๋ช ์ ์ค์ ํ ์ ์์ต๋๋ค.
- EventManager์์ ๋ง๋ฃ๋ ์ํธ์ ๋ํ ์๋ฆผ์ ํ์ํ๋ ๊ธฐ๋ฅ ์ถ๊ฐ, ๋ณต์ฌ ์์ ๊ตฌํ, ๋ฏธ๋ฆฌ ํธ์ถ๋ ์์ (pre-*) ๋ฐ ํน์ ์์ ์ ์ํด ํธ๋ฆฌ๊ฑฐ๋๋ ์ฒ๋ฆฌ๊ธฐ์ ๋ํ ์ง์ ์ถ๊ฐ(์: ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ ๋ ํธ์ถ๋๋ ์ฒ๋ฆฌ๊ธฐ ์ถ๊ฐ) ์์).
- ์ฌ์ฉ์์๊ฒ ๊ด๋ฆฌ์ ๊ถํ์ ๋ถ์ฌํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค.
- ๊ด๋ฆฌ์ ์ํธ๋ฅผ ์ฌ์ค์ ํ๊ณ ์๋น์ค ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํด ๋ช ๋ น์ค ์ธํฐํ์ด์ค์ ๋ช ๋ น์ ์ถ๊ฐํ์ต๋๋ค.
- ํด๋ผ์ฐ๋ ๊ณต๊ธ์ ์ธก์์ ํ์ผ์ ๋๋ ์ด๋ฆ ๋ณ๊ฒฝ์ ์ํํ ๋ ์กฐ๊ฑด๋ฌธ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- TLS ์ธ์ฆ์์ ์ถ์ ๋ฐ ์๋ ๋ค์ ๋ก๋์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- WebDAV์ ๋ํ ์ฌ์ฉ์ ์ ์ MIME ์ ํ์ ์ ์ํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- SSH๋ ๋ํ์ ํค๋ณด๋ ์ธ์ฆ์ ์ํด ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ต๋๋ค.
- ํด๋์ฉ ๋ชจ๋์์๋ ํ์ผ์์ ์ํธ๋ฅผ ๋ก๋ํ ์ ์๊ฒ ๋์์ต๋๋ค.
- Terraform ์๋น์ค์ ๋ํ ์คํ์ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
SFTPGo์ ์ฃผ์ ๊ธฐ๋ฅ:
- ๊ฐ ๊ณ์ ์ chroot๋์ด ์ฌ์ฉ์์ ํ ๋๋ ํ ๋ฆฌ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํฉ๋๋ค. ์ฌ์ฉ์์ ํ ๋๋ ํฐ๋ฆฌ ์ธ๋ถ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ๋ ๊ฐ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
- ๊ณ์ ์ ์์คํ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ต์ฐจํ์ง ์๋ ๊ฐ์ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ฉ๋๋ค. SQLite, MySQL, PostgreSQL, bbolt ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋ด ์ ์ฅ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ๊ฐ์ ๋ฐ ์์คํ ๊ณ์ ๋งคํ์ ์ํ ์๋จ์ด ์ ๊ณต๋ฉ๋๋ค. ์ง์ ๋๋ ์์ ๋งคํ์ด ๊ฐ๋ฅํฉ๋๋ค(ํ ์์คํ ์ฌ์ฉ์๋ฅผ ๋ค๋ฅธ ๊ฐ์ ์ฌ์ฉ์์ ๋งคํํ ์ ์์).
- ๊ณต๊ฐ ํค, SSH ํค ๋ฐ ์ํธ ์ธ์ฆ์ด ์ง์๋ฉ๋๋ค(ํค๋ณด๋ ์ํธ ์ ๋ ฅ์ ํตํ ๋ํํ ์ธ์ฆ ํฌํจ). ์ฌ์ฉ์๋ณ๋ก ์ฌ๋ฌ ๊ฐ์ ํค๋ฅผ ๋ฐ์ธ๋ฉํ ์ ์์ผ๋ฉฐ ๋ค๋จ๊ณ ๋ฐ ๋ค๋จ๊ณ ์ธ์ฆ(์: ํค ์ธ์ฆ์ ์ฑ๊ณตํ ๊ฒฝ์ฐ ๋น๋ฐ๋ฒํธ๋ฅผ ์ถ๊ฐ๋ก ์๊ตฌํ ์ ์์)์ ์ค์ ํ ์ ์์ต๋๋ค.
- ๊ฐ ์ฌ์ฉ์์ ๋ํด ์๋ก ๋ค๋ฅธ ์ธ์ฆ ๋ฐฉ๋ฒ์ ๊ตฌ์ฑํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ์ธ๋ถ ์ธ์ฆ์ ํ๋ก๊ทธ๋จ(์: LDAP์ ํตํ ์ธ์ฆ)์ ํธ์ถํ๊ฑฐ๋ HTTP API๋ฅผ ํตํด ์์ฒญ์ ์ ์กํ์ฌ ๊ตฌํ๋๋ ๊ณ ์ ํ ๋ฐฉ๋ฒ์ ์ ์ํ ์ ์์ต๋๋ค.
- ์ธ๋ถ ํธ๋ค๋ฌ ๋๋ HTTP API ํธ์ถ์ ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ๊ธฐ ์ ์ ํธ์ถ๋๋ ์ฌ์ฉ์ ์ค์ ์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์ฐ๊ฒฐ ์ ์ฌ์ฉ์์ ๋์ ์์ฑ์ด ์ง์๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ํฌ๊ธฐ ๋ฐ ํ์ผ ์์ ๋ํ ๊ฐ๋ณ ํ ๋น๋ ์ง์.
- ๋ค์ด์ค๊ณ ๋๊ฐ๋ ํธ๋ํฝ์ ๋ํ ์ ํ๊ณผ ๋์ ์ฐ๊ฒฐ ์์ ๋ํ ์ ํ์ ๋ํ ๋ณ๋์ ์ค์ ์ผ๋ก ๋์ญํญ ์ ํ์ ์ง์ํฉ๋๋ค.
- ์ฌ์ฉ์ ๋๋ ๋๋ ํฐ๋ฆฌ์ ๊ด๋ จํ์ฌ ์๋ํ๋ ์ก์ธ์ค ์ ์ด ๋๊ตฌ(ํ์ผ ๋ชฉ๋ก ๋ณด๊ธฐ ์ ํ, ์ ๋ก๋, ๋ค์ด๋ก๋, ๋ฎ์ด์ฐ๊ธฐ, ์ญ์ , ์ด๋ฆ ๋ณ๊ฒฝ ๋๋ ์ก์ธ์ค ๊ถํ ๋ณ๊ฒฝ ๊ธ์ง, ๋๋ ํฐ๋ฆฌ ๋๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ ์์ฑ ๊ธ์ง ๋ฑ).
- ๊ฐ ์ฌ์ฉ์์ ๋ํด ๊ฐ๋ณ ๋คํธ์ํฌ ์ ํ์ ์ ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํน์ IP ๋๋ ์๋ธ๋ท์ ์ก์ธ์ค๋ง ํ์ฉํ ์ ์์ต๋๋ค.
- ๊ฐ๋ณ ์ฌ์ฉ์ ๋ฐ ๋๋ ํฐ๋ฆฌ์ ๊ด๋ จํ์ฌ ๋ค์ด๋ก๋ ๊ฐ๋ฅํ ์ฝํ ์ธ ์ ๋ํ ํํฐ ์ฐ๊ฒฐ์ ์ง์ํฉ๋๋ค(์: ํน์ ํ์ฅ์๋ฅผ ๊ฐ์ง ํ์ผ ๋ค์ด๋ก๋๋ฅผ ์ฐจ๋จํ ์ ์์).
- ํ์ผ์ ๋ค์ํ ์์ (๋ก๋, ์ญ์ , ์ด๋ฆ ๋ณ๊ฒฝ ๋ฑ) ์ค์ ์คํ๋๋ ํธ๋ค๋ฌ๋ฅผ ๋ฐ์ธ๋ฉํ ์ ์์ต๋๋ค. ํธ๋ค๋ฌ ํธ์ถ ์ธ์๋ HTTP ์์ฒญ ํ์์ผ๋ก ์๋ฆผ ์ ์ก์ด ์ง์๋ฉ๋๋ค.
- ๋นํ์ฑ ์ฐ๊ฒฐ์ ์๋ ์ข ๋ฃ.
- ์ฐ๊ฒฐ์ ๋์ง ์๊ณ ์์์ ๊ตฌ์ฑ ์ ๋ฐ์ดํธ.
- Prometheus์์ ๋ชจ๋ํฐ๋ง์ ์ํ ๋ฉํธ๋ฆญ์ ์ ๊ณตํฉ๋๋ค.
- HAProxy PROXY ํ๋กํ ์ฝ์ ์ฌ์ฉ์์ ์์ค IP ์ฃผ์์ ๋ํ ์ ๋ณด๋ฅผ ์์ง ์๊ณ ๋ถํ ๋ถ์ฐ ๋๋ SFTP/SCP ์๋น์ค์ ๋ํ ํ๋ก์ ์ฐ๊ฒฐ์ ๊ตฌ์ฑํ๋๋ก ์ง์๋ฉ๋๋ค.
- ์ฌ์ฉ์ ๋ฐ ๋๋ ํ ๋ฆฌ ๊ด๋ฆฌ, ๋ฐฑ์ ์์ฑ ๋ฐ ํ์ฑ ์ฐ๊ฒฐ ๋ณด๊ณ ๋ฅผ ์ํ REST API.
- ๊ตฌ์ฑ ๋ฐ ๋ชจ๋ํฐ๋ง์ ์ํ ์น ์ธํฐํ์ด์ค(http://127.0.0.1:8080/web)(์ผ๋ฐ ๊ตฌ์ฑ ํ์ผ์ ํตํ ๊ตฌ์ฑ๋ ์ง์๋จ).
- JSON, TOML, YAML, HCL ๋ฐ envfile ํ์์ผ๋ก ์ค์ ์ ์ ์ํ๋ ๊ธฐ๋ฅ.
- ์์คํ ๋ช ๋ น์ ๋ํ ์ ํ๋ ์ก์ธ์ค๋ก SSH๋ฅผ ํตํ ์ฐ๊ฒฐ์ ์ง์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Git(git-receive-pack, git-upload-pack, git-upload-archive) ๋ฐ rsync์ ํ์ํ ๋ช ๋ น์ ๋ฌผ๋ก ์ฌ๋ฌ ๋ด์ฅ ๋ช ๋ น(scp, md5sum, sha*sum, cd, pwd, sftpgo-copy ๋ฐ sftpgo-remove).
- ๋ฉํฐ์บ์คํธ DNS๋ฅผ ํตํด ๊ด๊ณ ๋๋ ์ฐ๊ฒฐ ์๊ฒฉ ์ฆ๋ช ์ ์๋ ์์ฑ์ผ๋ก ํ๋์ ๊ณต์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ณต์ ํ๊ธฐ ์ํ ํด๋์ฉ ๋ชจ๋.
- ์ฑ๋ฅ ๋ถ์์ ์ํ ๋ด์ฅํ ํ๋กํ์ผ๋ง ์์คํ .
- ๊ฐ์ํ๋ Linux ์์คํ ๊ณ์ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ก์ธ์ค.
- JSON ํ์์ผ๋ก ๋ก๊ทธ๋ฅผ ์ ์ฅํฉ๋๋ค.
- ๊ฐ์ ๋๋ ํฐ๋ฆฌ ์ง์(์: ํน์ ๋๋ ํฐ๋ฆฌ์ ๋ด์ฉ์ ๋ก์ปฌ ํ์ผ ์์คํ ์ด ์๋ ์ธ๋ถ ํด๋ผ์ฐ๋ ์ ์ฅ์์์ ์ ๊ณต๋ ์ ์์).
- ํ์ผ ์์คํ ์ ์ ์ฅํ ๋ ์ฆ์์์ ๋ฐ์ดํฐ๋ฅผ ํฌ๋ช ํ๊ฒ ์ํธํํ๊ณ ์ ๋ก๋ํ ๋ ํด๋ ํ๊ธฐ ์ํด cryptfs๋ฅผ ์ง์ํฉ๋๋ค.
- ๋ค๋ฅธ SFTP ์๋ฒ๋ก ์ฐ๊ฒฐ ์ ๋ฌ ์ง์.
- SFTPGo๋ฅผ OpenSSH์ฉ SFTP ํ์ ์์คํ ์ผ๋ก ์ฌ์ฉํ๋ ๊ธฐ๋ฅ.
- ์๊ฒฉ ์ฆ๋ช ๋ฐ ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ฅผ Vault, GCP KMS, AWS KMS์ ๊ฐ์ KMS ์๋ฒ(ํค ๊ด๋ฆฌ ์๋น์ค)๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํ๋ ํ์์ผ๋ก ์ ์ฅํ๋ ๊ธฐ๋ฅ.
- ์๋ช ์ด ์ ํ๋ ์ผํ์ฉ ์ํธ๋ฅผ ์ฌ์ฉํ๋ 6238๋จ๊ณ ์ธ์ฆ ์ง์(TOTP, RFC XNUMX). Authy ๋ฐ Google Authenticator์ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ์ฆ์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ํ๋ฌ๊ทธ์ธ์ ํตํ ๊ธฐ๋ฅ ํ์ฅ. ์๋ฅผ ๋ค์ด ์ถ๊ฐ ํค ๊ตํ ์๋น์ค, ๊ฒ์/๊ตฌ๋ ์ฒด๊ณ ํตํฉ, DBMS์ ์ด๋ฒคํธ์ ๋ํ ์ ๋ณด ์ ์ฅ ๋ฐ ๊ฒ์์ ์ง์ํ๋ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru