- Today
- Total
프로그래밍 농장
Linux [ vsftpd ] 본문
vsftpd == very secure file transfer protocol
--> sftp 보다 + 더욱(very) 안전한 FTP
--> redhat linux 기본 FTP 패키지 == 기존 ftp 서비스들에 비해 기능이 향상됨
설정 간편, 데이터 자원 소모적음, 보안성 우수
기존 ftp ) wu-ftpd , tftp , sftp , proftp ....
- FTP 서비스 사용자
1) 시스템에 등록되어 있는 사용자 == /etc/passwd 에서 확인이 가능한 사용자
== 관리자가 허가해준 설정과 권한에 따라서 업로드, 다운로드 가능
2) 시스템에 등록되어있지 않은 사용자( anonymous ) == 익명사용자
== 보안상 기본적으로 업로드 금지( 바이러스등,.. 익명성의 특성떄문)
1. cmd 창에서 리눅스서버로 접속해보기 .
cmd 창에서 ftp [본인리눅스서버ip] 입력 --> 리눅스에서 ftp 관련 패키지를 설치해주지않았기떄문에 접속이안됌.
2. yum -y install -vsftpd 로 2개패키지 정도 설치
3.
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
systemctl restart vsftpd --> 서비스 데몬가지 돌려주기
4. 다시 cmd 창에서 ftp 접속 실행. --> 접속 성공 !
--------------------------------------------------------------------------------------------------------
/etc/vsftpd/vsftpd.conf == vsftpd 주 설정 파일
12 annonymous_enable == 익명 사용자 ftp 서비스 허용 여부
== FTP 서버를 공개 형태로 운영시에는 YES
== FTP 서버를
16 local_enable == 로컬 사용자 ftp 서비스 허용 여부 == 기본적으로는 YES 설정
19 write_enable == 쓰기 (upload) 허용 여부 == 로컬 , 익명 포함
29 #anon_upload_enable == 익명 사용자 업로드 허용 여부
== 기본적으로 업로드가 금지되어 있기 떄문에 해당 라인을 사용해서 업로드 허용 설정
==익명 사용자의 ftp 서비스 접근 경로는 /var/ftp 경로 == 리눅스의 /가 아님
==익명 사용자는 ftp 서비스 접근시 ftp 하는 서비스 계정 자격으로 접근
==설정 파일에서 업로드 허용을 해주어도 실제 디렉토리 권한도 조정 필요
==익명 사용자가 필요 이상의 권한을 적용 받을 경우에는 서비스 접근 자체가 거부
== 익명 사용자가 업로드 할 수 있는 경로는 /var/ftp/pub 경로에는 업로드 가능 == 허가권 753,757 조정
-그렇다면, 알ftp 를 이용해서 아래의 조건에서 윈도우 -> 리눅스환경으로 파일전송을 해보자
--> 위 vi 에디터를 통해 익명사용자 업로드허용 수정 , 익명사용자 ftp 서비스 사용 허용으로 수정 후 저장 -> 데몬까지 돌리기
--> 알 ftp 에서 사용자와 익명사용자로 각각 접근을 해보고 , 파일 업로드까지 진행해보자 .
--> 허가권 권한은 각각 753 과 757 로 두번씩 실습해보자.
-- > 결과 :
753 | 익명사용자 | 접근 o / 업로드 x | 일반 사용자 | |
757 | 익명사용자 | 접근 x / 업로드 x | 일반 사용자 |
---------------------------------------------------------------------------------------------------
-> 디렉토리 메세지 허용 여부.
- 사용자가 FTP 서비스 접속시 해당 계정의 홈 디렉토리에 자동으로 접근이 되고 , 해당 계정의 홈 디렉토리에 디렉토리 메세지 설정
- 설정시 해당 계정의 홈 디렉토리에 .message 의 숨김파일을 만든후 vi로 안에 원하는 내용을 기입 후 데몬돌리고 ftp 접속해보면 내가 저장한 내용이 출력됨.
vsftpd 주 설정 파일인 /etc/vsftpd/vsftpd.conf 의 37번 라인
37 dirmessage_enable=YES
--> 이후 사용자가 해당 계정에 접근시 보여줄 텍스트형식의 내용을 직접 만들수있음. ( 아래 예시 )
---------------------------------------------------------------------------------------------------
서비스 접근시 표시항 배너 설정 ( #ftpd_banner )
vsftpd 주 설정 파일인 /etc/vsftpd/vsftpd.conf 의 87번 라인
# 해제후 원하는 내용 기입후 저장 , 데몬돌리고 접속시 기입한내용으로 배너뜨는것 확인가능.
---------------------------------------------------------------------------------------------------
xferlog_enable == 파일 전송시 발생하는 log 기록 여부 == 기본적으로 YES
vsftpd 주 설정 파일인 /etc/vsftpd/vsftpd.conf 의 40번 라인
---------------------------------------------------------------------------------------------------
- FTP 서비스 사용 port = 20,21 port
==port 동작 방식에 따라서 active mode , passive mode 로 구분
- active mode : 21 port 로 연결 , 20 port 데이터 전송
- passive mode : 21 port로 연결, 랜덤 port로 데이터 전솔
==passive mode 사용시 설정 파일 ex)
vi 맨마지막 라인에
pasv_enable=YES
pasv_min_port=3500
pasv_max_port=3550
==랜덤 port 사용시 방화벽 설정 ex)
firewall-cmd --permanent --add-port=3500-3550/tcp
firewall-cmd --reload
---------------------------------------------------------------------------------------------------
- 본인 로그파일에 관한 정보 확인하기
53 #xferlog_file=/var/log/xferlog == xferlog 파일 경로
xferlog 필드
ex) Thu Nov 21 17:18:03 2019 1 ::ffff:192.168.73.1 0 /var/ftp/111.txt a _ i r korea ftp 0 * i
1 2 3 4 5 6 8 9 10 11
1: FTP 서비스에 접근한 시간
2: 파일 전송에 소요된 시간 -- 단위는 초
3. FTP 서비스에 접속한 host 정보
4. 전송된 데이터의 크기 --단위는 byte
5. 전송된 파일의 위치
6. 전송된 파일의 형식 --> a ( ASCII) == 문서 파일 // b(Bianry) == 실행 파일
7. 취해진 행동 == 아무일없음 //c : 압축 // u : 압축하지않음 // t : tar
8. 전송 형태 == i( incoming ) : upload // o(outgoing) :downland
9. 접속한 사용자의 종류 == r : 시스템에 등록된 사용자 접근
10. 접속한 사용자명 == 9번이 r일 경우에는 접속된 사용자명 표시
== 9번이 a일 경우에는 ? 로 표시
11. 접속된 서비스명
12. 인증 사용 여부 == 0: 인증 사용 안 함 // 1 : 인증 사용 함
13. 인증 성공 여부 == * : 인증사용 안했음
---------------------------------------------------------------------------------------------------
deny_file={*.mp3} == data upload 를 제한시킬 파일 형식 정의
---------------------------------------------------------------------------------------------------
사용자 디렉토리 이동 제한
101 chroot_local_user=YES ==사용자 디렉토리 이동 제한 설정 여부
--> 기본값 기본적으로 모든 사용자가 자신의 home directory 이외의 다른 경로로 이동이 불가
--> 해당 항목 적용시에는 allow_writable_chroot=YES 까지 추가로 다음줄에 작성 필요
103 chroot_list_enable=YES
==사용자 디렉토리 이동 제한시 이동제한을 제외 시킬 사용자 목록 정의 파일 chroot_list 의 사용 여부
105 chroot_list_file=/etc/vsftpd/chroot_list
==사용자 디렉토리 이동 제한시 이동제한을 제외 시킬 사용자 목록 정의 파일 chroot_list 의 위치 정의
'Linux' 카테고리의 다른 글
포멧관련 ( 디스크추가 ./ 파티션 ./ 마운트 (0) | 2019.11.22 |
---|---|
Linux [ 자동 마운트 ] (0) | 2019.11.22 |
Linux [ DHCP Server 구성 실습 예제 ] (0) | 2019.11.20 |
Linux [ DHCP ] (0) | 2019.11.19 |
Linux [ telnet server / vnc server 실습예제 ] (0) | 2019.11.19 |