FTP 서버는 파일을 교환하기 위한 프로토콜인 FTP를 사용할수 있는 서버.
FTP 서버--------FTP 클라이언트 가 있어야 업로드 or 다운로드가 가능하다.
Centos 는 기본으로 vsftpd 를 제공하며
vsftpd(Very Secure FTP) 는 이름 그대로 보안을 강조한다.
물론 vsftpd 를 설치하지않아도 SFTP 로 사용 가능하다.
FTP 기본포트는 20번(데이터전송), 21번(제어연결) 포트가있으며
FTP서버와 FTP클라이언트 사이에 2개의 연결을 가진다.
제어연결은 FTP 명령어 및 서버의 응답코드를 전송하기 위한 목적이며
데이터연결은 파일 전송 및 서버에서 파일 및 디렉토리 리스팅(ls 등) 된 자료를 전달할때 사용된다
제어연결과 데이터연결이 분리된 이유는 파일을 효율적으로 전송하기 위함이며
제어연결은 클라이언트가 FTP서버에 접속해있는 동안 연결을 유지하며
데이터연결은 데이터 전송이 필요할때 연결을 가진다.
데이터연결에서는 2가지 방법을 지원하는데,
Active 모드, Passive 모드이다.
Active 모드 : 서버에서 클라이언트로 연결을 시도하기 때문에 클라이언트의 방화벽이나 공유기 등 을 사용하는경우
연결되지 않는다.
Passive 모드 : 클라이언트에서 서버로 연결을 시도하기때문에 클라이언트 환경에 영향을 받지 않는다.
이 모드는 서버의 1024이후 포트를 사용한다.
Passive 모드 설정 방법은 다음과 같다
# vi /etc/vsftpd/vsftpd.conf
pasv_enable=Yes
pasv_min_port=30000
pasv_max_port=30010
iptables 를 사용한다면 위 포트를 허용하도록 추가한다.
# vi /etc/sysconig/iptables
–A INPUT –m state —state NEW –m tcp –p tcp —dport 30000:30010 –j ACCEPT
-----------------------------------------------------------------------------------------------------------------------------
쉘 권한이 없는 사용자(/bin/false) 들에게 FTP 사용을 가능하게 하려면
다음 파일에 3번째 줄 (빨간부분) 을 주석처리 해주면 된다.
# vi /etc/pam.d/vsftpd
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
'👨🏻💻Infra > ⚙️Application' 카테고리의 다른 글
Redmine PurpleMine2 테마, Agile 플러그인 설치 (0) | 2021.12.10 |
---|---|
Nodejs 버전 별 설치 (0) | 2021.03.31 |
Redmine4.1 테마 추가 (0) | 2021.01.27 |
Redmine4.1 구축 (0) | 2021.01.22 |
국내 ISP DNS 정보 (0) | 2020.02.09 |