반응형

출처:

http://efficient.tistory.com/entry/centos-ftp%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95

http://opencode.co.kr/bbs/board.php?bo_table=linux_tips&wr_id=27

http://ihelpers.x2soft.co.kr/programming/tipntech.php?CMD=print&IDX=690&source=naverclick

http://theeye.pe.kr/archives/1947

http://nemo.pe.kr/441

https://security.appspot.com/vsftpd/vsftpd_conf.html


워드프레스에서 플러그인을 설치할려고 하니까 FTP 서버가 필요하다고 했다.

결국 또 FTP 서버를 만들어줘야 했다.


1. 먼저 vsftpd로 ftp를 설치한다.


yum install vsftpd ftp


2. /etc/vsftpd/vsftpd.conf를 열어 설정을 추가 및 수정한다.


anonymous_enable = no

pasv_enable = no


anonymous_enable:

익명 접속을 허용할 것인가를 설정한다. 나는 그러고 싶지 않아 NO라고 했다.


pasv_enable:

해당 FTP를 액티브 모드(Active Mode)로 할 것인지 패시브 모드로(Passive Mode)로

할 것인지 설정한다.

이에 대해서는 밑에서 설명하겠다.

이것이 없으면 기본적으로 no로 설정되어 액티브 모드가 된다.


3. 계정을 추가한다.

나는 이미 내 계정이 있어서 따로 하진 않았다.

추가는 adduseruseradd로 할 수 있다.

추가할려고 했는데 이미 있다고 하면서 되지 않았다.

삼바와는 다르게 따로 계정을 만들지 않아도 되었다.


4. 방화벽에 규칙을 추가한다.

내부 포트를 개방하지 않으면 패킷은 구천을 떠돌면서 문열어달라고 소리치다가

지쳐 에러를 내뱉을 것이다.


-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT


5. 이 정도 되면 되어야 할 거 같은데 500 cannot change directory 에러를 내뱉는 경우가 있다.

이유는 SELinux 때문인데, ftp 디렉토리의 접근 허가를 위해 다음 명령어를 입력한다.


setsebool -P ftp_home_dir=1


-P는 리부팅 되더라도 이 값을 유지하겠다는 의미이다.


6. 이제는 좀 되면 좋으련만, 425 Failed to establish connection라는 에러가 뜨는 경우가 있다.

앞에서 말한 패시브 모드 기억나는가?

액티브 모드와 패시브 모드의 차이는 다음과 같다.


액티브 모드:

클라이언트가 수신할 포트를 알려주면 서버는 자신의 포트를 통해

클라언트의 임의의 포트로 전송한다.


패시브 모드:

서버가 송신할 포트를 알려주면 클라이언트트는 서버가 알려준 포트로 접속하여 전송받는다.



액티브 모드가 안 먹혔으므로 패시브 모드를 적용해볼 때이다.

아까 /etc/vsftpd/vsftpd.conf를 다시 열어본다.

그리고 다음 내용을 추가한다.


pasv_enable = YES

pasv_min_port=60000
pasv_max_port=60100


아까와는 달리 pasv_enable를 yes로 하는 것은 당연하다.

pasv_min_port는 서버가 송신하려고 열어 둔 임의의 포트들 중 가장 낮은 숫자의 포트를 의미하고,
pasv_max_port는 서버가 송신하려고 열어 둔 임의의 포트들 중 가장 높은 숫자의 포트를 뜻한다.


이 외에도 pasv_promiscuous라는 것도 있는데 pasv 보안 체크를 무시하는 설정이라고 한다.

SSH 터널링 시에 Bad IP Deny 에러가나올 때나 추가해라고 나와있다.

이렇듯 위험해 보이는 설정인지 역시 기본값은 NO이다.

사실 promiscuous라는 뜻이 성생활이 문란한이란 뜻이다 보니,

고자인 나랑은 전혀 어울리지 않아서 지워버렸다.


그리고 /etc/sysconfig/iptables를 편집하여 해당 포트를 열어준 뒤에 iptables를 재시작한다.


A INPUT -m state --state NEW -m tcp -p tcp --dport 60000:60100 -j ACCEPT


이렇게 설정을 마치고 공유기에서 포트포워딩 설정도 마치고 재시작을 하면

FTP 서버로 이용할 수 있다.

반응형
Posted by 애콜라이트
l

free counters