OS

  • Q. 리눅스에 ftp서버가 안되요. ftp server를 구동할려면 어떻게 해야하죠

    RHEL에서는 ftp서버를 운영할 수 있는 vsftp 패키지가 포함되어 있습니다.
    # rpm  -qa | grep vsftpd로 rpm packages 검색후 설치 여부를 확인 합니다.
    vsftpd-2.0.5-12.el5
    설치가 되어 있을 경우 vsftpd daemon이 구동중인지 확인 합니다.

    * 설치가 되어 있지 않을 경우 설치를 하셔야 합니다.
    제공된 설치 미디어가 있으실 경우 미디어를 통하여 설치를 진행 하셔도 됩니다.
    제공된 설치 미디어가 없을 경우 구매하실때 받으신 Subscription을 이용하여 RHN에 등록후
    RHN을 통하여 설치가 가능합니다.

    # service vsftpd status
    vsftpd가 정지됨

    vsftpd daemon 구동.
    # service vsftpd start
    vsftpd에 대한 vsftpd을 시작 중:                            [  OK  ]

    ftp 접근 시도 테스트를 하시면 접근이 되실것입니다.

    # ftp localhost
    Connected to localhost (127.0.0.1).
    220 (vsFTPd 2.0.5)
    Name (localhost:kkamagi): kkamagi
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp>

  • [TIP] ftp 서버 패키지가 없을경우 gssftpd 를 사용하자.

    vsftpd, proftpd, wu-ftpd 가 없을경우???

    gssftpd 를 사용한다.

    사용 방법…
    krb5-workstation – 패키지가 설치되어 있는지 확인한다.

    /etc/xinetd.d 폴더의 gssftp 파일을 아래와 같이 수정한다.

    # default: off
    # description: The kerberized FTP server accepts FTP connections \
    #              that can be authenticated with Kerberos 5.
    service ftp
    {
    flags           = REUSE
    socket_type     = stream
    wait            = no
    user            = root
    server          = /usr/kerberos/sbin/ftpd
    server_args     = -l
    log_on_failure  += USERID
    disable         = no
    }

    완료 후 서비스 재 시작

    service xinetd restart

    netstat -nptl 로 21 번 포트가 Listen 하고 있는지 확인 후

    ftp localhost 을 이용하여 정상적인 접속이 가능한지 확인해 본다.

  • [TIP]chroot 적용된 bind 관련 query_log 남기기

    A.

    name server 에서 누군가가 나의 서버를 이용해서 query 를 날리는 내용을 확인하고 싶을때가 있다.

    그러기 위해선 query log 를 남겨야 되는데 여기서 주의 할점은 chroot 이다.

    chroot 가 적용되지 않은 시스템은 query log 경로를 아무 곳이나 정해도 상관 없지만.

    만약 chroot 를 적용한 시스템이라면 /var/named/chroot 가 최상위 디렉토리라는 것을 명심하자

    /etc/named.conf 에 query log 관련 셋팅

    logging {
    category lame-servers { null; };
    category notify { null; };
    channel “query_logging” {
    file “/var/log/query_log” versions 3 size 100M;
    print-time yes;
    print-category yes;
    print-severity yes;
    };

    category queries {
    query_logging;
    };
    };

    위 처럼 설정 한 후 query_log 파일을 만든다. 권한은 named(user),named(group)

    실제 경로 /var/named/chroot/var/log 이지만 named 의 최상위 경로가 /var/named/chroot 이기 때문에 file 항목에 “/var/named/chroot” 는 입력하지 않아도 된다.

    만약 file 항목의 경로가 잘못되면 /var/log/messages 항목에 file not found 등의 메시지를 출력 한다.

    위 항목을 적용 후 query_log 의 내용을 확인해서 log 가 정상적으로 쌓이면 정상이다.

  • Q. vsftp 패시브 모드 설정하는 방법

    A.

    FTP에서 데이터 전송을 위해서 20번 포트를 사용합니다.
    이 경우 서버에서 클라이언트 쪽으로 연결을 하기 때문에 중간에 방화벽 또는 공유기등을 사용한다면, 정상작동하지 않을 수 있습니다. 이런 문제를 해결하기위해서 PASSIVE모드라는 것이 있고, 이 모드에서는 서버의 1024이후 포트를 사용합니다. 이 포트의 범위를 제한하기 위해서는 다음과 같이 설정합니다.
    pasv_min_port=40000
    pasv_max_port=50000

    위 설정은 PASSIVE에서 사용할 포트를 40000~50000로 합니다.
    방화벽등을 사용하고 있는 경우라면 tcp/udp 40000~50000포트를 열어줍니다.

    *ip_conntrack_ftp 확인
    ]#lsmod ip_conntrack_ftp

    없으면,
    ]#modprobe ip_conntrack_ftp

    ftp를 패시브모드로 사용할려면 위의 모듈이 적재되어 있어야 합니다.

  • Q. 특정 사용자에게 echo 로 메세지 보내려면?

    A.
    특정 사용자에게만 메시지를 보낼 경우는 아래와 같이 간단히 cho 와 >(redirection)를 이용해서 보낼수 있습니다.
    우선 who 명령으로 시스템에 접속한 사용자를 확인합니다.

    [root@localhost /]# who
    root pts/0 Jan 21 15:05
    root pts/1 Jan 21 15:22
    test pts/2 Jan 21 15:22
    jaehwa pts/3 Jan 21 15:22

    pts/3 에 접속해 있는 jaehwa라는 사용자에게 메시지를 보내려면, 아래와 같이 입력 하면 된다.

    [root@localhost /]# echo “Hi.. jaehwa” > /dev/pts/3
    [root@localhost /]#

    그러면.. pts/3 에 접속해 있는 jaehwa라는 사용자만 메시지를 받아보게 된다.