2022. 11. 28. 13:56ㆍ리눅스(Linux)
FTP (File Transfer Protocol)
- TCP/IP 환경에서 파일 전송용 Application Protocol
- 시스템에 등록된 사용자들을 위한 FTP Service와 익명의 모든 사용자에게 개방하는 Anonymous FTP Service 가 있음
- FTP는 TCP기반으로서 TCP 서비스만 사용하게 됨
- 20번의 Data 포트(데이터 전송용)와 Control 포트인 21번 포트 2개의 포트를 사용
- FTP mode에 따라 Data 포트가 항상 20번 포트를 사용하는 것은 아님
- Active와 Passive 모드가 있으며 접속요청을 하는 클라이언트가 결정하게 됨
$ Active Mode (능동형)
- 20번 Data 포트 사용
- 클라이언트 5151포트로 21번 포트에 연결
- 5151(Data 포트로 사용할 포트 번호 )알려줌
- Server 20(Data 포트)로 5151(Data 포트)에 접근
- Client에서 방화벽을 신경 써야한다. (Server에서 Client로 접속하기 때문에)
- vsftp Default
$ Passive Mode (수동형)
- 3267이라는 랜덤포트를 사용하겠다고 알려줌
- 클라이언트가 해당 포트로 접근해서 송신
- FTP에 사용할 랜덤 포트범위를 정해놓고 방화벽을 해제해놓아야 한다.
$ 설정 파일
/usr → other 권한없음
/tmp → 퍼미션
로컬계정따로, 퍼미션계정 따로 설정 해야함
anonymous로 ftp 접속허용시키고 접속해도 other 권한이 없으면 업로드, 다운 불가능
/var/ftp에 other 쓰기권한을 주게되면 anonymous 접속이 불가
$ passive mode 변경
*Active mode(default )
*passive mode 변경
# firewall-cmd --permanent --add-port=3500/tcp
# firewall-cmd --permanent --add-port=3550/tcp
- 랜덤포트 추가 (--add-port=3500-3550/tcp )로도 가능
# firewall -cmd --reload
# /etc/vsftpd/vsftpd.conf
44 # Passive_Mode Config
45 pasv_enable=YES
46 pasv_min_port=3500
47 pasv_max_port=3550
$ 로컬 사용자 리스트
- 사용자 디렉터리 이동제한 설정
- 이동제한을 제외시킬 사용자를 리스트 형태로 관리
chroot_local_user=YES
- 사용자 디렉터리 이동제한 설정 ( 기본값 : 모든 사용자가 자신의 홈 디렉터리 이외의 다른 디렉터리 이동이 불가)
chroot_list_enable=YES
- 사용자 디렉터리 이동제한 시 이동제한을 제외 시킬 사용자 목록 정의 파일인 chroot_list_file의 사용 여부를 결정
chroot_list_file=/etc/vsftpd/chroot_list
- 사용자 디렉터리 이동제한 시 이동제한을 제외 시킬 사용자의 목록을 정의한 파일의 위치 정의
allow_writeable_chroot=YES
- chroot를 설정했을 때 같이 들어와야 하는 설정 중 하나, chroot가 적용 된 사용자에게만 쓰기 권한 부여
# vi /etc/vsftip/chroot_list
- chroot_list에 계정명 나열하기만하면됨, 저기 계정에 있는 사용자만 이동제한을 받지 않음
# systemctl restart vsftpd
$ FTP 확장자별로 접근제어
# cat /home/user1(사용자디렉터리) .message
- 접속시 메시지 띄움
# cat /var/ftp .message
- 익명사용자 접속시 메시지 띄움
$ SFTP
- SSH +FTP
- 키파일을 사용해서 SFTP 설정
- openssh만 활성화되어 있으면 사용가능
- putty gen으로 key만들어서 접속 가능
$ TCP -Wrapper
- 서버에 TCP연결 요청이 전송되면, 정당한 사용자인지 확인하는 Linux 보안기능
# vi /etc/hosts.allow
- 서비스 접속을 허용 할 HOST를 정의하는 파일
# vi /etc/hosts.deny
- 서비스 접속을 거부 할 HOST를 정의하는 파일
- hosts.allow와 hosts.deny가 충돌하면 allow가 우선순위가 높다
[hosts.allow, hosts.deny 작성방법]
구몬 [서비스명(데몬명)]:[호스트주소]
EX1) sshd:1.1.1.1,
EX2) vsftpd:2.2.2.2 3.3.3.3 (두개 이상 제어)
EX3) sshd:192.168.1.0/24 | sshd:192.168.1.0/255.255.255.0
EX4) vsftpd:192.168.1.
EX5) ALL:ALL
$ xferlog
# cd /var/log
- 시스템로그, 서비스로그들이 들어 있다.
# vi /var/log/xferlog
Mon Jun 13 12:49:50 2022 1 ::ffff:192.168.1.200 0 /usr/etc/Microsoft_Edge.lnk b _ i r itbank ftp 0 * i
- FTP 로그파일로써 proftpd 혹은 vsftpd 데몬이 수행한 서비스를 기록하는 파일
Mon Jun 13 12:49:50 2022 1 ::ffff:192.168.1.200 0 /usr/etc/Microsoft_Edge.lnk b _ i r itbank ftp 0 * i | |
Mon Jun 13 12:49:50 2022 | 날짜시간 |
1 | 초단위 시간 |
::ffff:192.168.1.200 | 해당 IP주소 |
0 | byte 단위 |
/usr/etc/Microsoft_Edge.lnk | 작업한 파일명 |
b | 파일형식 a(아스키형식), b (바이널리형식) |
_ | 어떠한 특별한 행위가 나타났는지 |
i | 어떠한 특별한 행위가 나타났는지 |
r | 계정방식 r(인증사용자), a(익명계정) 뒤에 계정명 |
frp | 연결방식 |
0 * | 추가 인증시스템 사용했을 경우 숫자가 올라감 |
i | 성공여부 c(작업이 성공했을 때), i(작업에 실패 했을 때) |
'리눅스(Linux)' 카테고리의 다른 글
[Centos 7] Linux Backup 관리(Tar, xfsdump, xfsrestore, dd, TimeShift, Rsync) (0) | 2022.11.29 |
---|---|
[Centos 7] NFS (Network File System) (0) | 2022.11.28 |
[Centos 7] SSH-Keygen & SSH 공개키 생성 (1) | 2022.11.25 |
[Centos 7] sshd_config (SSH 설정 파일) (0) | 2022.11.25 |
[Centos 7] DHCP (Dynamic Host Configuration Protocol) (1) | 2022.11.25 |