ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CentOS 7] VSFTP 서버
    Linux/CentOS 2018. 4. 4. 16:54

     FTP 서버의 기본 기능이라 할 수 있는 파일 다운로드 및 업로드 설정하는 방법과 사용자 관리, SSH를 이용한 SFTP와 SSL/TLS를 이용한 안전한 FTPS 서버 구축까지 설명하겠다. FTP(File Transfer Protocol) 서비스는 인터넷상에서 대량의 파일 전송 을 위해 사용되는 프로토콜이다. 인터넷을 통한 대량의 파일 송수신을 목적으로 하기 때문에 구조가 다른 인터넷 서비스에 비해 단순하고 직관적이며, 빠른 속도로 서비스를 제공할 뿐 아니라 사용하기가 편리하다는 점이 FTP 서비스가 가진 장점이다. 

     리눅스 상에서 FTP 서비스를 제공하는 서버용 프로그램이 여러 가지 있는데, WU-FTP, ProFTP 등 오랜 기간 사용자들로부터 많은 사랑을 받아왔으나 현재 레드햇 리눅스 및 페도라, 그리고 CentOS7에서 기본 FTP 프로그램으로 사용되고 또한 보안 기능이 뛰어난 VSFTP 프로그램을 사용해 FTP 서버를 구축하는 방법을 설명한다.



    1. FTP 서비스의 작동 원리와 VSFTP 소개



    1.1 FTP 서비스 작동 원리

    FTP는 프로토콜 TCP와 두 개 포트 20번과 21번을 사용해 서비스를 제공한다. FTP가 서비스 제공을 위해 두 개의 포트를 사용하는 이유는 접속 및 제어를 위한 포트와 데이터 전송을 위한 포트가 서로 다르기 때문이다. 여기서 포트 21번은 접속 및 제어를 위한 명령 전달 등으로 사용된다고 해서 Control 포트 (Command), 그리고 포트 20번은 데이터를 전송한다고 해서 Data 포트라고 한다. 이렇게 두개의 포트를 이용해 서비스를 제공하는 FTP는 Active 모드와 Passive 모드로 분류할수 있는데, 그 차이점은 포트를 앞에서 언급한 한 두 개의 포트 20번과 21번을 사용하느냐 아니면 다른 포트를 사용하느냐에 따라, 그리고 세션 연결을 클라이언트와 서버 중 누가 먼저 하느냐에 따라 서비스 모드가 각각 달라진다.


    A. Active 모드

    1. 클라이언트는 임의의 포트를 사용해 ftp 서버의 21번(Command)으로 접속을 시도해 성공한다.

    2. 이때 클라이언트는 FTP 서버에게 데이터 전송을 위한 클라이언트의 포트가 몇 번인지 알려준다. 그림 10-1에서는 포트 1501번을 사용했다.

    3. FTP 서버는 클라이언트가 알려준 포트(1501)로 접속을 시도하고 클라이언트가 접속을 허락하면 포트 20번(data)을 통해 데이터 전송이 이뤄진다.


     Active 모드의 문제점은 3단계에서 발생하는데, FTP 서버가 먼저 포트 20번을 사용해 클라이언트의 열린 포트로 접속할 때 클라이언트에 방화벽이 설치돼 서버로부터의 접속을 차단하거나 클라이언트 컴퓨터가 연결된 공유기 또는 ISP에서 외부에서의 접속을 허용하지 않는다면 FTP 동작이 제대로 이뤄지지 않는다는 점이다. 이러한 문제의 보안책으로서 Passive 모드가 사용될 수 있다.


    B. Passive 모드

    1. 클라이언트에서 FTP 서버의 포트 21번으로 연결을 시도해 성공한다. 

    2. 이때 FTP 서버는 클라이언트에게 서버의 어느 포트를 사용해 데이터를 전송할지 알려준다. 보통의 경우 FTP 서버는 1024번 이후의 포트를 사용해 이 서비스를 제공

    3. 클라이언트는 서버가 알려준 포트(2024)로 접속을 시도해 연결에 성공하면 데이터 전송이 이뤄진다. 이때 서버의 포트 20번은 사용되지 않는다.


     Passive 모드의 문제는 일반적으로 서버의 서비스 제공을 위해 사용되는 포트의 범위인 1024번 이후의 포트를 사용한다는 점이다. 이렇게 하기 위해서 서버의 방화벽은 서버의 1024번 이후의 포트도 모두 개방해야 하는 정책을 사용해야 한다. 일반적으로 인터넷 서버의 서비스는 포트 1024번 이내에서 제공되기 때문에 방화벽 정책상 그 이후의 포트 또한 모두 필터링할 수 없다는 문제가 발생하게 된다. 그러나 대부분의 FTP 서버 프로그램은 Passive 모드 사용 시 사용할 포트를 제한적으로 설정할 수 있는 기능을 제공함으로서 이러한 문제에 대한 해결책을 제공하고 있다.



    1.2 VSFTP 프로그램에 대한 간단한 소개

     VSFTP는 Very Secure FTP 데몬이라는 의미로서 GNU GPL 라이센스 관리하에 배포되고 있는 FTP 서버용 프로그램이다. 현재 레드햇, CentOS, 페도라, 우분투, 수세 리눅스 등에서 기본적으로 채택돼 사용되고 있는 FTP 서버 프로그램으로서 가장 안정적이면서 빠른 속도로 서비스를 제공할 뿐 아니라 보안면에서도 뛰어난 성능으 자랑한다. VSFTP는 기본적인 파일 업로드와 다운로드 기능부터 IPv6 지원, 사용자 접근 제어, 가상 사용자 지원, SSL/TLS를 이용한 암호화 기능을 구현하는 FTP 및 SSH를 이용한 SFTP까지 다양한 기능을 지원하고 있다.





    2. VSFTP 기본 설정



    2.1 VSFTP 서비스 시작


    A. VSFTP 서비스 설치와 시작

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    1. yum을 이용해 FTP VSFTPD 패키지 설치
    [root@pdtftp ~]# yum install vsftpd -y
    2. rpm 명령어로 패키지 설치 및 버전 정보를 확인
    [root@pdtftp ~]# rpm -qa | grep vsftp
    vsftpd-3.0.2-22.el7.x86_64
    3. 부팅 이후에도 자동으로 서비스가 시작되도록 설정
    [root@pdtftp ~]# systemctl enable vsftpd
    4. 서비스를 시작
    [root@pdtftp ~]# systemctl start vsftpd
    5. 서버가 정상적으로 작동하고 있는지 확인 
    [root@pdtftp ~]# systemctl status vsftpd
    ● vsftpd.service - Vsftpd ftp daemon
       Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
       Active: active (running) since 수 2018-02-28 18:09:49 KST; 3 weeks 4 days ago
     Main PID: 15492 (vsftpd)
       CGroup: /system.slice/vsftpd.service
               └─15492 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
     2월 28 18:09:49 pdtftp.soribada.com systemd[1]: Starting Vsftpd ftp daemon...
     2월 28 18:09:49 pdtftp.soribada.com systemd[1]: Started Vsftpd ftp daemon.
    6. 프로세스 확인
    [root@pdtftp ~]# ps -ef | grep vsftpd
    root       749   632  0 12:51 pts/1    00:00:00 grep --color=auto vsftpd
    root     15492     1  0  2월28 ?      00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
    7. FTP 서버가 사용하는 포트 21번이 오픈돼 서비스 제공 중인지 확인
    [root@pdtftp ~]# netstat -tulpn | grep :21
    tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      15492/vsftpd
    8. FTP 서버가 사용하는 포트 20번과 21번은 서비스 정의 파일에 정의돼 있다. 포트를 변경할 이 파일을 
    사용해 변경하고 FTP ㄹ정 파일에서 포트를 변경하면 새로운 포트를 이용한 FTP 서비스가 적용된다. 
    [root@pdtftp ~]# grep ftp /etc/services
    ftp-data        20/tcp
    ftp-data        20/udp
    # 21 is registered to ftp, but also used by fsp
    ftp             21/tcp
    ftp             21/udp          fsp fspd
    cs


    B. FTP 서비스 방화벽에 등록

     Iptables 방화벽과 Firewalld 방화벽에서 FTP 서비스를 허용하는 방법이다. 상황에 따라 한 가지 방화벽만 선택해서 사용하자.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    1. Iptables방화벽이 목적지포트 21번으로의 연결을 허용하게 한다.
    [root@pdtftp ~]# iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
     
    2. FTP 서비스 연결 포트 21번을 소스 포트로 설정된 패킷이 외부로 연결할 수 있게 허용한다. 
    이 경우 Iptables 규칙에서 ㅣ본 OUTPUT 정책을 DENY로 설정한 경우에 필요하다.
    [root@pdtftp ~]# iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
     
    3. Iptables가 데이터 전송 포트 20번도 마찬가지로 허용한다.
    [root@pdtftp ~]# iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
     
    4. 데이터 전송 포트 20번을 소스로 하는 패킷 외부로의 연결 또한 허용한다.
    [root@pdtftp ~]# iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    5. Firewalld 방화벽에 FTP 서비스를 등록해 그 서비스 제공을 허용한다.
    [root@pdtftp ~]# firewall-cmd --permanent --add-service=ftp
    FirewallD is not running
     
    6. 등록된 서비스가 적용되도록 Firewalld를 다시 시작하고 서비스 목록을 확인한다.
    [root@pdtftp ~]# firewall-cmd --reload
    FirewallD is not running
    [root@pdtftp ~]# firewall-cmd --list-services
    dns ftp http https mysql nfs ssh
    cs



    2.2 Anonymous 사용자 파일 업로드와 다운로드 설정

     FTP 서비스 설치 및 시작, 그리고 방화벽 등록까지 모두 마쳤다면 다음에 FTP 서버에 접속 가능하지만 특정한 계정이 없는 임의의 사용자들(Anonymous)에게 파일 업로드 및 다운로드를 허용하기 위한 방법을 살펴보자.


    A. FTP 서버에서 설정

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    1. vsftp 서버의 기본 설정 파일
    [root@pdtftp ~]# cat /etc/vsftpd/vsftpd.conf
    # Anonymous 사용자들에게 다운로드를 허용하기 위해 사용한다. NO를 사용하면 다운로드를 허용하지 않음
    anonymous_enable=NO
    # Anonymous 사용자들에게 업로드를 허용하기 위해 사용하는 옵션이다.
    anon_upload_enable=YES
    # Anonymous 사용자들에게 업로드를 허용한 후에 실제 파일 쓰기 기능을 허용
    write_enable=YES
    # Anonymous 사용자들이 파일 업로드에 특정 디렉토리 생성을 허용하기 위해 사용하는 옵션
    anon_mkdir_write_enable=YES
    # Anonymous 사용자들이 파일을 업로드하면 그 파일의 소유권자를 누구로 할지 지정할 수 있는 옵션인데, 
    # 사용자 이름을 ftp로 지정하고, Anonymous 사용자들이 업로드한 모들 파일의 소유권자를 ftp로 변경한다.
    chown_uploads=YES
    chown_username=ftp
    # Anonymous 사용자가 업로드한 파일의 권한을 지정하는 옵션
    anon_umask=077
     
    2. 파일 업로드응 허용할 경우 기본적으로 이 업로드된 파일을 저장할 디렉토리를 생성하고, 업로드된 파일의 소유권
    root(user)와 ftp(group)로 설정한다. 이 디렉토리의 권한을 733으로 설정해 파일 업로드를 허용해줘야 한다.
    [root@pdtftp ~]# mkdir /var/ftp/incoming
    [root@pdtftp ~]# chown root:ftp /var/ftp/incoming/
    [root@pdtftp ~]# chmod 773 /var/ftp/incoming/
    [root@pdtftp ~]# systemctl restart vsftpd
    cs


     파일 총 권한 

     FTP Umask 

     파일 권한 

     최종 권한 

     777

     077 

     700 - 111 

     600 

    파일과 디렉토리에 부여 가능한 총 권한이 777인데, 여기서 FTP Umask 077을 빼주면 권한이 700이 된다. 여기서 디렉토리는 이 권한이 그대로 적용되지만, 파일인 경우 실행 권한 (1 = x)을 제외하기 위해 111을 빼주면 최종 권한은 600이 된다. 


    B. FTP 클라이언트에서 테스트 (node1)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    1. FTP 클라이언트 프로그램 lftp 패키지를 설치
    [root@pdtftp incoming]# yum -y install lftp
     
    2. 설치 이후 lftp를 이용해 ftp 서버인 localhost 접근을 시도한다.
    [root@pdtftp ~]# lftp localhost
     
    3. 디렉토리 목록을 확인하기 위해 명령어 ls를 사용한다. 
    lftp localhost:~> ls
    drwxrwx-wx    3 0        50           4096 Mar 27 01:54 incoming
    drwxr-xr-x    2 0        0            4096 Mar 27 02:06 pub
     
    4. 일반적으로 incoming 디렉토리는 파일 업로드를 위해 사용되고, pub 디렉토리는 파일 다운로드를 위해 사용되는데,
    여기서 파일 다운로드를 위해 명령어 cd를 사용해 디렉토리를 변경한다.
    lftp localhost:~> cd pub
    cd 성공, cwd=/pub
    lftp localhost:/pub> ls
    -rw-r--r--    1 0        0            1056 Mar 27 02:06 epel-testing.repo
     
    5. 현재 pub 디렉토리에는 elep-testing.repo 파일 한 개만 있는데, 파일을 다운로드하기 위해 명령여 get을 사용 
    lftp localhost:/pub> get epel-testing.repo
    1056 bytes transferred
     
    6. 파일 업로드 테스트를 위해 디렉토리를 변경한다.
    lftp localhost:/pub> cd ../incoming/
     
    7. 업로드 명령어 put을 사용해 /etc/passwd 파일을 업로드한다. 이것을 해석하면 localhost의 /etc/passwd 파일을
    현재 FTP 서버가 작동 중인 호스트 /var/ftp/incoming 디렉토리로 업로드한다는 의미가 된다.
    lftp localhost:/incoming> put /etc/passwd
    1393 bytes transferred
     
    8. 디렉토리 생성 테스트를 위해 명령어 mkdir을 사용해 디렉토리 ㅐㅇ성
    lftp localhost:/incoming> mkdir node1
    mkdir 성공, `node1'' 만들었습니다
     
    9. 종료
    lftp localhost:/incoming> exit
     
    10. 생성된 파일 권한 및 소유권 확인
    [root@pdtftp incoming]# ll
    drwx------2 ftp ftp 4096  3월 27 10:54 node1
    -rw-------1 ftp ftp 1393  3월 27 10:54 passwd
    cs



    2.3 FTP 사용자 계정을 위한 설정


    A. FTP 계정 사용자 접속 허용을 위한 기본 설정

     리눅스 서버에 등록된 계정 사용자에게 FTP 서버 접속을 허용하기 위한 설정은 다음과 같다. 등록된 계정 사용자는 기본적으로 /etc/passwd와 /etc/shadow 파일에 정보가 저장된 사용자를 의미한다. 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    1. 주 설정 파일을 열어서 로컬 계정 사용자의 FTP 서버 접근을 허용하기 위해 설정한다.
    [root@pdtftp incoming]# cat /etc/vsftpd/vsftpd.conf | grep local
    # Uncomment this to allow local users to log in.
    local_enable=YES
    #계정 사용자가 파일 업로드나 디렉토리를 생성한 경우 할당되는 권한을 의미 (디렉토리755 파일644)
    local_umask=022
     
    2. 변경 사항을 적용하기 위해 vsftpd 재시작
    [root@pdtftp ~]# systemctl restart vsftpd
     
    3. 클라이언트 호스트에서 사용자 testuser이 pdtftp(master)로 접근을 시도한다.
    [root@client incoming]# lftp -u testuser pdtftp
    비밀번호:
     
    lftp testuser@pdtftp:~> ls
     
    4. 파일 업로드 테스트를 위해 put을 사용해 /etc/passwd파일을 업로드한다.
    lftp testuser@pdtftp:/> put /etc/passwd
    1393 bytes transferred
     
    lftp testuser@pdtftp:~> ls (testuser 계정 홈디렉토리)
    -rw-r--r--    1 1005     1005         1393 Mar 27 02:29 passwd
     
    5. FTP 서버에서 프로세스 확인 명령어 fuser를 사용해 ftp 서비스와 프로토콜 tcp를 조회해보면 
    프로세스 3064를 사용하고 있음을 알 수 있다.
    [root@pdtftp incoming]# fuser -v ftp/tcp
                         USER        PID ACCESS COMMAND
    ftp/tcp:             root       3056 F.... vsftpd
                         nobody     3059 F.... vsftpd
                         testuser   3064 F.... vsftpd
    cs


    B. 특정 사용자의 FTP 서버 접속 금지

    모든 계정 사용자의 FTP 서버 접속을 헝요하지만 어느 특정 사용자가 FTP 서버로 접근할 수 없도록 금지할 경우 /etc/vsftpd/ftpusers 파일을 사용할 수 있다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    1. 특정 사용자의 FTP 서버 접근 금지 설정을 위해 설정 파일인 /etc/vsftpd/ftpusers 파일을 열어서 testuser 추가
    [root@pdtftp vsftpd]# cat /etc/vsftpd/ftpusers
    # Users that are not allowed to login via ftp
    root
    bin
    daemon
    adm
    lp
    sync
    shutdown
    halt
    mail
    news
    uucp
    operator
    games
    nobody
    testuser
     
    2. 설정 적용을 위해 데몬 재시작
    [root@pdtftp vsftpd]# systemctl restart vsftpd
     
    3. ftpusers파일을 이용한 FTP 사용자 접근 제어는 사용자 인증에 사용되는 모듈 PAM의 pam_listfile.so 모듈을 이용해 가능하다.
    이를 위해 /etc/pam.d/vsftpd 파일에서 인증을 담당하는 auth에서 이 설정을 발견할 수 있고, 이 문장을 해석하면 ftpusers에 등록
    된 사용자는 접근 금지(sense=deny)되는데, 설정한 파일이 없거나 파일명이 다르면 접속을 허용(onerr=succeed)하라는 의미다.
    sense=allow를 사용하면 ftpusers 파일에 등록된 사용자만 접속을 허용하라는 의미가 되며, 에러가 발생해 접속을 허용치 않는 경우
    onerr=fail을 사용하면 된다. 
    [root@pdtftp vsftpd]# cat /etc/pam.d/vsftpd | grep sense
    auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
     
    4. VSFTP가 PAM에서 사용하는 서비스 이름을 의미하고, vsftp가 인증 서비스로서PAM을 사용한다는 의미다.
    [root@pdtftp vsftpd]# cat /etc/vsftpd/vsftpd.conf | grep pam_service
    pam_service_name=vsftpd
     
    5. 테스트를 위해 클라이언트 호스트 client에서 계정 사용자 testuser과 패스워드를 사용해 pdtftp(master)로 접근을 시도한다.
    [root@client ~]# lftp -u testuser pdtftp
    비밀번호:
     
    6. 정보를 볼 수 없다.
    lftp testuser@pdtftp:~> ls
    `ls'' at 0 [명령어 전송중...]
    ls: 로그인 실패: 530 Login incorrect.
     
    7. 마스터 서버 인증 관련 로그 파일 /var/log/secure 파일을 명령어로 보면 testuser가 인증에 실패해서 vsftpd
    서비스의 접근이 거부됐다는 메시지를 볼 수 있다.
    [root@pdtftp ~]# tail -f /var/log/secure
    Mar 27 12:00:12 pdtftp vsftpd[3240]: pam_listfile(vsftpd:auth): Refused user testuser for service vsftpd
    cs


    C. 특정 사용자의 FTP 서버 금지 두 번째 방법

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    [root@pdtftp ~]# cat /etc/vsftpd/vsftpd.conf
    # userlist 기능을 사용하겠다고 설정한다. (Default)
    userlist_enable=YES
    # 기본적으로 보이지 않는데, userlist 기능을 사용하기 위해 옵션을 추가하면 
    # /etc/vsftpd/user_list 파일에 등록 된 계정 사용자만 접속을 허용한다는 의미 
    userlist_deny=NO
    # 기본적으로 적용되는 설정으로 /etc/vsftpd/user_list파일에 등록된 계정 사용자는 결코 접근이 
    # 허용되지 않으며 패스워드 요구하는 프롬프트도 보이지 않는다는 의미
    userlist_deny=YES
    # FTP 서버에 등록된 계정 사용자가 아닌 임의의 사용자가 패스워드로 이메일을 사용할 경우
    deny_email_enable=YES
    # 이 파일에 등록된 이메일 주소를 패스워드로 사용하면 접속을 거부한다는 설정이다. 기본 설정은 NO
    banned_email_file=/etc/vsfptd/banned_emails
    # 모든 계정 사용자에게 FTP 서버 접속 시 chroot를 적용하라는 의미다. 여기서 chroot란 Change Root Directory의 의미로
    # 계정 사용자가 접근 가능한 최상위 디렉토리가 자신의 홈디렉토리로 제한된다는 의미다.
    chroot_local_user=YES
    # 계정 사용자에게 chroot가 적용된 자신의 홈 디렉토리로의 접근을 허용한다.
    allow_writeable_chroot=YES
    # chroot 예외 설정을 위한 기능을 활성화한다.
    chroot_list_enable=YES
    # chroot를 모든 계정 사용자에게 적용했지만 예외로 chroot 기능을 적용하지 않을 사용자를 정의하기 위해 사용하는 옵션
    # 즉, /etc/vsftpd/chroot_list 파일에 등록된 사용자는 chroot가 적용되지 않고 최상위 디렉토리 접근을 허용한다.
    chroot_list_file=/etc/vsftpd/chroot_list
    cs


    2. USERLIST 테스트하기

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    1. userlist 기능을 활성화한 뒤에 userlist_deny=NO를 통해 특정 사용자만 접속을 허용하고 나머지는 금지한다.
    반대로 설정하면 파일에 등록된 사용자만 접속을 금지하고 나머지는 접속을 허용한다.
    [root@pdtftp vsftpd]# vim /etc/vsftpd/vsftpd.conf
    userlist_enable=YES
    userlist_deny=NO
     
    2. 설정 적용을 위해 데몬 재시작
    [root@pdtftp vsftpd]# systemctl restart vsftpd
     
    3. 클라이언트 호스트에서 pdtftp(master) 호스트 사용자 testuser로 접속을 시도하고 패스워드를 입력하면 된다.
    [root@client vsftpd]# lftp -u testuser pdtftp
    비밀번호:
    lftp testuser@pdtftp:~> ls
    -rw-r--r--    1 1005     1005         1393 Mar 27 02:29 passwd
    lftp testuser@pdtftp:/> !
     
    [root@pdtftp vsftpd]# useradd testuser1
     
    4. 사용자만 testuser1으로 변경해서 접속하면 올바른 패스워드를 입력해도 "permission denied"라는 메시지와 
    [root@clinet vsftpd]# lftp -u testuser1 pdtftp
    비밀번호:
    lftp testuser1@localhost:~> ls
    ls: 로그인 실패: 530 Permission denied.
    cs


    3. chroot 테스트하기

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    1. 설정 파일을 열어서 계정 사용자들에게 chroot 기능을 적용하기 위한 설정을 추가하고, 
    더불어 chroot 기능 적용을 하지 않을 사용자 등록을 위해 chroot_list 파일을 정의한다.
    [root@pdtftp vsftpd]# cat /etc/vsftpd/vsftpd.conf | grep chroot
    chroot_local_user=YES
    allow_writeable_chroot=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
     
    2. chroot_list 파일을 생성해 사용자 testuser1을 등록한 후 vsftpd 서버를 다시 시작한다.
    [root@pdtftp ~]# cat /etc/vsftpd/user_list  | grep testuser
    testuser1
    [root@pdtftp ~]# systemctl restart vsftpd
     
    3. 클라이언트 호스트에서 사용자 testuser1으로 접속을 시도한 후 디렉토리 상위 디렉토리로 이동해 목록 보기를 사용하면
    /home 디렉토리의 모든 사용자 목록을 확인할 수 있다. 또한 /etc/passwd 파일을 다운로드할 수 있다. 
    즉, chroot가 적용되지 않는 사용자는 시스템 최상위 디렉토리까지 이동할 수 있어서 조심해야 한다.
    [root@clinet ~]# lftp -u tsetuser1 pdtftp
    lftp tsetuser1@pdtftp:~> pwd
    ftp://tsetuser1@pdtftp
    lftp tsetuser1@pdtftp:~> cd ..
    cd ok, cwd=/home/tsetuser1/..
    lftp tsetuser1@pdtftp:~> ls
    lftp tsetuser1@pdtftp:~> get /etc/passwd
    5200 bytes transferred
     
    4. 이번에는 chroot가 적용된 사용자 lee가 접속을 시도해 상위 디렉토리 명령어로 이동 후에 파일 목록 보기를 사용하면
    사용자 lee는 chrootㅏ 적용돼 접속이 가능한 최상위 디렉토리가 /home/lee로 제한돼 다른 디렉토리의 이동이 불가능하게 된다.
    [root@clinet ~]# lftp -u lee pdtftp
    lftp lee@pdtftp:~> pwd
    ftp://lee@pdtftp
    lftp lee@pdtftp:~> cd ..
    lftp lee@pdtftp:~> ls
    cs





    3 VSFTP 고급 및 기타 기능 설정


     VSFTP의 고급 기능이라 할수 있는 서버로의 접근을 제어하는 방법과 가상 사용자를 설정하는 방법, 그리고 기타 VSFTP 서버의 기능을 설명한다.


    3.1 접근과 연결 제한


    A. TCP_WRAPPER를 이용한 접근 제어

     TCP_WRAPPER는 libwrap 라이브러리를 이용해 네트워크 서비스에게 접근 제어를 제공하는 프로그램이다. VSFTP 서버는 기본적으로 이 프로그램을 사용할 수 있도록 설정돼 있다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    1. TCP_WRAPPER를 사용하겠다고 정의한다. tcp_wrapper가 설치돼 있지 않다면 yum install을 이용해 설치
    [root@pdtftp ~]# cat /etc/vsftpd/vsftpd.conf | grep tcp
    tcp_wrappers=YES
    [root@pdtftp ~]# yum install tcp_wrappers
     
    2. TCP_WRAPPER가 접근 금지를 위해 사용하는 /etc/hosts.deny 파일을 열어서 모든(ALL) 네트워크로부터 VSFTP
    서버로의 접근을 금지한다는 규칙을 생성한다. 
    [root@pdtftp ~]# cat /etc/hosts.deny | grep -v "^#"
    vsftpd:ALL
     
    3. 접근을 허용할 네트워크 주소를 정의하기 위해 tset.com의 모든 호스트에 접근을 허용하고 
    192.168.80과 192.168.10 네트워크 접근도 모두 허용한다는 의미다. 
    [root@pdtftp ~]# cat /etc/hosts.allow  | grep -v "^#"
    vsftpd:*.test.com 192.168.80.0/255.255.255.0 192.168.10.
     
    4. 테스트를 위해 tcpmatch를 이용해 vsftpd 서비스에 대해 client를 조회하면 접속이 허용되있음을 알 수 있다.
    [root@pdtftp ~]# tcpdmatch vsftpd client
    client:   hostname client
    client:   address  192.168.80.16
    server:   process  vsftpd
    access:   granted
     
    # 참고 : TCP_WRAPPER의 기본 규칙
    1. 두 파일 중 /etc/hosts.allow 파일은 /etc/hosts.deny 파일보다 우선순위에 있어서 hosts.allow에 있는 
    규칙이 먼저 해석된다. 그러므로 hosts.deny에 있는 규칙과 겹친다면 이 규칙들은 무시되고 적용되지 않는다.
    2. 한 파일 내에 존재하는 규칙들은 탑다운방식에 의해 해석된다. 제공하는 서비스에 대해 겹치는 규칙이 존재한다면
    첫 번째 규칙만 적용되고 나머지는 적용되지 않는다. 즉, 규칙의 순서가 아주 중요하다는 의미다.
    3. 두 개의 파일에 어떤 규칙도 존재하지 않는다면 기본적으로 이 프로그램을 사용하는 모든 서비스는 접근을 허용하게 된다.
    4. hosts.allow, hosts.deny 파일에 어떤 변경을 하게 되면 네트워크 서비스를 다시 시작하지 않더라도 바로 적용된다.
    cs


    B. 연결 제한

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [root@pdtftp ~]# cat /etc/vsftpd/vsftpd.conf | tail -6
    # 동시에 VSFTPD 서버에 접속 가능한 사용자 ㅜ
    max_clients=50
    # 한 개의 IP주소에서 연결 가능한 수를 의미
    max_per_ip=10
    # 임의의 사용자들이 초당 전송 가능한 최대 데이터 속도를 의미한다. 0은 제한이 없다. (바이트 단위)
    anon_max_rate=10000
    # 계정 사용자들이 초당 전송 가능한 최대 데이터 속도를 의미한다. 0은 제한이 없다.
    local_max_rate=40000
    # 설정된 횟수만큼 로그인에 실패하면 세션이 끊기게 된다.
    max_login_fails=3
    # 이 시간 동안 클라이언트로부터 FTP 명령이 없으면 세션이 끊기는데, 단위는 초가 사용된다.
    idel_session_timeout=300
    cs



    3.2 VSFTP 가상 사용자 사용

    가상 사용자란 시스템에 존재하지 않는 사용자이지만 계정 사용자의 동일한 권한 및 기능을 사용하고 FTP 서버에서만 사용할 수 있는 사용자를 의미한다. 가상 사용자를 사용하는 이유는 크게 두 가지인데, 첫 번째는 FTP 서버의 보안 측면에서 가상 사용자를 사용하면 시스템 사용자의 정보가 노출될 걱정이 없다. 즉, 일반 계정 사용자에게 FTP 서버 접속을 허용할 경우 서버 접속 시 ID나 패스워드를 입력해야 되는데, 이런 경우 기본적으로 FTP 서버의 암호화되지 않는 사용자의 접속 정보가 악의의 사용자에게 노출될 위협이 존재한다. 이런 경우 시스템에 존재하지 않는 가상 사용자를 사용한다면 이런 보안의 위협으로부터 시스템을 보호할 수 있다.

     두 번째는 시스템 사용자 계정이 없지만 FTP 서비스를 제공하고 로그인 정보를 필요한 경우 가상 사용자를 사용한다. 또한 모든 가상 사용자에 의해 사용된 파일들의 백업과 복구가 편리하다는 점도 이 기능을 사용하는 목적이기도 하다.



    3.3 기타 기능 설정


    A. VSFTP 서버 로그 설정

     VSFTP 서버 형식의 로그 파일과 WU_FTP형식의 로그 파일을 동시에 이용하도록 설정해 그 두 가지 로그 파일을 비교한다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    [root@pdtftp ~]# cat /etc/vsftpd/vsftpd.conf | tail -7
    xferlog_enable=YES #1
    xferlog_file=/var/log/xferlog #2
    xferlog_std_format=NO #3
    vsftpd_log_file=/var/log/vsftpd.log #4
    dual_log_enable=YES #5
    log_ftp_protocol=YES #6
    syslog_enable=YES #7
     
    1. xferlog_enable : 연결 및 전송 정보를 4에 정의 된 파일에 기록하는데, 3이 YES면 2에 저장된다.
    5가 YES로 설정되면 2 및 4에 두 가지 파일이 사용돼 연결 및 전송 정보를 기록한다. 기본값은 NO다.
    2. xferlog_file : WU_FTPD와 호환 가능한 파일을 지정하는 옵션으로서 1,3이 YES로 설정돼 있어야 사용이 가능.
    3. xferlog_std_format : 1과 더불어 활성화되면 WU_FTPD와 호환 가능한 형식의 로그들이 2에 정의된 파일에 저장된다.
    즉, 전송 정보 및 기본 연결 정보는 저장되지만 연결 실패 정보는 저장되지 않으며 기본 값은 NO다.
    4. vsftpd_log_file : VSFTPD 로그 파일을 정의하고, 이 기능을 사용하기 위해 1이 YES, 3이 NO로 설정돼야 하는데 3을 
    YES로 설정하면 5가 YES로 설정돼야 한다. 그런데 7이 YES로 설정되면 VSFTPD의 로그는 이 파일이 아니라 로그 관리 데몬인 
    syslogd 데몬이 관리하는 시스템 로그에 저장되며, 기본값으로 /var/log/vsftpd.log가 사용된다.
    5. dual_log_enable : 이 기능을 1과 함께 YES로 설정하면 VSFTPD는 두 개의 파일, 즉 WU-FTPD와 호환 가능한 파일 
    (/var/log/xferlog)과 VSFTPD가 정의한 형식의 로그 /varlog/vsftpd.log파일에 저장하며 기본 값은 NO다.
    6. log_ftp_protocol : 1이 활성화되고 3이 NO로 설정돼 사용되면 모든 FTP 명령어 및 그 응답까지 로그에 기록한다. 
    기본 값은 NO이며, 디버깅을 위해 주로 사용한다.
    7. syslog_enable : 1이 활성화되고 이 기능이 YES로 설정되면 4에 저장되는 VSFTPD의 모든 로그가 시스템 로그 데몬인 rsyslogd
    데몬으로 전송되며, 기본 값은 NO다. 
     
    ## 비교 : VSFTP와 WU-FTP 의 차이점 ##
    1. VSFTPD 로그 형식
    VSFTP가 발생시킨 로그를 보면 매우 직관적이여서 바로 이해가 가능할 정도로 단순하다. 즉 이벤트 발생 시간, 로그인 실패 및 성공 정보, 접속 정보,
    계정 사용자 이름, 다운로드 및 업로드 파일명, 경로, 전송된 데이터 크기 등에 대한 정보를 바로 확인 가능하다.
    [root@pdtftp ~]# cat /var/log/vsftpd.log
    Tue Apr  3 10:45:35 2018 [pid 15388] [testuser] OK UPLOAD: Client "121.189.22.240""/vsftp.PNG"152513 bytes, 2623.59Kbyte/sec
     
    2. WU-FTP 로그 형식(XFERLOG)
    VSFTP의 로그와 비교해서 WU-FTP가 발생시키는 XFERLOG 형식의 로그 파일은 암호화가 사용된 듯해서 직관적인 이해가 되지 않는 부분이 있다.
    [root@pdtftp log]# tail -f xferlog
    Mon Jan  2 09:15:14 2012 0 115.92.206.130 1277570 /quota/sample_text/sampleweb//rename/103.eps b _ i r sampleweb ftp 0 * c
    1> Mon Jan  2 09:15:14 2012 --> 파일을 핸들링한 시간 - 2012년 1월 2일(월요일) 오전 9시 15분 14초
    2> 0 --> 별로 중요치 않은 정보임
    3> 115.92.206.130 --> 해당 파일을 엑세스한 클라이언트의 IP 주소
    4> 1277570 --> 파일사이즈(바이트단위)
    5> /quota/sample_text/sampleweb/rename/103.eps  --> 파일의 절대 경로
    6> a 또는 b -->  a는 ascii 모드 b는 바이너리모드(별로 중요치 않은 정보임)
    7> _ --> 별로 중요치 않은 정보임. C일 경우 압축파일. U는 비압축, T일경우 Tar archive 파일
    8> i 또는 o 또는 d -->  i : 업로드된 데이터,  o : 다운로딩된 데이터,  d: 지워진 데이터
    9> r --> 인증된 사용자, a는 anonymous, g는 guest
    10> sampleweb --> 해당 파일을 핸들리한 유저 ID
    11> ftp  --> FTP 서비스임을 표기(별로 중요치 않은 정보임)
    12> 0 --> 인증에 사용된 방법(별로 중요치 않은 정보임)
    13> * --> authenticated-user-id 부분으로(별로 중요치 않은 정보임)
    14> c --> complete transfer 의 약자이며 완전한 전송시 붙는다. 불안정한 전송시엔 i가 붙는다.
    cs

    B. 배너 설정
    1
    2
    3
    4
    5
    6
    7
    8
    9
    1. 설정 파일을 열어서 전달하고자 하는 문구의 텍스트를 입력
    [root@pdtftp log]# cat /etc/vsftpd/vsftpd.conf | grep banner
    ftpd_banner=FTP Server Ready!!!
    # 특정한 경고 메시지를 포함한 파일을 사용할 경우 사용하는 옵션이다. 메시지를 포함해 생성해줘야 한다.
    banner_file=/etc/vsftpd/issue
     
    2. 두 가지 옵션을 동시에 사용하는 경우 경고 메시지가 우선순위로 작동한다.
    [root@pdtftp log]# cat /etc/vsftpd/issue
    Do not hack my ftp server!!!
    cs

    C. Passive 모드 설정

    기본은 Active 모드이지만 Passive 모드로 변경할 수 있다..

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [root@pdtftp log]# cat /etc/vsftpd/vsftpd.conf | grep pasv
    # Passive 모드를 사용하겠다고 정의
    pasv_enable=YES
    # FTP 클라이언트에게 Passive 모드 이용 시 최대로 사용 가능한 포트 번호를 정의. 0~65535
    pasv_min_port=50001
    # FTP 클라이언트에게 Passive 모드 이용 시 최소로 사용 가능한 포트 번호를 정의. 1024보다 낮게 설정 할 수 없다.
    pasv_max_port=50010
     
    [root@pdtftp log]# systemctl restart vsftpd
    cs




    4. VSFTP 보안 기능 설정 : SFTP와 FTPS


    일반적으로 FTP 서버를 이용한 파일 전송은 보안 기능이 적용되지 않는다. 그래서 안전한 전송을 위해 사용하는 가장 일반적인 방법은 SFTP와 FTPS를 사용하는 방법이다.


    4.1 SFTP 사용


    A. SFTP 정의

     SFTP(SSH or Secure File Transfer Protocol)는 암호화된 SSH 연결을 이용해 서버 접속, 파일 전송, 그리고 파일 관리를 지원하기 위해 IETF에서 개발한 네트워크 프로토콜(RFC4253)이다. SFTP를 사용ㅇ하기 위해서 SSH2 프로그램을 설치한 후에 활성화시켜야 한다. SFTP를 사용하는 가장 중요한 목적 두 가지는 먼저 안전한 파일 전송, 안전한 FTP 서버 접속이다. SFTP는 안전한 파일 전송을 위해 SSH로 연결을 암호화하고 안전한 서버 접속을 위해 인증 방법으로서 패스워드뿐만 아니라 공개 키Public Key를 이용한 접속을 지원할 수 있다. 

     SSH 패키지를 설치하면 SCP(Secure Copy Protocol)프로그램을 사용할 수 있는데, 이 프로그램도 SSH에 기반을 두고 SFTP처럼 안전한 원격지 파일 전송을 지원하지만, 원격지 파일 관리 기능(중단된 파일을 재전송하거나 원격지 디렉토리 내의 파일 목록 보기 등)은 지원하지 않는다. 또한 SFTP는 대부분 플랫폼에서 SCP는 대부분 유닉스/리눅스 계열에서만 지원한다는 점도 차이점이다. SFTP는 SSH 서버가 제공하는 프로그램으로서 VSFTP 서버와는 별개의 프로그램이지만 안전한 파일 전송을 지원한다는 점에서 FTP 서버와 동일한 역할을 제공할 수 있다.


    B. SFTP 설정

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    1. sftp 명령어를 사용하려면 SSH 패키지가 설치돼 있어야하고 yum을 사용해 OpenSSH 패키지를 설치한다
    [root@pdtftp ~]# rpm -qa | grep openssh
    openssh-clients-7.4p1-13.el7_4.x86_64
    openssh-server-7.4p1-13.el7_4.x86_64
    openssh-7.4p1-13.el7_4.x86_64
     
    2. SSH 서버의 설정 파일을 열어서
    [root@pdtftp ~]# vi /etc/ssh/sshd_config 
    # 서비스 시스템으로 사용되던 기존 sftp 프로그램을 사용하지 않기 위해 주석 추가하고
    #Subsystem       sftp    /usr/libexec/openssh/sftp-server
     
    # SSH 서버에서 외부 프로그램을 사용하기 위해 설정하는 키워드 subsystem에 이름 sftp와 그 명령어 internal-sftp를 지정한다.
    # 이 internal-sftps는 아래 옵션을 사용해 각 사용자별로 chroot를 적용하기 위해 sftp-server 대신 사용했다.
    Subsystem       sftp    internal-sftp
    Match User sftp-users
           X11Forwarding no
           AllowTcpForwarding no
           ChrootDirectory /home/%u
           ForceCommand cvs server
     
    3. SSH 서버의 변경 사항을 적용하기 위해 데몬을 재시작                                    
    [root@pdtftp ~]# systemctl restart sshd
     
    4. SFTP 사용이 적용될 룹 생성
    [root@pdtftp ~]# groupadd sftp-users
     
    5. usermod 명령어를 사용해 testuser를 sftp-users 그룹에 추가한다.
    [root@pdtftp ~]# usermod -g sftp-users testuser
     
    6. id로 testuser를 조회하면 변경된 것을 확인할 수 있다.
    [root@pdtftp ~]# id testuser
    uid=1005(testuser) gid=1006(sftp-users) groups=1006(sftp-users)
     
    7. 디렉토리 권한을 그룹 회원인 testuser이  접속할 수 있게 변경한다.
    [root@pdtftp ~]# chmod 755 /home/testuser
    cs


    C. 클라이언트에서 테스트

    윈도우에서 테스트하기 

    1) 로그인 정보 입력하기 


    2) 로그인 성공하기 



    4.2 SSL/TLS 이용한 FTPS 사용

     SFTP가 VSFTP 자체에 보안을 접목한 것이 아니라 SSH를 이용해 안전한 연결 및 전송을 보호한기 위해 사용한다면 FTPS는 VSFTPD 서버에 SSL/TLS를 직접 적용해 FTP 연결을 암호화함으로써 안전한 전송을 보장하기 위해 사용하는 프로토콜이다. 


    A. VSFTP 서버 기본 설정

    1
    2
    3
    4
    5
    6
    7
    8
    1. FTPS를 설정하기 위해 기본 설정을 확인하는데, 임의의 사용자는 접속을 허용하지 않도록 설정
    [root@pdtftp ~]# cat /etc/vsftpd/vsftpd.conf | egrep 'anonymous_enable|local_enable|write_enable|chroot_local_user'
    # 로컬 시스템에 계정이 있는 사용자들에게만 접속을 허용한다.
    anonymous_enable=NO
    local_enable=YES
    # 이 계정 사용자들에겐 쓰기 권한을 부여하고 chroot를 적용시킨다.
    write_enable=YES
    chroot_local_user=YES
    cs


    B. 인증서 생성

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    1. 인증서 생성을 위해 디렉토리를 이동
    [root@pdtftp tls]# cd /etc/pki/tls/certs/
     
    2. 명령어 openssl을 용해 x509 형식의 인증서를 생성하는데, 이 인증서는 1년 동안 유효하다. 또한 RSA 알고리즘으로 1024비트
     크기의 개인 키를 생성하는데, 이 키의 이름과 인증서 이름이 동일하다.
    [root@pdtftp certs]# openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout vsftpd.pem -out vsftpd.pem
    Generating a 1024 bit RSA private key
    .....................................++++++
    .........................++++++
    writing new private key to 'vsftpd.pem'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:KR
    State or Province Name (full name) []:Seoul
    Locality Name (eg, city) [Default City]:Seoul
    Organization Name (eg, company) [Default Company Ltd]:Jaehwan Jeong
    Organizational Unit Name (eg, section) []:
    Common Name (eg, your name or your server''s hostname) []:master.test.com
    Email Address []:test@gmail.com
     
    3. 오직 root만 이 파일을 읽을 수 있도록 권한을 조정한 다음 생성된 개인 키겸 인증서를 
    [root@pdtftp certs]# chmod 600 vsftpd.pem
    [root@pdtftp certs]# ls -l vsftpd*
    -rw-------1 root root 1945  4월  4 16:26 vsftpd.pem
    cs


    C. 설정 파일에 SSL 설정

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    [root@pdtftp certs]# vi /etc/vsftpd/vsftpd.conf
    # 인증서의 경로
    rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem
    # 개인 키의 경로 입력
    rsa_private_key_file=/etc/pki/tls/certs/vsftpd.pem
    # SSL 사용을 활성화
    ssl_enable=YES
    # 임의의 사용자들은 SSL 사용을 허용하지 않는다.
    allow_anon_ssl=NO
    # 모든 계정 사용자가 데이터를 주고받을 때 안전한 SSL 기반 연결을 사용하게 한다.
    force_local_data_ssl=YES
    # 모든 계정 사용자가 패스워드 전송 시 안전한 SSL 기반 연결을 사용하게 한다.
    force_local_logins_ssl=YES
    # 프로토콜 TLSv1 기반 연결을 한다.
    ssl_tlsv1=YES
    ssl_sslv2=NO
    ssl_sslv3=NO
    # 암호화된 SSL 연결을 위해 VSFTPD가 사용할 암호를 선택하는데, 그 키의 길이가 128비트보다 
    # 큰 암호일 경우 HIGH, 그 아히일 경우 MEDIUM이나 LOW를 사용한다.
    ssl_ciphers=HIGH
    cs


    D. 클라이언트에서 FTPS 테스트

    윈도우 시스템에서 테스트하기

    1) 서버 정보 입력하기

    2) 인증서 보기

    3) 접속 성공하기


    'Linux > CentOS' 카테고리의 다른 글

    [CentOS 7] Log 서버  (1) 2018.04.26
    [CentOS 7] Tomcat 서버  (1) 2018.04.20
    [CentOS 7] 스토리지 서버의 다중화 (DRBD로 미러링 구성)  (0) 2018.03.06
    [CentOS 7] NFS 서버  (0) 2017.12.02
    [CentOS 7] Nagios 서버  (0) 2017.10.31

    댓글

작은거인's Blog / Designed by TISTORY