Linux

22.03.17

가로선 2022. 3. 17. 16:58

 

   목차   

 

1. mkdir 사용 심화

2. FTP 

    - Active mode

    - Passive mode

3. DHCP, FTP 종합 문제

 

 

   mkdir 심화   

 - 만약, 한번에 업무보고서를 달마다 매일 것을 만든다고 한다면?

    - 일일이 만들 수도 있지만 귀찮을 것이다

 - 만약, 중간에 mkdir 같은 명령을 까먹었다면?

 

한번에 만드는 방법

 

중간에 빼먹은 명령어를 넣어서 명령문 작성법

 

 

   FTP   

 

   Active mode   

 

yum remove를 통해 vsftpd 삭제(다시 연습해보기 위함)

    - 중요설정파일인 vsftpd.conf 파일은 삭제되지 않는 것을 볼 수 있다

 

chroot_list도 삭제
vsftpd.conf 설정파일에서 설정

    - ftp라는 디렉터리 생성 후 그 곳에 설정파일, 로그를 모으는 방식으로 진행

    - /ftp/ban 파일을 생성하면 banner 생성

    - anonymous 로그인을 사용하지않기 위해 주석처리

    

vsftpd.conf 설정파일에서 설정

    - xferlog(ftp 로그파일) 사용

        - xferlog는 일반적인 접속로그는 남지않는다

        - 다운로드, 업로드에 관한 로그만 남는다

    - Active mode이므로 20번 포트 사용

    - 로그파일의 저장소를 /ftp/xferlog로 사용

 

vsftpd.conf 설정파일에서 설정

    - 접속 후 3분이 지나면 세션 종료

    - 데이터 전송 중이더라도 60초 지나면 연결 끊기

 

vsftpd.conf 설정파일에서 설정

    - ftp banner를 파일로 하는데 파일위치를 /ftp/ban으로 지정

 

vsftpd.conf 설정파일에서 설정

    - chroot_list를 만들어 지정한 사용자만 chroot 적용

    - chroot_list_file의 위치를 /ftp/chroot로 지정

    - vi편집기를 통해 /ftp/chroot에 a 사용자를 지정

 

vsftpd.conf 설정파일에서 설정

    - 마지막에 꼭 작성하여야 ftp 오류없이 사용 가능

    - tcp_wrappers : 방화벽 통과한 애들이 커널단에서

                                      다시 한번 걸러지게 하는거(IP를 가지고 제어함)

        - allow, deny 두개 다 적용되있을 시 특이하게 allow가 적용된다

        - 하단에서 더 자세히 다루겠다

 

방화벽 설정을 포트가 아닌 서비스로도 가능

    - 보통은 포트로 방화벽 설정을 거는 방식을 많이 선호한다

 

방화벽 설정

    - 포트 추가할 시, --zone도 무조건 사용해야하지만

      default-zone이 public이므로 여기서는 생략가능

 

dhcpd 영구적으로 설정

    - restart나 start로 다시 시작할 때마다 켜줄 필요없이 영구적으로 켜져있게 된다

    - 테스트용 windows 운영체제에서도 방화벽 열어줘야 한다(전 포스팅에 정리)

 

cmd창에서 ftp 접속화면

    - 설정파일에 적용시킨 배너파일이 적용된 것을 볼 수 있다

 

접속 후 지정시간이 지나 세션이 종료됬을 시 다시 켜기

    - open을 사용하면 재연결이 가능하다

 

get(다운로드)

    - get을 통해 서버에 있는 test.txt 파일을 다운로드 할 수 있다

 

클라이언트의 dir 확인

    - 로컬에서 디렉터리를 확인할때 !dir을 사용한다

    - test.txt 파일이 다운로드된 것을 볼 수 있다

 

로컬에서 디렉터리 변경 후, 다운로드 하기

    - 서버에서는 cd로 디렉터리를 이동하지만, 로컬에서는 lcd로 이동한다

    - get을 통해 다운로드한 a.txt가 바탕화면에 들어가진 것을 확인할 수 있다

        - test.txt와 a.txt가 동시에 있어야 하지만, 실수로 test.txt를 삭제하여 안보이는 것!

 

put을 통해 서버로 업로드 진행

 

서버에서 a의 홈디렉터리에 aa.txt가 옮겨진 것을 확인

 

get, put 종합

    - 데스크탑으로 이동하여 get을 통해 test.txt 파일을 바탕화면에 다운로드한 것을 확인할 수 있다

    - put을 통해 test.txt와 bb.txt를 서버에 업로드한 것을 확인할 수 있다

 

mget 사용(다중 다운로드)

    - mget *.txt를 통해 a의 홈디렉터리에 있는 .txt 파일 모두를 다운로드할 수 있다

 

   FileZilla 사용   

 

FileZilla 방화벽 설정(프로그램으로 진행)

 

FileZilla 방화벽 설정 끝

 

FileZilla 사이트 생성(파일 - 사이트 관리자)

 

New site를 통해 200.200.200.5(서버 ip)를 생성 후, 우측에 호스트와 사용자를 입력해준다

    - 호스트 : 접속대상의 IP

 

전송 설정에서 Active mode이므로 능동형으로 설정

    - 기본으로 해도 상관은 없지만 진행하다가 예상치 못한 오류들이 발생할 수 있으므로 능동형으로 선택

 

연결이 잘 되어서 디렉터리 및 파일의 목록들이 보여지는 것을 확인

 

W11-1도 마찬가지로 진행 후, 사용자를 b로 입력

 

연결이 잘되며 b는 chroot가 적용되지 않았으므로 상위 디렉터리로의 이동이 가능하다

 

   Passive Mode   

 

