Ubuntu 16.04에서 vsftpd를 이용하여 FTP 접속 포트 변경하기


FTP의 디폴트 접속 포트는 21번이다. FTP 자체가 보안상 약점이 있는데 포트 번호가 21이라는 것까지 기본적으로 알려진 정보이다 보니 FTP의 기본 포트 21번을 다른 포트로 변경하는 작업은 보안상의 기본적인 작업이 되겠다. 물론 FTP보다는 SFTP를 사용해야겠지만 아무튼...


전제조건으로 vsftpd가 설치되어있다고 가정한다. 만일 설치되지 않았다면


# apt-get install vsftpd로 해당 패키지를 설치해야 한다.


Ubuntu의 경우 vsftpd의 환경 설정 파일은 아래 경로에 있다. 이를 vi로 열어서 특정 설정 값을 변경한다.


# vi /etc/vsftpd.conf


파일을 열어보면 listen=NO라는 항목이 있을텐데 그 아랫쪽에 다음 내용을 추가해 준다.


listen_port=1234 (원하는 포트 번호로 설정)


이때 listen=YES로 하면 FTP 접속이 되지않는다. listen의 값은 NO로 해두어야 한다.

이상의 작업이 끝났으면 파일을 저장하고 vsftpd를 재실행해 준다.


# service vsftpd restart


이제부터 FTP 접속은 21이 아닌 1234로 접속이 가능해 진다.




Linux(여기서는 Ubuntu 기준) 서버에 PuTTY를 이용한 SSH로 접속하거나 FileZilla와 같은 FTP로 접속을 하고자 할때 원격에서 FTP, SSH로 접속이 가능하도록 리눅스를 어떻게 구성할것인지에 대해 정리하고자 한다.


Ubuntu Server 버전에서는 기본적으로 SSH로 접속이 가능한지는 테스트해 보지 않아서 잘 모르겠으나(아마도 되는 것으로...) Ubuntu Desktop 버전에서는 최초 설치 상태에서 FTP(FileZilla)나 SSH(PuTTY)로 접속을 시도하면 당연히 연결 실패가 된다.

다음 과정을 통해서 원격에서 접속이 가능하도록 설정해 보자.

기본적인 전제로 root 계정이 생성되어 있고 일반 유저 계정으로 joe라는 계정이 생성되어 있다고 가정한다.

그리고 SFTP로 접속할수 있도록 설정할 것이다.



1. Ubuntu의 기본 FTP 서버용 패키지 설치

# apt-get install vsftpd


⇒ vsftpd만 설치했을 경우는 FileZilla에서 root가 아닌 일반 사용자 계정으로는 접속이 가능하다. 단 SFTP로는 안되고 FTP로 port 21번으로 접속하면 접속이 된다. 참고로 SFTP는 디폴트 포트번호가 22번이다. vsftpd의 다양한 설정에 대해서는 여기서는 생략. vsftpd의 환경 설정 경로는 /etc/vsftpd.conf 파일을 vi로 열어서 환경 설정을 통한 기능들을 조정할 수 있다.


2. SSH 서버 설치

# apt-get install openssh-server


⇒ 여기까지 실행하면 root 계정이 아닌 일반 계정에서는 SFTP로 접속이 가능해 진다.


3. root 계정으로도 SFTP 접속 가능하도록 설정하기

# vi /etc/ssh/sshd_config


⇒ 내용 중에서 PermitRootLogin의 값이 prohibit-password로 되어 있는 것을 yes로 다음과 같이 수정


PermitRootLogin yes


파일 저장 후 ssh restart하기


# service ssh restart


이후부터는 SFTP(port 22)로 정상적으로 접속이 가능해 진다.


이상의 FileZilla의 경우도 동일하게 putty에서도 동일하다.

putty는 접속 포트가 22이다.


그런데 SFTP나 SSH접속(putty)을 root 계정으로 굳이 접속 가능하도록 설정하는 것은 보안상 바람직한 것은 아니다. 왜냐하면 일반 계정으로 접속해서 su command를 이용하여 슈퍼유저로 로그인 해서 사용할수 있기 때문이다. 

물론 이때는 root계정의 비번을 당연히 일반 계정의 비번과 다르게 해야겠지만...




+ Recent posts