[2024.06.19]
[Anonymous FTP]
01. 홈 디렉터리
> /var/ftp/pub
02. 환경 설정 파일
> /etc/vsftpd/vsftpd.conf
1) Anonymous FTP 활성화
> Anonymous_enable=YES
2) 파일 업로드 허용
> /var/ftp/pub <-- 허가권 변경(쓰기 권한 부여)
> anon_upload_enable=YES
pub 디렉터리에 익명으로 로그인할 시 전송 오류가 난다
해당 허가권을 변경해도 여전히 전송 오류가 나타나는데
이 경우에는 31번 라인의 주석을 해제시키면 된다
그럴 경우 이렇게 pub 디렉터리에 업로드가 가능해진다
3) 디렉터리 생성
> anon_mkdir_write_enable=YES
새폴더 생성도 권한이 거부되어 있으므로
35번 라인의 주석을 해제시키게 되면
폴더 생성도 가능해지는 걸 확인할 수 있다
4) 파일/디렉터리 수정/삭제
> anon_other_write_enable=YES
하지만 폴더를 생성하는 건 가능하지만 폴더 이름을 수정하는 것도 삭제하는 것도 불가능한 상태다
그 상태에서 36번 라인의 명령어를 추가시켜 주게 되면 삭제와 이름 변경이 모두 가능해진다
폴더의 이름 변경이 완료된 상태의 화면
폴더를 삭제할 수 있게 되며, 실제 삭제한 후의 화면이다
5) 파일 다운로드
> anon_world_readable_only=NO
파일 디렉터리 수정 및 삭제까지는 가능했지만,
또 다운로드는 따로 다운로드 명령어를 입력해야 된다
똑같이 다운로드 명령어를 넣은 후 저장한 다음
알드라이브로 가서 yrg7 폴더 다운로드를 시도하면 전송이 완료된 것을 확인할 수 있다
6) 특정 이메일 주소 패스워드 사용 금지
> deny_email_enable=YES
> banned_email_file=/etc/vsftpd/banned_emails
이번에는 특정 이메일로 패스워드를 입력할 시 로그인 제한이 되는 명령어를 사용해 보려고 한다
위의 명령어를 입력하고 저장 후에
banned_emails라는 파일에 들어간다
그럼 빈 화면이 나오게 되는데 그 빈 화면에 테스트 할 비밀번호를 적어 넣는다
*anonymous로 로그인할 경우, 통상적으로 패스워드는 이메일로 로그인하게 되어 있다
현재는 아무거나 입력해도 로그인이 되지만, 이론 상으로는 이메일로 패스워드를 입력해 로그인하는 것은 알고 있어야 된다
banned_emails 파일에 test@test.co.kr로 설정해 둔 걸로 패스워드를 입력했을 때 로그인이 되지 않는다
그렇지만 설정해 둔 이메일 주소를 제외하고는 123456으로 입력했을 때
정상적으로 sucessful이 뜨며 로그인이 가능하다
7) 세션 타임아웃 설정
> idle_session_timeout=30
===========================================================================================
> FTP 운영 모드
1) Active Mode
2) Passive Mode
이번에는 포트 번호를 변경하여 설정 후
알드라이브로 로그인 시도 시 로그인이 되지 않는다
2121번의 포트를 만들어 놓지 않았기 때문인데,
다시 방화벽을 켜서 포트 번호를 2121을 추가시킨 후 저장하고 나온다
*프로그램 -> 잡다 -> 방화벽 -> 런타임을 영구적으로 변경 -> 변경 사항 선택 후 옵션에서 불러오기로 저장
하지만 포트 번호를 만들어도 로그인은 가능하지만 데이터를 읽지 못하는 현상이 발생한다
그럴 때는 방화벽을 중지시킨 후
다시 접속을 시도하면 연결이 되는 것을 확인할 수 있다
<Acitve Mode/Passive Mode>
클라이언트가 서버에게 요청하는 것을 Active Mode
서버가 클라이언트에 요청하는 것을 Passive Mode
passive mode에서는 id/pwd만 보낼 시 서버가 응답을 하는데,
서버가 포트 번호가 60000번인 걸 알려 주며 서버의 포트는 60000번이 된다
다시 서버의 포트 번호 60000으로 요청을 하게 되면 이때 passive mode가 된다
active mode에서는 문제가 발생하지 않으나,
passive mode에서는 서버가 랜덤 포트를 잡게 된다
서버에서 2121 포트를 설정해 놓고 방화벽을 닫았지만,
해당 포트로 접속을 시도할 시 접근까지는 가능하나 데이터를 읽어들이기가 불가능해진다
그럴 경우에 서버에서 포트를 고정시켜 접속하는 방법밖에 없다
> 포트 고정
pasv_min_port=50000
pasv_max_port=50000
passive mode에서는 포트 번호가 랜덤 번호로 설정된다
그렇기 때문에 고정 포트 번호를 설정해야 되는데 고정 포트 번호를 50000으로 설정했다
min과 max를 둘 다 50000으로 설정하면 딱 50000의 포트 번호만 잡기 때문에
방화벽으로 넘어가서 포트에서 50000번을 추가하고 저장한다
그 다음 systemctl restart firewalld를 실행시켜 준 후
알드라이브로 넘어가서 접속을 시도하면 로그인이 가능하다
100번 서버에서도 로그인을 시도하고 50번 서버로 넘어가서 tuna를 하게 되면
해당 2121 포트로 로그인 시도된 기록에 포트 번호가 랜덤 번호인 걸 확인할 수 있다
다시의 초기 상태로 되돌려 놓은 다음 로그인 시도 후
다시 tuna로 확인하고 포트 번호가 랜덤 포트인 걸 확인하면 된다
강의 소감
오늘은 중간에 passive mode와 active mode가 나와서 조금 헷갈렸다
서로 주고받는 게 일반 공격과 방어와 비슷해서 헷갈리지만 이 부분은 조금 더 연습해야겠다
오늘은 또 안 되는 부분이 있어 접속이 되지 않는 경우가 잦았다
이 부분도 보완해야 될 점 같다