들어가기
로컬 pc에 있는 war파일을 centos7의 톰캣에 배포 하려니, centOs에 ftp가 없다.
그래서 레드헷 계열에서 쓰는 기존 ftp보다 보안및 성능이 강화된 vsftpd설치하고 사용해보자.
실습의 편의를 위해 selinux를 disable 했으며, root 계정으로 접속하는 예제이다.
주의: 이실습은 보안은 개나 줘버린 예제이다.
그리고 실습을 진행하면서 자잘한 문제사항을 발견하게 된다.
만약 예제를 따라 실습한다면, 한번 전체적으로 읽어보고 따라하길 바란다.
실습환경
centos7(vsftpd), ftp 클라이언트(filezilla)
centOs7에 vsftpd 설치하기
vsftpd가 설치되어있는지 일단 확인하자.
1 | yum list installed vsftpd |
설치가 안되어 있다면, 다음 명령으로 vsftpd를 설치하자.
1 | yum install vsftpd -y |
그리고 vsftpd를 업데이트 하자
1 | yum update vsftpd |
/etc/vsftpd/vsftpd.conf 파일을 수정하자.
/etc/vsftpd/vsftpd.conf 은 vsftpd의 설정파일이다.
기존의 vsftpd.conf 파일을 vsftpd.conf_back으로 바꿔보관하고,
1 | mv vsftpd.conf vsfptd.conf_back |
새로운 vsftpd.conf 파일을 만들어 아래 내용을 채우고 저장한다.
1 | anonymous_enable=NO |
vsftpd를 실행하자.
1 | service vsftpd start |
다음 명령으로 동작중인 vsftpd 포트를 확인 할 수 있다.
1 | [root@localhost vsftpd]# netstat --tcp -anp | grep vsftpd |
다음 명령으로 vsfptd 서비스가 항상 동작하도록 설정하자
1 | systemctl enable vsftpd.service |
방화벽에서 21, 20포트를 열어준다.
1 | sudo firewall-cmd --permanent --zone=public --add-port=21/tcp |
Windows pc에서 filezilla를 이용헤서 ftp 에 접속해보자
일단 root 계정으로 접속해보자.
530 Permission denied 오류를 찾아보니, vsftpd에 기본적으로 접속거부 리스트에 root 계정이 포함되어 있다고 한다.
아래 두 파일에 이 접속거부 계정 정보가 있다.
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/ftpusers 를 열어보니, 아래와 같다
1 | [root@localhost vsftpd]# vi /etc/vsftpd/ftpusers |
root 계정을 지워서 저장하자.
일단 실습용이니 보안은 개나 줘버리자. ㄷㄷㄷ
/etc/vsftpd/user_list 파일을 열어보자
1 | [root@localhost vsftpd]# vi /etc/vsftpd/user_list |
역시 root 가 있다. 이 파일에서도 root 를 제거하고 저장하자.
서비스를 재 시작하고 접속이 root계정을 이용해 파일질라고 접속해보자
1 | service vsftpd restart |
이번엔
500 OOPS: vsftpd: refusing to run with writable root inside chroot() 라는 오류 메세지가 뜬다.
찾아보니 chroot내에 쓰기 권한이 없어서 발생하는 문제라고 한다.
/etc/vsftpd/vsftpd.conf 파일을 수정해야 한다.
하단에 아래 스크립트를 추가하자.
1 | allow_writeable_chroot=yes |
다시 vsftpd 서비스를 재시작 하자.
다시 파일질라에서 root 계정으로 접속해보자
또다시 안된다. 산넘어 산이다.
인터넷에 찾아보니 vsftpd 에 passive 모드에 대한 설정이 필요하다고 한다.
ftp 서버 만들어 쓰는데 참 할게 많다.
다시 /etc/vsftpd/vsftpd.conf파일을 열어 하단에 아래 내용을 추가한다.
1 | pasv_enable=Yes |
40000 번 포트를 방화벽에서 열어주자.
1 | # firewall-cmd --permanent --add-port=40000/tcp |
최종 /etc/vsftpd/vsftpd.conf 파일 내용
1 | anonymous_enable=NO |
음 vsftp 패시브모드 설정도 끝냈다. 다시 접속 시도해보자
접속이 되는 것을 확인했다. 파일질라에서 능동, 수동 둘다 접속이 가능하다.