vi /etc/firewalld/zones/public.xml

    - 방화벽 설정할 때, permanent를 사용하여 설정파일에 저장이 된 것을 볼 수 있다

    - passive mode 사용을 위해 2개다 삭제해 준다

 

삭제 후에 reload 필수

 

anonymous 계정 사용을 막기 위해 주석 처리

 

xferlog 사용 및 포트 사용 차단

    - passive mode 이므로 능동형 포트인 20번 포트를 사용하지 않는다

 

로그파일 위치와 세션 및 데이터 전송 timeout 설정

 

배너를 파일로 설정 후, 배너파일 위치 지정

 

chroot를 list에 지정된 사용자만 적용되게 하고, chroot_list의 위치 지정

 

allow_writeable_chroot를 적용해야 사용 가능 및 passvie mode 만의 설정 적용

    - pasv_enable=YES : passive mode 사용

    - pasv_min_port=65000 : 최소 포트를 65000으로 지정

    - pasv_max_port=65100 : 최대 포트를 65100으로 지정

 

방화벽 설정

    - 21번은 인증 및 제어 포트이므로 열어줘야 한다

    - 65000 ~ 65100처럼 연속되는 포트는 이런식으로 표현이 가능하다

 

FileZilla에서 passive mode이므로 전송 설정을 수동형으로 변경

 

netstat를 통해 protocol들 확인

    - netstat : 네트워크 접속, 라우팅 테이블, 네트워크 인터페이스의 통계 정보를 보여주는 도구

        - n : port 번호를 서비스 이름으로 변경불가능 하게 막는 옵션

        - a : 모든 포트 표시

        - p : 프로세스를 사용하고 있는 프로그램의 이름을 보여줌

 

FileZila를 통해 업로드를 진행

 

업로드 진행동안 65004 포트가 사용되는 것을 볼 수 있다

    - 지정한 포트인 65000 ~ 65100 사이에서 포트가 임의로 사용되어지는 것을 확인할 수 있다

 

W11-1에서도 확인이 가능

 

tcp_wrappers 설정

    - 앞서 얘기한 것처럼 다시 한번 거르는 것이다

    - hosts.allow와 hosts.deny에 IP가 전부 설정되어있다면, deny는 무시된다

 

hosts.allow에 w10-1, w11-1의 IP를 추가

 

hosts.deny에 w11-1의 IP를 추가

    - allow, deny 중 누가 이기나 확인하기 위해 진행

 

hosts.deny에 적용되있는데도 접속되어지는 것을 볼 수 있다

    - allow가 이기는 것을 확인할 수 있다

 

hosts.allow에서 w11-1의 IP를 제거

 

deny에만 IP가 적용되 있어서 서버에 연결이 되지 않는다

 

 

   DHCP, FTP 종합문제   

 

   문제   

 

사진으로 대체

 

   풀이   

 - 기존에 설치된 dhcp, vsftpd 삭제하고 진행

 

IP할당

    - DNS2까지 적어줘야 한다

        - 10.0.0.1에는 DNS서버가 따로 없으므로

           DNS가 URL을 IP로 변경해서 해석하지 못한다

        - DNS2(Kornet, google 등)가 있어야 URL 해석이 가능해져 인터넷 접속이 된다

 

VM에서도 IP 설정

 

인터넷 통신을 위해 Host PC의 NIC의 IP도 변경

 

XShell 사용을 위해 호스트 IP(리눅스 서버 IP)로 변경

 

/etc/dhcp/dhcpd.conf(dhcp 설정파일)

    - 문제에 정해진 대로 설정값 변경

    - :$ r /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example 사용해서 가져오기

 

dhcp 사용

    - enable을 사용하여 다음 사용시에도 알아서 시작되게 설정

 

W10-1에 DHCP할당 후 확인

    - ipconfig /release, ipconfig /renew 사용

 

W11-1에 DHCP할당 후 확인

 

문제에 주어진 사용자들 생성

 

사용자들 제대로 생성되었는지 확인

 

문제에 주어진 파일들 각각 생성

 

문제풀이를 위해 지웠던 vsftpd 설치

 

설정파일 및 로그파일을 담기위한 디렉터리 만들기

    - 문제에서 /data였으나 실수로 /ftp로 진행하였다

 

/ftp/chroot 에 chroot를 적용시킬 사용자 입력

 

/ftp/ban 파일에 ftp 접속시 보여질 배너 생성

 

문제에 주어진 anonymous 계정 사용금지를 위해 주석처리

 

Passive mode이므로 20번 포트 사용하지 않기 위해 주석처리

 

로그파일 저장위치 지정

 

문제에 주어진대로 timeout 시간 설정

 

배너 파일 위치 설정

 

chroot_list를 사용하고 list 위치를 지정

 

passvie mode를 사용하며, 문제에 주어진 대로 포트 지정

 

설정파일에서 설정완료 후 vsftpd 시작

 

ftp 설정완료 후 접속이 잘 되는 것을 볼 수 있다

 

tcp-wrapper 설정

 

tcp-wrapper 설정

 

방화벽 설정

 

FileZilla에서 접속

 

Passive mode 사용중이므로 수동형으로 변경

 

W10-1의 Filezilla에서 aa사용자로 접속이 잘되는 것 확인

 

포트사용을 확인해 보기 위해 aa.txt를 업로드 진행

 

업로드 동한 60056포트를 사용하는 것을 볼 수 있다

    - 정해둔 포트인 60000 ~ 60100 사이의 포트를 사용하는 것을 확인할 수 있다

 

W11-1의 Filezilla에서 bb 사용자로 접속

 

tcp-wrapper에서 deny 시켜놨으므로 서버에 접속이 안되는 것을 확인