CentOS 7 proftpd 서버 구축
2016.11.28 12:12
① 레드햇 엔터프라이즈 패키지 저장소 추가하기
# yum -y install epel-release
② ftp 사용자 생성
# useradd centos
# passwd centos
③ 보안 설정
☞ selinux 사용 안함
# nano /etc/sysconfig/selinux
SELINUX=disabled 로 변경
☞ 방화벽 포트 열기
# firewall-cmd --permanent --zone=public --add-port=21/tcp
# firewall-cmd --reload (방화벽 재 시작)
④ proftpd 설치 및 서비스 실행
☞ proftpd 설치
# yum -y install proftpd
☞ proftpd 서비스 시작
# systemctl restart proftpd
☞ proftpd 서비스 상시 가동
# systemctl enable proftpd
☞ proftpd 서비스 상태 확인
# systemctl status proftpd
설정 기본 값으로는 익명 접근이 차단되는데 익명 사용 접근을 허용한다면
# nano /etc/proftpd.conf
nano 에디터에서 Ctrl + W 누르고 ANONYMOUS_FTP 찾으면
356 line <IfDefine ANONYMOUS_FTP> 앞에 #을 붙입니다. ☞ 익명 계정 설정을 시작 하는 항목
# A basic anonymous configuration, with an upload directory
# Enable this with PROFTPD_OPTIONS=-DANONYMOUS_FTP in /etc/sysconfig/proftpd
# <IfDefine ANONYMOUS_FTP>
383 line ☞ Limit WRITE 항목은 익명 계정이 쓰기 가능 여부는 설정하는 항목입니다.
DenyAll → AllowAll 변경하면 익명도 쓰기가 가능합니다.
제일 끝으로 가면 425 라인에 </IfDefine> 앞에 # 추가 ☞ 익명 계정 설정이 끝나는 항목
# Logging for the anonymous transfers
ExtendedLog /var/log/proftpd/access.log WRITE,READ default
ExtendedLog /var/log/proftpd/auth.log AUTH auth
</Anonymous>
#</IfDefine> → 제일 앞에 # 추가
*****************************************************************************************************************
☞ /etc/proftpd.conf 설정 파일 옵션 설명
*****************************************************************************************************************
ServerName "ProFTPD Default Installation"
#서버 네임을 적어둔다. 아무거나 적어도 상관없다. 로그인시 보여줌
ServerType inetd
#서버유형에는 inetd와 standalone모드를 선택할수 있다
DefaultServer on
#주 IP address 또는 설정블록에서 지정되어진 address 중의 하나가 아닌
#IP address로 들어오는 커넥션이 있을때 기본으로 사용되어질 서버설정
Port 21
#ftp의 기본 포트는 21이다
Umask 022
#퍼미션을 설정해주는 지시자
#umask 022는 644퍼미션의 파일과 755퍼미션의 디렉토리를 생성한다
MaxInstances 30
#Proftpd가 standalone 모드로 작동할때 최대 생성가는한 자식 프로세스를 정의
#Dos공격 (무한로그인)에 대한 보호 목적이므로 적당한 값을 설정
User nobody
#Proftpd가 실행될때 User지시자로 정의된 사용자명으로 실행됨
#보안상 절대 root로 지정하지 말것
Group nobody
#User와 마찬가지
UseReverseDNS off
#접속자의 IP주소를 Reverse Mapping을 하지 않겠다는 설정
#Reverse Mapping이란 IP주소를 도메인으로 변경하는것
IdentLookups off
#일반적으로 클라이언트가 Proftpd로 연결했을때 remote username을 확인
AuthPAMAuthoritative on
#PAM인증에 있어서 최종단계의 권한을 가짐
#즉 PAM인증이 실패할 경우 클라이언트와의 연결을 거부
DisplayLogin /home/sung/t
#이때 반드시 /home/sung처럼 지정된폴더에 t와같은 파일을 생성하고 그 안에 내용을 입력한다
#ftp로그인 때 보여지는 메시지 파일 이름을 정의합니다.
#이때 권한 설정해주는것을 잊지 않는다
DisplayFirstChdir .message
#각 서브 디렉토리로 이동할 경우 보여줄 메시지 파일을 정의합니다.
RootLogin off
#ftp로 root의 로그인을 허락 또는 거부하기 위한 지시자
AllowOverwrite on
#모든 디렉토리내에 파일에 대해 같은 이름의 파일을 전송할때 덮어쓰기를
#허락또는 거부하는 지시자
####################
#anonymous섹션 ####
####################
<anonymous>
#anonymous 설정을 시작합니다.
User ftp
Group ftp
#anonymous접속의 경우 Proftpd가 실행 할 때 사용자명 "ftp" 그룹명 "ftp"로 실행됩니다.
UserAlias anonymous ftp
#anonymous로 ftp에 접속한 사용자들에 대해 접속자명을 ftp로 alias해 줍니다.
#즉 anonymous로 접속한 사용자들은 사용자명 "ftp"의 권한을 가지게 됩니다.
#접속시 ftp나 anonymous를 아이디에 입력하면 anonymous모드로 로그인이 됨
MaxClients 10 "Sorry, maxium users %m -- try again later"
#동시 접속자수를 정의하는 지시자로 정의한 수를 초과할 때 " " 안의 문자열을
#사용자에게 출력합니다
MaxClientsPerHost 2 "Sorry, Allow only one client for host"
#하나의 호스트당 최대 접속수를 정의하는 지시자로 정의한 수를 초과 했을 때
#" " 안의 문자열을 사용자에게 출력합니다.
DisplayLogin welcome.msg
#이때 반드시 /var/ftp에 welcome.msg를 생성하고 그 안에 내용을 입력한다
#ftp로그인 때 보여지는 메시지 파일 이름을 정의합니다.
DisplayFirstChdir .message
#각 서브 디렉토리로 이동할 경우 보여줄 메시지 파일을 정의합니다.
RequireVal!idShell off
#/etc/shells에 없는 shell binary로그인 여부를 결정합니다..
#특별한 이유가 없다면 off로 설정해서 쓰기 바랍니다.
HideUser root
#HideUser로 설정된 유저 소유의 파일은 보이지 않는다.
#하지만 anonymous에게 일긱 권한이 있으면 아무런 소용이 없다.
Anonymous's Uploads Directory
#업로드 디렉토리에 대한 설정입니다.
#만약 업로드 디렉토리 이름을 변경하고 싶으면 아래의 uploads를 적당한 이름으로
#변경해야 됩니다.
AllowOverwrite on
#덮어 쓰기를 허용합니다.
AllowRetrieveRestart on
AllowStoreRestart on
DenyAll
#디렉토리 삭제(RMD) 권한을 주지 않습니다.
AllowAll
#읽기(READ), 업로드(STOR), 디렉토리 생성(MKD)에 대해 모두 허락합니다.
#하지만 특정 권한에 DENY 설정을 하지 않는 이상 AllowAll 설정을 하지 않아도
#Dney 설정된 권한을 제외한 나머지 권한을 가집니다.
Anonymous's Public Directory
#pub디렉토리에 대한 설정입니다.
AllowAll
#읽기(READ)권한을 허락합니다.
DenyAll
#업로드(STOR), 파일 삭제(DELE), 디렉토리 삭제(RMD), 디렉토리 생성(MKD)을 허락합니다.
</anonymous>
댓글 [0]
번호 | 제목 | 글쓴이 | 조회 |
---|---|---|---|
[공지] | 연재 강좌를 진행합니다. | gooddew | - |
105 | CentOS 7| SSH 서버 구축 | gooddew | 1360 |
104 | CentOS 7| telnet 서버 구축 | gooddew | 1039 |
103 | CentOS 7| Let's Encrypt SSL 설치 [1] | gooddew | 1355 |
102 | CentOS 7| SAMBA 서버 구축 및 윈도우 네트워크 설치 [1] | gooddew | 4921 |
» | CentOS 7| proftpd 서버 구축 | gooddew | 733 |
100 | CentOS 7| VSFTPD 서버 구축 | gooddew | 3828 |
99 | CentOS 7| Apache 최신버전 설치하기 | gooddew | 3434 |
98 | CentOS 7| Nginx, MySQL, PHP 웹서버 구축 | gooddew | 5184 |
97 | CentOS 7| DNS 서버 설치 [1] | gooddew | 8172 |
96 | CentOS 7| APM 설치하기 [1] | gooddew | 8473 |
95 | CentOS 7| 리눅스 설치후 초기 설정해야 할 것들 | gooddew | 5697 |
94 | CentOS 7| CentOS 기본 강좌 | gooddew | 7084 |
93 | CentOS 7| CentOS-7.0 Minimal 설치 [2] | gooddew | 5118 |
92 | 네트웍 활용| 케이블 모뎀 설치 | gooddew | 3252 |
91 | 네트웍 활용| Netstat 명령어를 이용한 라우팅 테이블 확인 | gooddew | 4470 |
90 | 네트웍 활용| Tracert 명령어를 이용한 장애확인 | gooddew | 3314 |
89 | 네트웍 활용| Ping 명령어를 이용한 장애확인 | gooddew | 5674 |
88 | 네트웍 활용| Lanbird Router 설정 | gooddew | 1359 |
87 | 네트웍 활용| Teltrend Router 설정 | gooddew | 1204 |
86 | 네트웍 활용| 3COM Router 설정 | gooddew | 2041 |