SFTP 서버 구축, DNS와 FTP 실습

sso·2025년 4월 22일
0

리눅스 서버

목록 보기
29/40

1. FTP (File Transfer Protocol)

FTP는 TCP/IP 프로토콜 기반으로 서버와 클라이언트 사이에 파일을 주고받기 위한 프로토콜

FTP를 사용하기 위해서는 FTP서버를 구축해야 하고 서버에 접속하기 위한 계정 필요

공개 소프트웨어를 공유하는 서버인 경우에는 익명 계정(anonymous)를 이용해서 사용 가능

vsftp(Very secure ftp daemon)는 간결하고 안전하며 처리 속도도 매우 빠른 프로그램으로 리눅스 및 유닉스 계열에서 사용 가능

dnf -y install vsftpd
systemctl --now enable vsftpd

vsftp 환경 설정 파일
/etc/vsftpd/vsftpd.conf

익명계정 허가 처리

umask - 디렉터리, 파일을 만들 때 부여하는 기본 권한

vsftp가 변경되었으므로 대몬 재시작

systemctl restart vsftpd

vsftpd가 백그라운드에서 실행되고 있는지 확인

firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload

파일질라를 통해 ftp 연결 테스트

  • 익명계정을 허가하였기 때문에 사용자명, 비밀번호를 입력하지 않아도 됨
  • 익명계정을 허가하였기 때문에 anonymous를 입력하여 연결할 수 있음
    사용자명에만 anonymous를 입력하고 비밀번호를 비운 후 연결해도 가능
    사용자명, 비밀번호 모두 anonymous를 입력하고 연결해도 가능

21번 포트에 접속 시도 -> 제어 포트
이후 20번 포트에 접속 -> 데이터 포트

명령어는 21번 포트로 연결되며 파일은 20번 포트로 주고받음

cd /var/ftp
ll

디렉터리 권한이 root로 되어있는데 ftp파일의 권한을 변경해야 파일을 주고받을 수 있음

    1. other에게 권한 부여
      chown 777 pub/
    1. 파일의 소유자를 익명 계정으로 변경
      chown ftp.ftp pub/

리눅스에서는 파일, 디렉터리 이름에 띄어쓰기를 넣지 않는다.
만약 띄어쓰기를 쓰고 싶다면 '' 따옴표를 사용할 수 있다.

파일질라에서 파일 업로드는 되지만 삭제는 되지 않는다.
vi /etc/vsftpd/vsftpd.conf 에서 삭제 옵션 추가 (기본으로 삭제 명령어가 없음)

anon_other_write_enable=YES
systemctl restart vsftpd

파일질라에서 파일 삭제하면 정상적으로 삭제되는것을 알 수 있음

일반사용자로 접근할 경우 해당 디렉터리(home/사용자) 권한이 있으므로 행동에 제약이 없음 (파일 업로드, 삭제 모두 가능)

useradd temp
passwd temp 1234
visudo

sudo su -
sudo 권한이 있을 경우 해당 명령어로 root 변신


Server A, B 초기화
Server B에는 DNS 2명 분량의 도메인을 기입
ftp 서브 도메인에 대해서 중개

Server A에는 FTP 서버를 각각 설정, 상호간 익명 접속 및 상호 간의 니셜로 된 사용자 이름으로 접속

단, FTP 접속 시 IP 사용 금지

Server B DNS 서버

dnf -y install bind
dnf -y install bind-utils
systemctl --now enable named
firewall-cmd --add-service=dns

vi /etc/named.conf

vi /etc/named.rfc1912.zones

zone "slime.com" IN {
type master;
file "slime.com.zone";
allow-update { none; };
};

zone "hero.com" IN {
type master;
file "hero.com.zone";
allow-update { none; };
};

named 오류 확인
named-checkconf

cd /var/named

cp -p named.empty slime.com.zone
cp -p named.empty hero.com.zone

vi slime.com.zone

ftp IN A 10.0.2.196

vi hero.com.zone

ftp IN A 10.0.2.223

named zone 파일 오류 확인
named-checkzone slime.com.zone /var/named/slime.com.zone

systemctl restart named

vi /etc/resolv.conf

nameserver 192.168.111.200

Server A FTP 서버

dnf -y install vsftpd

vi /etc/vsftpd/vsftpd.conf

anonymous_enable=YES

systemctl --now enable vsftpd

vi /etc/resolv.conf

nameserver 192.168.111.200

firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload

GUI 환경으로 파이어폭스에서 파일질라 다운로드

useradd hgd
passwd hgd 1234

파일질라 실행 후 로그인
ftp.slime.com hgd 1234 - 만든 사용자 계정으로 로그인
ftp.slime.com - anonymous로 로그인

만약 hostOS에서 파일질라 접근 시 도메인을 DNS 서버로 입력 후 테스트

profile
오늘도 하나씩 해결해 나가자!

0개의 댓글