리눅스에 관심이 많은 초짜가 CentOS를 기반으로 웹 서버, 파일서버, 메일 서버 등을
구축해보려고 합니다 ^^
차근차근 공부한 내용들을 이곳에 정리해서 올려야겠네요.
CentOS 설치 과정을 먼저 포스팅 해야하는데 이미 리눅스가 설치되어 있는 상태에서
vsftp를 급하게 설치하다보니 FTP 설정에 관한 내용부터 올리게 되었습니다.
리눅스 설치에 대한 설명은 다음에 올리도록 하겠습니다.
◆ CenOS 6.4에서 FTP서버 설정방법
리눅스에서 FTP 설정하는 순서는 크게 아래와 같습니다.
(아래의 명령은 root 권한 상에서 설정한 것들입니다. 접속 계정이 root가 아닌 경우 설정하지 못할 수 있으니 일반 User인 경우 권한을 확인하시기 바랍니다.)
1. vsftp, ftp 설치하기
- 'yum' 명령을 통해 손쉽게 설치할 수 있습니다.
# yum -y install vsftpd ftp
2. 방화벽 설정
iptables에 20, 21번 포트를 등록해줍니다.
왜 20, 21번 2가지 포트를 등록해야 되는지 간단히 설명하면
FTP의 경우 20번 포트를 통해 자료를 전송하게 되고, 21번 포트를 통해 명령(삭제, 복사, 새로만들기 등등)을 전송하게 됩니다. 따라서 두 가지 포트번호를 모두 방화벽 허용 정책에 추가주어야 정상적으로 FTP를 사용할 수 있습니다.
방화벽 정책 추가하는 방법은 다음과 같습니다.
# vi /etc/sysconfig/iptables 명령으로 파일을 열어
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
내용을 추가해주고 저장해줍니다.
그 후 #service iptables restart 명령으로 방화벽 정책을 재시작해주면 적용됩니다.
2. FTP 접속을 위한 계정 설정 - 어떤 계정을 FTP 접속에 허용할 것인지를 설정합니다.
기본적으로 CentOS의 경우 보안상 문제로 root 계정 접속을 막아 두었습니다.
만약 root 계정으로 접속하기 원한다면 아래의 두 파일을 열어 수정해주어야 합니다.
/etc/vsftpd/user_list
내용을 확인해보면 허용불가 계정들이 나열되어있습니다. 'root'로 접속하기 위해서는 root 내용을 삭제 후 저장해주시면 됩니다.
/etc/vsftpd/ftpusers
마찬가지입니다. 허용불가 계정들이 나열되어있습니다. 'root'로 접속하기 위해서는 동일하게 root 내용을 삭제 후 저장해주시면 됩니다.
3. FTP 접속 시 530 , 500 Error 해결
- CenOS의 selinux 때문에 발생할 수 있는 에러를 막기 위해 아래와 같은 설정을 해줍니다.
(selinux에 대해서 정확히 아는 바가 없지만 리눅스 시스템의 보안을 위해 설정되어 있습니다.)
#setsebool -P ftp_home_dir 1
4. 부팅 시 vsftpd 자동시작 설정
- 부팅 때마다 vsftpd를 수동으로 시작해주어야 하는 불편을 덜기 위해 부팅 시 자동으로 데몬이 실행 될 수 있도록 아래와 같이 설정해줍니다.
#chkconfig --level 2345 vsftpd on
5. 설정 후 vsftpd 재시작
- 모든 설정이 완료된 후 서비스를 재시작해줍니다.
#service vsftpd restart
6. 파일질라 FTP client로 접속해보기!
- 정상접속이 확인되면 모든 설정이 완료된 것입니다.
이제 자유롭게 파일을 UP/DOWNLOAD 하시면 됩니다!
* 기타사항
- root로 접속할 경우 아래와 같은 에러가 발생할 수 있습니다.
500 OOPS: cannot change directory:/root
이때는 아래의 명령을 입력 후 다시 접속해 보시면 root 계정으로 접속이 가능해집니다.
# setenforce 0
** 주의사항 **
- 일반적으로 실무에서 root 접속을 허용하는 것은 보안상 큰 문제가 됩니다.
따라서 root 계정으로 접속을 허용하는 것은 학습용도로만 이용하시길 권합니다!