Linux, etc

[linux] ftp 21번 포트 열기

jiheek 2023. 11. 30. 16:30

파이썬에서 ftp 라이브러리를 사용해서 다른 서버의 21번 포트(ftp)로 연결해 파일을 넘겨줄 일이 생겼다.

 

타겟 서버에서 21 포트의 방화벽 규칙만 설정하면 될 줄 알았으나,, 아무리 방화벽 이상이 없는 걸 확인해도 열리지 않았다. ㅠ  vsftpd(= Very Secure FTP Daemon ,  ftp 서버 소프트웨어)도 설치해야 함!

 

 

방화벽 확인

내가 사용한 서버는 iptables 방화벽만 있었는데, firewalld 등 다른 방화벽도 있는지 체크해야 한다.

sudo iptables -L #현재 규칙 확인
iptables -A INPUT -p tcp --dport 21 -j ACCEPT #21번 포트 open 규칙 추가

21번 포트에 대해 어디서든 들어오는 input을 accept한다는 규칙을 추가하고 현재 규칙을 확인하면, 잘 적용된 것을 볼 수 있다!

sudo iptables -L 결과

 

 

설치 및 vsftpd 시작 방법

  1. 패키지 목록을 업데이트
  2. sudo apt update
  3. vsftpd를 설치
  4. sudo apt install vsftpd
  5. vsftpd 서비스를 시작:
  6. sudo service vsftpd start

 

 

nmap -p 21 <server>로 포트 확인

STATE가 open이면 성공이다

 

이젠 이 오류가 생김 ㅠ -> FTP 서버는 열렸으나, 업로드를 허용하지 않았기 때문이다

 

 

 

FTP 서버가 업로드를 허용하도록 하려면 FTP 서버 설정 파일을 열어서 주석 처리된 몇몇 옵션들을 풀어줘야 한다.

설정 파일은 /etc/vsftpd.conf 에 있다!

 

sudo vi /etc/vsftpd.conf

 

 

모두 수정한 후에는 

service vsftpd restart

을 사용해서 서비스를 다시 시작해서 변경 사항을 적용해준다.

 

이제 해결 완료!💥