본문 바로가기

『IT/개발』/Linux

리눅스(linux) 서버에 ftp 로 접속하기.

리눅스(linux) 서버에 FTP 접속하기.


요즘은 sftp 를 접속하지 ftp 접속은 잘 하지 않아요.

나만 그런가...ㅎㅎㅎ

여튼 그래도 혹시나 ftp로 접속을 해야 한다면...따라해보세요.


vsftpd 설치

#yum -y install vsftpd

우선 vsftpd 를 설치해주세요.


config 설정

#vim /etc/vsftpd/vsftpd.config

=> anonymous_enable=NO

vsftpd.config 파일을 여시면 위 문구를 찾아보세요.

처음 값은 아마도 YES 일 거예요. NO 로 바꿔주세요.


iptables 설정

#vim /etc/sysconfig/iptables

=> -A INPUT -m state --state NEW -m tcp -p tcp -s 123.456.789.1 --dport 21 -j ACCEPT

보통 ftp 포트는 막혀 있기 때문에 위 문장을 추가해주세요. ftp 가 필요한 IP 만 허용해주기로 하자.


iptables-config 설정

#vim /etc/sysconfig/iptables-config

=> IPTABLES_MODULES="ip_conntrack_ftp"

원래 IPTABLES_MODULES 에는 빈 값이 들어있을 거예요. 위 값을 넣어주세요.


서비스 재 시작

#service iptables restart

#service vsftpd start


FTP 접속 시도 전에 계정 생성

#adduser guest

#passwd guest 

FTP 는 Default 설정으로 root 접속을 막고 있습니다.

그렇기 때문에 root 접속을 풀기 보다는 새로운 계정을 하나 생성하는 것을 추천합니다.


guest 계정으로 FTP 접속 시도

성공했다면 괜찮지만...SELINUX 를 사용하고 있다면 실패 확률 100% 입니다.


SELINUX 설정

500 OOPS: cannot change directory:/home/guest

요딴 에러가 난다면?

아래 명령어를 수행해보세요.

#getsebool -a | grep ftp 


리스트 중에 ftp_home_dir --> off 라고 보이시죠?

아래 명령어를 수행하세요.

#setsebool -P ftp_home_dir 1 

위 명령어를 이용해서 on 으로 바꿔주세요.


다시 FTP 접속 시도

접속은 되실 거예요.

하지만 폴더 및 파일이 보이지 않으실 거예요.

이것도 SELINUX 때문입니다.

아래 명령어를 수행해 주세요.

#setsebool -P allow_ftpd_full_access 1


그리고 확실하게 하기 위해서 vsftpd 다시 시작

#service vsftpd restart


여기까지 했으면 보통 됩니다.

진짜 혹시나 설마..."227 Entering Passive Mode" 라는 에러가 난다?

그러면 "pasv_enable=NO" 이 문장을 vsftpd.conf 맨 아래 부분에 추가해주세요.

#vim /etc/vsftpd/vsftpd.conf 

맨아래로 이동해서

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

=> pasv_enable=NO     -> 추가


그리고 다시 vsftpd 시작

#service vsftpd restart

이제 진짜!!! 접속이 될 거예요.

FTP 접속 GO GO