서론
처음 리눅스르 설치 한 뒤 파일들을 업로드 하기 위해선 FTP서비스가 가능하여야 한다. 기본적으로 이 부분은 설정이 안되어 있기에 포스팅 한다. 필자도 처음 리눅스를 접했을때 이 부분 부터 시작하였는데 엄청 막혔었다.
본론
vsftpd 설치
레드햇 에서는 yum을 통하여 간단하게 설치가 가능하다. 다음과 같이 명령어를 해줘서 설치 해주자.
#yum -y install vsftpd
yum이 되질 않을때는 repository가 잡혀있지 않아서 인데 아래 글을 참조 하여 구성하자.
vsftpd 설정
vsftpd 설정파일은 총 3가지이다. 경로는 /etc/vsftpd 디렉토리 안에 있으며 설정 파일들은 아래 그림과 같다.
설정 파일들..
vsftpd.conf
파일 설정 내용은 아래와 같다. CCL이 없는 곳에서 퍼왔다. 사실 적기 귀찮았다..
anonymous_enable=NO 익명 접속 허용 여부
local_enable=YES 로컬 사용자 계정 허용 여부
write_enable=NO 쓰기 권한 허용 여부
local_umask=022 파일 및 디렉토리 생성 시 퍼미션 부여 값
anon_upload_enable=YES 익명 업로드 허용 여부
anon_mkdir_write_enable=YES 익명 디렉토리 생성 허용 여부
dirmessage_enable=YES 접속 시 메세지 표시 여부
[홈디렉토리 .message 파일 사용]
connect_from_port_20=YES 20번 포트를 FTP에 사용 여부
chown_uploads=YES 관리자 계정으로 업로드한 파일의 소유주를 변경 허용 여부
[chown_username=whoever과 같이 사용]
chown_username=whoever 위의 설정과 같이 사용
xferlog_file=/var/log/xferlog 업로드 및 다운로드 log 기록 경로
xferlog_std_format=YES log파일 표준 포맷 사용 여부
idle_session_timeout=600 시간 제한 옵션
data_connection_timeout=120 데이터 전송 시간 제한 옵션
nopriv_user=ftpsecure 관리자 계정 접속 시 해당 계정으로 접속
async_abor_enable=YES ABOR 명령어 사용 가능 여부
ascii_upload_enable=YES ascii 파일 업로드 가능 여부
ascii_download_enable=YES ascii 파일 다운로드 가능 여부
ftpd_banner=Welcome~ 접속자에게 보여질 문구
deny_email_enable=YES 접속 거부 email 주소 사용 여부
banned_email_file=/etc/vsftpd/banned_emails 위 옵션의 연동 파일
chroot_local_user=YES 사용자가 접속 시 상위 폴더 접근 거부 여부
chroot_list_enable=YES 사용자가 접속 시 상위 폴더로 이동 가능 여부
chroot_list_file=/etc/vsftpd/chroot_list 위 설정에서 제외 될 사용자 계정 리스트
ls_recurse_enable=YES ls -r 명령어 사용 가능 여부
[큰 FTP서버일 경우 서버 부하 있음]
listen=NO standalone mode로 서비스 할 경우 설정하는 옵션
listen_ipv6=YES 위와 동일
pam_service_name=vsftpd 사용자 계정에 대한 접속을 허용할 때 PAM인증 사용 시 사용 파일 이름 지정
userlist_enable=YES
아래 참조
user_list, ftpusers
바로 위 userlist_enable 부분에 대한 설정 파일인데, 간단하게 설명 해서
userlist_enable 이 YES일 경우 두 파일에 명시된 계정들은 접근이 안되며
NO일 경우 에는 ftpusers에만 명시되어 있는 계정들이 접근이 안된다.
기본적으로 root는 접속이 모두 차단되어있는데 가능하게 하려면 이 두 파일에 있는 root를 지우거나 주석처리 해주어야 한다. 필자는 root로 접속 하기 위하여 두 파일에 있는 root를 모두 주석처리하였다.
두 파일 모두 root 앞에 주석처리
방화벽 해제 및 FTP 접속 확인
FTP는 기본적을 20, 21포트를 사용하는데 기본적으론 막혀있다. 사용하기 위해선 반드시 방화벽을 해제 해주어야 한다.
iptables 를 이용하여 열어 줄 것이다.
#vi /etc/sysconfig/iptables (아래 그림과 같이 두줄을 추가 해준 뒤) #service iptables restart #service iptables save #service restart vsftpd
빨간 점 2개를 추가해 주자.
테스트 해보면 안된다. 이상하다... 서버를 내렸다가 올리고 vsfptd를 다시 켜 보면 잘된다. 방법 아시는 분 댓글 부탁드려요...
사실 이 방법 말고 x윈도가 깔려 있으면 이 걸로 하는 것이 훨씬 편하다.
System->Administration->Firewall
FTP 체크 후 Apply 하면 바로 된다
접속이 잘 된다.
selinux 설정
위와 같은 방법을 했는데도 불구 접속이 안되는 경우에는 selinux를 의심해 봐야 되는데, 보통은 다 끄고 작업하므로 disabled로 되어있는 경우가 많을 것이다. 그래도 혹시나 모르니 설정 하려면..
#vi /etc/selinux/config
빨간 부분을 disabled 로 설정
저기에 들어갈 설정들은 아래와 같다고 한다.
enforcing -> 보안에 어긋나는 무언가가 발생되면 시스템에서 막아버림(로그도 남기겠지..)
permissive -> 허용은 하는데 로그를 남김
disabled -> 이 기능을 사용안함
자동 실행 하기
#chkconfig vsftpd on (켜기) #chkconfig vsfptd off (끄기)
결론
처음에는 어렵고 복잡한데 계속 반복하다보니 명령어도 외워진다. 껄껄껄.. 하지만 이 수준은 한글 배울때 가나다라 수준..ㅠㅠ