๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐ŸŒŸ2017๋…„ ์ด์ „ ํฌ์ŠคํŒ… ๋ชจ์Œ ๐ŸŒŸ/๐Ÿ’žLinux OS๐Ÿ’ž

VSftp Server ์„ค์น˜์™€ ์„ค์ •.

 

โ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃ
ftp๋Š” ์ข€ ๊นŒ๋‹ค๋กญ๋‹ค. VMware NAT ๋ฐฉ์‹์ด ์•„๋‹Œ ๋ธŒ๋ฆฌ์ง€ ๋ฐฉ์‹์„ ์ด์šฉํ•ด์„œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.
๋Œ€์ฒด๋กœ ์ง‘์ง‘๋งˆ๋‹ค ๊ณต์œ ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๊ณต์œ ๊ธฐ์—์„œ ์ง์ ‘ ๋ฐ›์•„์„œ ํฌ์›Œ๋”ฉ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„
์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๋ชฐ๋ก  ์ด๋ ‡๊ฒŒ ํ•œ๋‹ค๊ณ  ํ•˜์ง€๋งŒ ์ด ๋ฐฉ์‹๋„ ์„ค์ •ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€๊ฐ€ ์•Š๋‹ค.
์ด ๋ธŒ๋ฆฌ์ง€ ์ ‘์† ๋ฐฉ์‹์˜ ์žฅ์ ์€ ํŒจ์‹œ๋ธŒ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ง์ ‘ ์ ‘์†ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŽธํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
โ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃโ–ฃ
[root@nsโ™ฅBunnyComโ™ฅ~]# rpm -qa | grep vsftp
[root@nsโ™ฅBunnyComโ™ฅ~]# yum install vsftp
[root@nsโ™ฅBunnyComโ™ฅ~]# vi /etc/vsftpd/vsftpd.conf
### anonymous_enable=YES (default = YES). anonymous ์‚ฌ์šฉ์ž์˜ ์ ‘์† ํ—ˆ์šฉ ์—ฌ๋ถ€
anonymous_enable=YES
### local_enable=YES (default = NO). ๋กœ์ปฌ ๊ณ„์ • ์‚ฌ์šฉ์ž์˜ ์ ‘์† ํ—ˆ์šฉ ์—ฌ๋ถ€
local_enable=YES
### write_enable=YES (defualt = NO). write ๋ช…๋ น์–ด ํ—ˆ์šฉ ์—ฌ๋ถ€
write_enable=YES
### local_umask=022 (default = 077). ๋กœ์ปฌ ๊ณ„์ • ์‚ฌ์šฉ์ž์šฉ umask
local_umask=022
### anon_upload_enable=YES (default = NO). anonymous ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ• ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€ ํ—ˆ์šฉ์‹œ ์—…๋กœ๋“œ ํ• ์ˆ˜์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
anon_upload_enable=YES
### anon_mkdir_write_enable=YES (default = NO). anonymous ์‚ฌ์šฉ์ž์˜ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ ํ—ˆ์šฉ ์—ฌ๋ถ€
anon_mkdir_write_enable=YES
## ์ƒˆ๋กœ์šด ๋””๋ ‰ํ† ๋ฆฌ์— ๋“ค์–ด๊ฐ”์„ ๋•Œ ๋ฟŒ๋ ค์ค„ ํ™˜๊ฒฝ ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•œ ํŒŒ์ผ๋ช…
dirmessage_enable=YES
# Activate logging of uploads/downloads.
xferlog_enable=YES
### connect_from_port_20=YES Standalone ์ผ๋•Œ ํฌํŠธ ๋ณ€๊ฒฝ์„ ์›ํ•  ๊ฒฝ์šฐ ์„ค์ •.
connect_from_port_20=YES
### listen_port=2121 ๊ธฐ๋ณธ ํฌํŠธ์™ธ ๋‹ค๋ฅธ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. vsftpd ์„œ๋ฒ„๋ฅผ ์žฌ์‹คํ–‰ํ•œ๋‹ค.
listen_port=1999
### chown_upload=YES ์ต๋ช…์œ ์ €๊ฐ€ ์—…๋กœ๋“œํ•œ ํŒŒ์ผ์˜ ์†Œ์œ ๊ถŒ์„ ์ž๋™๋ณ€๊ฒฝ.
#chown_uploads=YES
### chwon_username=acsecret ์†Œ์œ ๊ถŒ์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์›ํ•˜๋Š” ์œ ์ €๋ช…์œผ๋กœ ๊ธฐ์ž…
#chown_username=whoever
### xferlog ํ‘œ์ค€ ํฌ๋งท์€ ๋กœ๊ทธ์ธ, ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ๋“ฑ์˜ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธฐ์ง€ ์•Š์ง€๋งŒ
### vsftpd ์Šคํƒ€์ผ ๋กœ๊ทธ๋Š” ์ด๋ฅผ ํฌํ•จํ•œ ๋ณด๋‹ค ์ƒ์„ธํ•œ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธด๋‹ค
### xferlog_file=/var/log/vsftpd.log ํŒŒ์ผ ์ „์†ก ๋กœ๊ทธ ํŒŒ์ผ๋ช…
xferlog_file=/var/log/vsftpd.log
### xferlog_enable=YES (default=YES). ํŒŒ์ผ ์ „์†ก ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธธ ๊ฒƒ์ธ์ง€ ์—ฌ๋ถ€
xferlog_enable=YES
### xferlog_std_format=YES (defalut=YES). xferlog ํ‘œ์ค€ ํฌ๋งท์œผ๋กœ ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธธ์ง€ ์—ฌ๋ถ€
xferlog_std_format=YES
### idle_session_timeout=600 (default=300์ดˆ). ํด๋ผ์ด์–ธํŠธ์—์„œ ์•„๋ฌด๋Ÿฐ ๋ช…๋ น์ด ์—†์„๊ฒฝ์šฐ ์„ธ์…˜์„ ๋๋‚ผ ๋•Œ๊นŒ์ง€์˜ ๋Œ€๊ธฐ์‹œ๊ฐ„.
idle_session_timeout=900
### data_connection_timeout=120 (default=60์ดˆ). data connection ์„ ๋Š์„ ๋Œ€๊ธฐ ์‹œ๊ฐ„.
data_connection_timeout=200
### no_priv_user=ftp ์ต๋ช…(anonymous) ๋กœ๊ทธ์ธ์‹œ, ์•จ๋ฆฌ์–ด์‹ฑ๋  ์œ ์ €๋ช… ๊ธฐ์ž….
#nopriv_user=ftpsecure
### session_support=YES wtmp ์— ๋กœ๊ทธ ๋‚จ๊ธฐ๊ธฐ (YES ๋กœ ํ•ด์•ผ๋งŒ last ๋ช…๋ น์–ด๋กœ ์ ‘์† ์—ฌ๋ถ€ ํ™•์ธ ๊ฐ€๋Šฅ)
#session_support=YES
#async_abor_enable=YES
### ascii_upload_enable=YES ASCII ํŒŒ์ผ ์—…๋กœ๋“œ ๊ฐ€๋Šฅ.
#ascii_upload_enable=YES
### ascii_download_enable=YES ASCII ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅ
#ascii_download_enable=YES
### FTP ์„œ๋ฒ„ ์ ‘์†ํ•  ๋•Œ ๋กœ๊ธด ๋ฉ”์‹œ์ง€ (default=๋ฒ„์ „๋ฒˆํ˜ธ). ํ•œ๊ธ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
ftpd_banner=^^ Mnetwork.co.kr FTP Server service ^^.
### deny_email_enable=YES ์ต๋ช… ์ ‘์†์‹œ ํŒจ์Šค์›Œ๋“œ์— ์ผ๋ฐ˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ๊ฑฐ๋ถ€ ์—ฌ๋ถ€
#deny_email_enable=YES
### (vsftpd.banned_emails์— ์ง€์ •๋œ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋งŒ ํ—ˆ์šฉ)
#banned_email_file=/etc/vsftpd.banned_emails
### chroot_local_user=YES (default=NO). ์ ‘์†์‹œ ๋กœ์ปฌ ์‚ฌ์šฉ์ž์˜ ํ™ˆ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ /๋กœ ๋ณ€๊ฒฝ ์‚ฌ์šฉ์ž์˜ ํ™ˆ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ฒ—์–ด๋‚˜์ง€ ๋ชปํ•˜๋„๋ก
### ์ œํ•œํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ •. ์ œํ•œ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ YES ๋กœ ๋ฐ”๊พผ ํ›„ ์ œํ•œํ•  ์‚ฌ์šฉ์ž ID ๋ฅผ chroot_list_file= ์— ์„ค์ •ํ•œ ํŒŒ์ผ์— ์ง€์ •ํ•œ๋‹ค
chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#### ์ฃผ์˜ํ•  ๊ฒƒ์€ chroot_local_user=YES ์™€ chroot_list_enable=YES ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ  /etc/vsftpd.chroot_list์— ํฌํ•จ๋œ ์‚ฌ์šฉ์ž ID ๋งŒ
#### ์ œํ•œ์—†์ด ํ™ˆ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค. (๋ฐ˜๋Œ€๋กœ ์ž‘์šฉ)
#chroot_list_file=/etc/vsftpd.chroot_list
### ls_recurse_enable=YES ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์šฉ ์ถœ๋ ฅ์‹œ ์บ์‰ฌ ์‚ฌ์šฉ์—ฌ๋ถ€.
ls_recurse_enable=YES
### pam_service_name=vsftpd ==> PAM ํŒŒ์ผ๋ช…์„ ์ง€์ • (์„ค์น˜ํ•  ๋•Œ /etc/pam.d/vsftpd ๋ช…์œผ๋กœ ๋ณต์‚ฌํ•จ)
pam_service_name=vsftpd
### userlist_enable=YES /etc/vsftpd.user_list ์— ์žˆ๋Š” ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ์ ‘๊ทผ์„ ํ—ˆ๊ฐ€ ์„ค์ •.
userlist_enable=YES
## listen=YES Standalone ์œผ๋กœ ์šด์˜ํ•  ๋•Œ listen=YES
listen=YES
tcp_wrappers=YES
# ํŒจ์‹œ๋ธŒ ํ˜•ํƒœ
## [NO : ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ] [YES : ์‚ฌ์šฉ]
pasv_enable=YES
pasv_promiscuous=YES
### ๊ฐ€์ƒ ํฌํŠธ ๋ฒˆํ˜ธ ์ง€์ •
pasv_min_port=40001
pasv_max_port=40002
##### ========= ๊ฐ€์ƒ์œ ์ € ==========
guest_enable=YES
### guest_username=virftp ==> ๊ฐ€์ƒ ์œ ์ €์˜ ์‹ค์ œ ํ• ๋‹น ๊ณ„์ •
guest_username=virftp
#### user_sub_token=$USER ==> ์„œ๋กœ ๋‹ค๋ฅธ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•ด ์…‹ํŒ…
user_sub_token=$USER
local_root=/home/ftp2
### virftp_use_local_privs=YES ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ ์ ์œผ๋กœ anonymous ์˜ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ   ํ™”์ผ์„ ์ƒ์„ฑํ•˜์ง€ ๋ชปํ•œ๋‹ค.
virftp_use_local_privs=YES
### ์ ‘์†์ž - xinetd ๋ฅผ ํ†ตํ•˜์ง€ ์•Š๊ณ  standalone์œผ๋กœ ๋™์ž‘ํ•  ๋•Œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
### max_clients=100 ์ตœ๋Œ€ ์ ‘์†์ž ์ˆ˜
max_clients=15
### max_per_ip=3 IP ๋‹น ์ ‘์† ์ˆ˜
max_per_ip=2
### ์ „์†ก์†๋„ ์ œํ•œ (0์€ ์ œํ•œ์—†์Œ, ๋‹จ์œ„๋Š” ์ดˆ๋‹น bytes)
### anon_max_rate=10000, trans_chunk_size=0 ๋กœ ์„ค์ •ํ•˜์—ฌ chunk size ๋ฅผ vsftpd ๊ฐ€ ํŒ๋‹จํ•˜๋„๋ก ํ•œ๋‹ค.
### local_max_rate=200000 ๊ณ„์ • ์‚ฌ์šฉ์ž์˜ ์ „์†ก๋Ÿ‰ ์ œํ•œ
local_max_rate=200000
### anon_max_rate=100000 anonymous ์‚ฌ์šฉ์ž์˜ ์ „์†ก์†๋„ ์ œํ•œ
anon_max_rate=100000
### trans_chunk_size=0 ์ง€์ •ํ•œ byte ๋‹จ์œ„๋กœ ๋‚˜๋ˆ ์„œ ์ „์†ก ์ €์žฅํ•œ๋‹ค. 0์€ vsftpd ๊ฐ€ ์•Œ์•„์„œ ํŒ๋‹จํ•œ๋‹ค.  v1.1.3 ์ด์ƒ์—์„œ trans_chunk_size ์˜ต์…˜์ด ์žˆ๋‹ค.
trans_chunk_size=0
[root@nsโ™ฅBunnyComโ™ฅ~]# service vsftpd restart
[root@nsโ™ฅBunnyComโ™ฅ~]# nmap -sS -O -v 192.168.40.4 | grep ftp
21/tcp   open  ftp     vsftpd 2.0.5
| 
ftp.xxxxxxxxxx.xx.kr   A       192.168.40.4
[root@nsโ™ฅBunnyComโ™ฅ~]# setsebool -P ftp_home_dir=1
[root@nsโ™ฅBunnyComโ™ฅ~]# ftp 192.168.40.4
KERBEROS_V4 rejected as an authentication type
Name (192.168.40.4:root): bunny
331 Please specify the password.
Password: xxxxxxxxxxxxxxxxxxx
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files. => ์ ‘์†ํ™•์ธ
ftp> ls -al
227 Entering Passive Mode (192,168,40,4,156,65)
150 Here comes the directory listing.
-rwx------    1 500      500          5670 Feb 25 06:23 IPTables_powerSecurity_script.sh
-rw-r--r--    1 500      500           843 Feb 26 02:01 sulinux-download-sct.sh
226 Directory send OK.
ftp> quit  => ์ข…๋ฃŒ๋ช…๋ น์ด๋‹ค.
์ด๋Ÿฐ์‹์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ๊นŒ์ง€ ์™„๋ฃŒํ•˜๋ฉด ๋ชจ๋“  ๊ตฌ์ถ•์€ ๋๋‚œ๋‹ค.