==================================================================================================

※ 해당 내용의 경우 VMware를 이용한 로컬 네트웍 상에서 작업을 하는 내용을 안내하여 드립니당~!

[ 시스템 설정을 위한 내용 ]

설치된 Base Windows  : Windows 7 Pro
설치된 CentOS Server  : CentOS 6.4
설치된 VMware Program : VM workstation 9.0.2

==================================================================================================

리눅스를 사용할때 웹호스팅을 하게 되는 경우 사용자별 사용제한을 두지 않으면
시스템의 HDD 공간을 낭비하게 되는 경우가 발생할 수 있습니다.

이를 방지하기 위하여 사용자별 HDD 사용 공간을 설정할 수 있는데, 이를 바로 "Quota 설정"이라고 합니다.

이제 아래의 방법으로 Quota를 설정해보도록 할게요^^~ Follow ME~!!!

[ Quota 환경설정 ]
첫번째로 Quota를 설정하기 위해선 해당 파일시스템에 대하여 fstab을 이용하여 "usrquota" 옵션을 설정해주어야
하는데요.. 상세한 내용은 "/etc/fstab 활용하기" 부분과 아래 그림을 참고하여 주세요^^


 위 그림에서 보는바와 같이 Quota를 적용하기 위한 파일시스템에 내용을 기재하여 주시고 재부팅 또는 mount를 통하여
quota 설정을 위한 환경을 만드시기 바랍니다.
 설정을 위한 환경의 적용된 사항을 확인하기 위해서는 "mount" 명령을 이용하여 아래와 같이 quota 여부를 확인하세요

두번째로 Quota를 설정하려면 "/" 파티션에서 "aquota.user" 파일을 생성하여 줍니다(touch 이용).


[ Quota 적용하기 ]
이제 Quota 설정을 위한 환경설정은 마친 상태이고 본격적으로 사용자별 Quota 적용을 위한 명령어는 아래와 같습니다.
============================================================================================================
1. quotaoff -avug : 쿼터 종료

2. quotacheck -avug : 쿼터 체크(쿼터 설정 파일이 없으면 자동으로 생성되게 됩니다.)
    ※ 해당 명령어의 실행을 위해서는 필히 쿼터를 종료한 상태로 진행하여야 합니다. 

3. quotaon -avug : 쿼터 시작

4. repquota -a : 현재 설정된 쿼터 설정환경을 확인.
    ※ 해당 명령어의 실행을 위해서는 쿼터가 시작된 상태여야 확인이 가능합니다.
 
5. edquota -u username(ex. test) : 사용자(test)의 쿼터 정보를 수정한다
 
6. edquota -p test user1 : 사용자(test)의 쿼터 정보를 사용자(user1)에게 복사.
    ※ 해당 명령어로 복사할 사용자는 동일한 파일 시스템내 사용자들에게만 적용할 수 있습니다. 
============================================================================================================


[ Quota 정보확인 ]
위 안내드린 사항으로 하나의 예를 들어 정보를 확인 해보겠습니다. 
관련 사항으로 쿼터 설정시 설정된 정보에 대한 상세 내용도 함께 알려드릴게요^^

아래 내용은 설정을 모두 적용한 후 "repquota -a" 명령어를 이용하여 출력된 정보에서 발췌한 내용입니다. 
============================================================================================================
*** Report for user quotas on device /dev/sdb3
Block grace time: 7days; Inode grace time: 7days
                        Block limits                       File limits
User     " "      used    soft    hard  grace      used    soft    hard  grace
----------------------------------------------------------------------
root        --     10289        0         0                     5        0         0
test         --          5    9216   10240                     5        0         0
user1      --          4    9216   10240                     4        0         0
user2      --         25    9216   10240                   13        0         0 

1. /dev/sdb3 : Quota 가 적용된 파일시스템 정보
2. Block grace time : 파일용량의 초과시 사용자 잠금 전까지의 유예기간
3. Inode grace time : 파일갯수 초과시 사용자 잠금 전까지의 유예기간

4. User : Quota 내용을 적용하기 위한 사용자명  
5.  " " : 비어 있는 공간이지만 이해를 돕기위해 쓴 내용이고 출력되는 사항은 아래와 같이 3가지 입니다.
          (-- : 용량을 초과하지 않은 상태, +- : 용량을 초과한 상태, -+ : 파일의 갯수를 초과한 상태)
6. Block limits : 제한할 수 있는 총 사용량 (단위는 Kbyte)
    - used : 사용하고 있는 용량
    - soft : 9216 Kbyte 로 제한이 걸려있으며, 보통 hard 값의 10%를 제한 내용을 기재하여 둡니다.
    - hard : 10240 Kbyte 로 제한이 걸려있는 상태입니다.
    - grace : 사용하고 있는 용량을 초과한 경우 출력되는 곳

7. File limits : 제한할 수 있는 한번에 전송하는 파일의 용량 (단위는 Kbyte)
    - used : 사용하고 있는 파일 갯수
    - soft / hard : "Block limits" 동일한 환경으로 사용하며, 현재 적용되어 있지 않은 상태입니다.
    - grace : 사용하고 있는 파일의 갯수를 초과한 경우 출력되는 곳 
============================================================================================================

이상으로 Linux 시스템에서 사용하는 Quota 설정에 대해 알아보았는데요..
역시나 모든 것은 반복 숙달을 하시면서 익혀가시는 것이 가장 좋은 방법이라고 생각합니다^^
그럼 마스터가 될때까지~~ 열심히 Follow ME~!!! 

AND

=============================================================================================================================

※ 해당 내용의 경우 VMware를 이용한 로컬 네트웍 상에서 작업을 하는 내용을 안내하여 드립니당~!

[ 시스템 설정을 위한 내용 ]

설치된 Base Windows : Windows 7 Pro
설치된 Server CentOS : CentOS 5.8
설치된 VMware Program : VM workstation 8.0.1

메일 서버 패키지 파일 : sendmail, sendmail-cf
=============================================================================================================================

- 메일 서버의 개요 및 동작 원리 -
메일 사용자가 메일 클라이언트(ex:outlook)를 사용해서 메일을 보내는 경우 "e-mail"은 메일서버로 접속한 뒤 받는 사람

메일 주소가 현재 사용 가능한지 여부를 인증(SMTP)받아야 한다.

사용가능여부의 인증이 성공하면 메일서버의 MTA(Mail Transfer Agent)는 SMTP(Simple Mail Transfer Protocol)를
이용하여 받는 사람(@뒤쪽 도메인의 메일 서버 정보를 NS/DNS 서버로 부터 질의하여 검색)의 메일 서버로 전송한다.

메일을 수신한 메일서버는 지정된 디렉터리(/var/spool/mail)에 수신메일을 저장 후 수신자가 접속할 때까지 기다린다.

메일은 받는 사람이 자신의 메일 클라이언트로 접속하여 자신의 메일 계정으로 수신된 메일을 확인, 삭제 또는 다운로드 등

메일 서버로 부터 응답을 결정하여 메일 서버로부터 전송받게 된다.

- 메일 서버의 구분 -
ㄱ. SMTP 서버 (MTA) - Sendmail, Qmail ... 등
ㄴ. POP 서버 (MDA:Mail Delevery Agent) - ipop3, imap ... 등
ㄷ. Mail Client (MUA:Mail User Agent) - Outlook express, 웹메일 ... 등


[ 메일서버 참고사항(CentOS 기준) ]




이제 메일 서버를 실제로 설정하여 사용할텐데요. DNS 구성은 Host 만 추가하면 되므로 구성이 완료되어 있다는

전제하에 진행하도록 하겠습니다.

[ 메일서버 환경 설정(/etc/mail) ]

※ 메일 서버 설정 파일 : sendmail.cf, sendmail.mc


1. sendmail.cf 파일을 삭제

2. sendmail.mc 파일을 수정
(빨간색이 수정사항이며 수정전 백업은 필수!!!)

- 52 Line : dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl - dnl 삭제
- 53 Line : dnl define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl - dnl 삭제
- 116 Line : DAEMON_OPTIONS('Port=smtp, Addr=0,0,0,0, Name=MTA')dnl

3. m4 유틸리티로 sendmail.cf 파일을 생성 (2번 사항의 sendmail.mc 파일의 수정부분을 반영하여 생성됨)

- m4 sendmail.mc > sendmail.cf

4. sendmail 환경설정 (3번에서 생성한 sendmail.cf 파일로 빨간색 부분이 수정된 부분)
- Cwmail.noose.net : 메일 서버로 사용될 Domain 을 지정
- Djmail.noose.net : Telnet 을 통해 확인을 하는 경우에도 강제적으로 Domain 이 출력되게 설정


※ 1. "/etc/mail/access", "/etc/mail/local-host-names" 파일에 할당받은 도메인 명을 기록해야 함
    2. "Cw" 와 "Dj" 중 한개의 옵션만을 사용해야 한다. 두개를 같이 사용하는 경우 데몬 재시작시 오류 발생


[ 메일서버 방화벽 설정해제 ]
1. /etc/sysconfig/iptables 를 수정 (" "안쪽 부분(붉은색만)을 라인 추가해서 입력해야함!!!)
- "-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT" //SMTP가 사용하는 포트
- "-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT" //POP3가 사용하는 포트


[ 시스템 시작시 메일 서비스 자동시작 설정 ]
1. "ntsysv" 에서 아래의 두가지 서비스를 등록
- "dovecot"
- "saslauthd"
- 두가지 서비스의 "[]" 부분에 "*" 표시를 등록한다.


[ 적용한 사항의 확인 ]
1. name/sendmail 의 데몬을 재시작
# /etc/rc.d/init.d/named restart
# /etc/rc.d/init.d/sendmail restart

2. 일반 PC에서 도메인 질의
C:\>nslookup
>mail.noose.net
Server: ns.noose.net
Address: 192.168.X.128#53

Name: mail.noose.net
Address: 192.168.X.130#53

3. 일반 PC에서 25번 포트의 telnet 확인
- C:\>telnet 192.168.X.130 25 입력 후 아래의 " " 안의 메세지 내용이 출력되어야 함    //SMTP가 사용하는 포트 확인
" 220 mail.noose.net ESMTP Sendmail 8.13.8/8.13.8; Tue, 26 Apr 2011 15:20:18 +09 00 "
- C:\>telnet 192.168.X.130 110 입력 후 아래의 " " 안의 메세지 내용이 출력되어야 함     //POP3가 사용하는 포트 확인
" +OK Dovecot ready. "

4. Outlook Express 에서 메일 기능의 정상 여부 확인

AND

==================================================================================================

※ 해당 내용의 경우 VMware를 이용한 로컬 네트웍 상에서 작업을 하는 내용을 안내하여 드립니당~!

[ 시스템 설정을 위한 내용 ]

설치된 Base Windows  : Windows 7 Pro
설치된 CentOS Server  : CentOS 6.4
설치된 VMware Program : VM workstation 9.0.2

==================================================================================================


 - NFS(Network File System) -

1. 정의

   - 원격서버에서 공유한 File-System 을 클라이언트에서 mount 하여 관리하는 원격관리 서비스



2. 특징

   - Dir 를 공유하는 윈도우즈와 동작하는 내용이 유사하지만 File-System 자체를 공유하므로 파티션으로 적용된다.

   - Portmap 을 이용하여 통신하기 때문에 유동포트 이다.

※ portmap, rpcbind, sunrpc 모두 동일한 패키지를 나타내는 명칭이다.



3. Package

[ NFS 관련 PKG ]

- nfs-utils-....rpm

nfs-utils-lib-....rpm

 

[ Portmap 관련 PKG ]

- rpcbind-...rpm



4. nfs 활성화

   - #/etc/rc.d/init.d/nfs restart



5. 동작상태 확인

   - #netstat -atunp | grep nfs      : 해당내용으로 확인시 확인불가 (portmap 통신을 하므로)

   - #rpcinfo -p



6. 이용

 [ Server ]

  - #/etc/rc.d/init.d/nfs restart / #rpcinfo -p   : 데몬 활성화 및 동작상태 확인

   * 설정파일 : /etc/exports

=================================================================================
[ Share Dir ]        [ Access allow Host/Net ](Option)
/nfs_dir1               10.1.1.129(rw,no_root_squash,sync)         : HOST 방식
/nfs_dir2               10.1.1.0/255.255.255.0(ro,sync)                : Network 방식
/nfs_dir3                *(rw,no_root_squash,sync)                    : All Network 방식
=================================================================================
 * 옵션 
  - sync : 서버와 클라이언트간에 동기화를 자동으로 한다.
  - secure : 클라이언트 마운트 요청시 포트를 1024 이하로 할 때 이용


      - NFS 명령어 -
         - #exportfs -v    : nfs 서비스를 통해 동작하는 Share 정보 확인
         - #exportfs -ra   : nfs 서비스 정보를 갱신 (nfs 데몬 재실행이 필요없다.)



 [ Client ]

  - #/etc/rc.d/init.d/nfs restart / #rpcinfo -p   : 데몬 활성화 및 동작상태 확인

  - #mount -t [파일시스템 형식] [NFS서버:/공유경로] [MP]   : mount 를 이용하여 Server 측의 공유시스템을 적용



7. 동작환경

 [ 그림참조 ]

 



 [ NFS-Server : 서비스 ]
※ nfs 서비스의 rpc 유동포트를 고정하기.

   ⓐ #vi /etc/sysconfig/nfs  : lockd, mountd, rquotad 포트를 수정
======================================================================
 - #RQUOTAD_PORT=875 -> RQUOTAD_PORT=4003
 - #LOCKD_TCPPORT=32803 -> LOCKD_TCPPORT=4001
 - #LOCKD_UDPPORT=32769 -> LOCKD_UDPPORT=4001
 - #MOUNTD_PORT=892 -> MOUNTD_PORT=4002
======================================================================


   ⓑ #system-config-firewall 에서 해제 후 #cat /etc/sysconfig/iptables 로 확인
=========================================================================================
rpcinfo -p 로 확인하여 출력되는 포트 중 "nfs, rquotad, nlockmgr, mountd, portmapper"
서비스가 사용하는 포트를 해제한다. (tcp/udp 모두)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4000:4003 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4000:4003 -j ACCEPT
=========================================================================================





 - Autofs(Auto File System) -

1. 정의

   - 클라이언트에서 File-System 을 사용시 자동으로 마운트,

     사용하지 않은 상태로 일정시간 후 자동으로 언마운트 해주는 데몬



2. Package

   - autofs-....rpm



3. autofs 활성화

   - #/etc/rc.d/init.d/autofs restart



4. 동작상태 확인

   - #netstat -atunp | grep autofs



5. 이용

 [ Server ]

   ** NFS 부분의 "Server" 를 참조하세요.


 [ Client ]

  - #/etc/rc.d/init.d/nfs restart / #rpcinfo -p   : 데몬 활성화 및 동작상태 확인


  - #vi /etc/sysconfig/autofs : autofs 데몬의 전반적인 설정파일
      =====================================================================================
        BROWSE_MODE="yes"  : auto.master 값을 활성화 할 것인지의 옵션
      =====================================================================================


  - #vi /etc/auto.master    : autofs 데몬에 대한 마운트될 기본 디렉터리 및 설정파일을 지정
      =====================================================================================
          /misc (Autofs Base MP)  /etc/auto.misc (Autofs 주 설정파일)
      =====================================================================================


  - #vi /etc/auto.misc          : autofs 데몬으로 자동 마운트를 설정 및 옵션 내용을 지정
      =====================================================================================
      [ Mount Dir ]   [ FileSystemType & Option ]   [ Remote Mount DEV ]
          mp1              -fstype=nfs,rw,nosuid            10.1.1.50:/nfs_test1

    * Mount Dir : 경로명을 입력할 때 마운트될 디렉터리명만 입력 (MP:/misc/mp1)
    * Option : -fstype 으로 "nfs(Network), ext3(Local)" 마운트 옵션 이용, 구분자 "콤마(,)" 로 사용
    * Remote Mount DEV : Local 의 경우 (:장치 또는 :파티션명)
                                    Network 의 경우 (원격서버:공유Dir)
      =====================================================================================

AND

==================================================================================================

※ 해당 내용의 경우 VMware를 이용한 로컬 네트웍 상에서 작업을 하는 내용을 안내하여 드립니당~!

[ 시스템 설정을 위한 내용 ]

설치된 Base Windows  : Windows 7 Pro
설치된 CentOS Server  : CentOS 6.4
설치된 VMware Program : VM workstation 9.0.2

==================================================================================================


 - SSH(Secure SHell) -

1. 정의

   - 원격관리 서비스 중 하나로써 데이터 통신시 암호화되는 가장 널리 쓰이는 서비스



2. 특징

   - 데이터 통신간에 암호화("RSA" 알고리즘)되어 통신하고, 암호화된 키를 Host 와 서버가

      확인하여 세션을 연결하므로 키가 없으면 데이터를 복호화 할 수 없기 때문에 보안이 강화



3. Package
   - server : openssh-server  : SSH 서비스를 제공하는 패키지


   - client  : openssh-clients : SSH 접속이 가능하도록 접속할 수 있는 패키지

                 (Window의 puTTy와 유사)



4. sshd 활성화

   - #/etc/rc.d/init.d/sshd restart



5. 동작상태 확인

   - #netstat -atunp | grep sshd



6. 이용

  - #ssh [Server IP] : 상대방 서버 접속시 현재 서버에 로그인한 계정으로 접속을 요청한다.
                               (root로 이용하는 경우 자주 사용) / ※ 보안설정이 되면 접속이 허가되지 않는다.


  - #ssh -l [계정명] [Server IP]
  - #ssh [계정명]@[Server IP]  => 실무에서 자주 사용하는 형태
    : 로그인을 위한 계정명을 입력한 상태로 ssh 서버로 접속하는 방식



7. SSH 원격 접속 프로그램
  - puTTy : 무료 프로그램으로 가장 널리 쓰이는 프로그램 중 하나
               (검색엔진에서 putty로 검색하면 열라 많이 나옴 - 한글버전도 나옴)


  - SecureCRT : 상용화 프로그램으로 puTTy보다 강력한 기능을 지원한다.
            (http://www.vandyke.com/download/securecrt/download.html : 회원가입필요)


  - XShell : 상용화 프로그램으로 특정사용자들이 즐겨 쓴다.



8. 설정파일
   * /etc/ssh/sshd_config

※ 해당 내용은 간단하게 실습 가능한 부분만 알려드리며, 설정파일의 자세한 내용은 아래의 글을 참고해주시기 바랍니다.

    - Port : SSH 서비스의 Port 번호 (기본값 : 22)
             단, 위 설정항목을 변경하는 경우 방화벽에서 해당 포트를 해제하여야 통신이 가능.


    - Protocol : SSH 통신의 버전 (기본값:2)
        ㄱ. 1 : 사용자 인증 방식 사용
        ㄴ. 2 : 키(RSA) 인증 방식 사용


    - ListenAddress : 접속을 허가하는 특정 호스트를 입력할 수 있다. (기본값 : 0,0,0,0 / ::)


    - KeyRegenerationInterval : 암호화 키의 갱신 시간을 의미 (기본값 : 1h)


    - SyslogFacility : syslogd의 SSH의 인증 정보를 기록하는 방식
        ㄱ. AUTH : 사용자 관련 정보
        ㄴ. AUTHPRIV : 인증절차 관련 정보(키) (기본값)


    - LogLevel : syslogd의 SSH의 Log 정보를 쌓아주는 형태를 지정
        ㄱ. INFO : 기본정보를 보여주는 수준부터 기록 (기본값)
        ㄴ. WARNING : 단순 경고 메세지를 출력할 수 있는 수준부터 기록 (실무 적용)
        ㄷ. CRIT : 데몬 또는 서브시스템을 종료 해야하는 수준부터 기록
        ㄹ. EMERG : 시스템이 다운되거나 타격을 입을 수 있는 수준부터 기록


    - LoginGraceTime : 원격접속시 로그인까지의 인터벌 시간(기본값:2분)


    - PermitRootLogin : root 사용자로 접속하는 것을 정의 (no)
              => Sniffing 공격시 암호화 알고리즘을 아는 사람은 해킹이 가능하므로
                  root 사용자 접속은 위험하니 불가능하도록 설정 -> 보안설정


    - MaxAuthTries : ssh 프로그램으로 접속 시도시 인증실패의 최대값(기본값:6)


    - MaxSessions : ssh 접속 연결 최대 제한 갯수 (기본값:10)


    - Last = Subsystem : SSH 서비스가 동작이 되면 자동으로 동작시킬 프로그램을 입력
                               (기본 동작 프로그램 : sftp)

 

   ※ SSH 이용시 유의사항

      * 상대방 접속시 없는 사용자로 접근하면 오류 발생



9. 동작환경

 [ 그림참조 ]

 



[ sftp(Secure FTP) ]
1. 정의 : 원격 접속 서버와 파일을 전송할 때 암호화 된 통신을 한다.
           (SSH 서비스와 연동되어 제공한다.)


2. 형식 : - 보안설정 X : #sftp [대상서버]
            - 보안설정 O : #sftp [계정명]@[대상서버]


   ※ SFTP 이용시 유의사항

      * ssh 설정파일내 "보안설정(PermitRootLogin=no)"이 적용된 서버는
        사용자로 로그인을 해야 한다. → 권한에 대한 제약이 발생
         => 파일 전송시 업/다운로드 관련 DIR 및 File 의 권한 (p.73 참조)




[ scp(Secure CoPy) ]
1. 정의 : 원격 접속 서버와 자신의 서버로 복사형태를 띄면서 암호화 통신을 한다.
           (openssh-clients 패키지에 내장된 명령어)

2. 형식
  - #scp [옵션] [원본경로] [대상경로]  -> cp명령어와 유사
     (단, 원격서버의 경우 - [계정명]@[Server IP]:[경로])
       ※ 원격서버의 경로를 입력할 때 "절대경로"를 사용할 것!


  [다운로드 형태]
  - #scp 10.1.1.50:/backup/fstab /backup/         : 원본에 원격지 주소를 사용한 경우

  [업로드 형태]
  - #scp /backup/fstab 10.1.1.50:/backup/         : 대상에 원격지 주소를 사용한 경우

 

AND

==================================================================================================

※ 해당 내용의 경우 VMware를 이용한 로컬 네트웍 상에서 작업을 하는 내용을 안내하여 드립니당~!

[ 시스템 설정을 위한 내용 ]

설치된 Base Windows  : Windows 7 Pro
설치된 CentOS Server  : CentOS 6.4
설치된 VMware Program : VM workstation 9.0.2

==================================================================================================


- File Transfer Protocol -

1. 정의

   - 시스템 운영 및 관리를 위한 원격 관리 서비스 중 하나

   - 파일을 전송할 수 있는 서비스 (Dir 는 불가능)



2. Package
 
   - vsftpd                : FTP 서비스를 이용하기 위한 Server Package



3. vsftpd 활성화

    - #/etc/rc.d/init.d/vsftpd restart



4. 동작상태 확인

    - #netstat -atunp | grep vsftpd



5. 관련파일 

    - /etc/vsftpd/vsftpd.conf  : vsftpd 주 설정파일

    - /usr/sbin/vsftpd           : vsftpd 실행파일

    - /etc/rc.d/init.d/vsftpd   : vsftpd 데몬파일

    - /etc/vsftpd/ftpusers      : ftp 서비스 이용에 제약을 받을 사용자를 정의 ("/etc/vsftpd/user_list" 파일도 동일)

    - /etc/xinetd.d/vsftpd      : vsftpd 기본 설정이 "standalone" 방식이므로 해당 파일의 확인이 어려움.



6. 설정파일 

   * /etc/vsftpd/vsftpd.conf

※ 해당 내용은 간단하게 실습 가능한 부분만 알려드리며, 설정파일의 자세한 내용은 아래의 글을 참고해주시기 바랍니다.

 

- anonymous_enable

: "anonymous" 계정의 접속허용 여부 [ anonymous(익명사용자)=ID로만 Login 이 가능한 계정 ]

 

- local_enable
      : "/etc/passwd" 파일내 사용자 접속 허용 여부 (default:YES)

 

- write_enable
      : write 명령어(업로드 = put/mput ...) 허용 여부 (defualt:YES)

 

- local_umask
      : "/etc/passwd" 파일내 사용자들이 FTP 서비스를 이용시 적용 받을 umask (default:022)

 

- #anon_upload_enable
      : "anonymous" 계정의 파일 업로드 여부 (default:설정안됨)

 

- #anon_mkdir_write_enable
      : "anonymous" 계정의 디렉터리 생성 여부 (default:설정안됨)

 

- dirmessage_enable
      : ftp 서비스에 접속한 사용자가 디렉터리를 변경할때 변경될 Dir 내에 ".massege" 파일이 존재하면 해당 파일의 내용이 출력

 

- xferlog_enable
      : 파일 전송 표준로그(xferlog) 방식으로 로그를 남길 것인지 여부 (default:YES)

 

- #xferlog_file

: 파일 전송 로그로 기록된 파일명을 설정 (default:설정안됨[/var/log/xferlog]) 

 

 

- connect_from_port_20
      : standalone 모드로 동작시만 적용되며, 데이터 전송시 20번 포트로 전송할 것인지 여부

 

- #idle_session_timeout
      : 사용자가 아무런 입력 없이 유지하면 종료시킬 시간(단위:초) (default:설정안됨 [300초로 적용됨])


- #chroot_list_enable
      : "chroot_list" 라는 파일의 활성화 여부

 

※"chroot_list" -> 디렉터리 이동의 제한을 받는 사용자를 정의

(제한받은 사용자들의 $HOME 이 "/" 로 출력되며, 경로 변경이 불가능하게 된다.)

 

- #chroot_list_file

      : "chroot_list" 라는 파일의 경로나 파일명을 임의로 지정가능 (default:/etc/vsftpd/chroot_list)

 

- #chroot_local_user
      : "/etc/passwd" 파일내 사용자들을 모두 디렉터리 이동 제한하고
        $HOME을 벗어나지 못하도록 설정이 되며, $HOME이 "/"로 출력된다. ("root" 계정 포함)



 [ 추가 사항 ]

userlist_enable

          : ftp 서비스내 접속자 제한 설정파일(chroot_list) 사용 여부

 

max_clients

    ftp 서비스내 접속자 클라이언트 갯수 제한 (0 : 제한없음)

anon_root

          : "anonymous" 사용자의 홈 디렉터리 지정 (기본값 : /var/ftp)

 

7. 동작환경

 [ 그림참조 ]
 


8. xferlog 분석자료

[ 그림참조 ]

 

 

 

 [ 서비스 ]
  - "root" 사용자 접속 허용 -
1. 사용자 제한 파일을 수정하여 root 사용자 접속 가능 

ㄱ. /etc/vsftpd/user_list 파일에서 root 사용자 '#' 처리

ㄴ. /etc/vsftpd/ftpusers 파일에서 root 사용자 '#' 처리

 

2. 사용자 제한 파일 및 vsftpd 설정파일 옵션 변경으로 root 사용자 접속 가능

ㄱ. /etc/vsftpd/vsftpd.conf 파일에서 "userlist_enable" 옵션을 "NO"로 설정
        : user_list 파일을 사용하지 않도록 설정

ㄴ. /etc/vsftpd/ftpusers 파일에서 root 사용자 '#' 처리

 

AND

=============================================================================================================================

※ 해당 내용의 경우 VMware를 이용한 로컬 네트웍 상에서 작업을 하는 내용을 안내하여 드립니당~!

[ 시스템 설정을 위한 내용 ]

설치된 Base Windows  : Windows 7 Pro
설치된 Server CentOS  : CentOS 5.8
설치된 VMware Program : VM workstation 8.0.1

=============================================================================================================================

- xinetd 란? -

1. 정의

- 리눅스 슈퍼데몬

  (필요시마다 하위의 서비스들을 구동/종료 시키는 역할)
- inetd + 허가(hosts.allow)/거부(hosts.deny)설정 (tcp_wrappers)
- xinetd 자체는 standalone 타입으로 동작한다. 
   (슈퍼데몬이 항상 켜져있어야 다른 데몬을 켜고 끄고 할 수 있기 때문)
- /etc/xinetd.conf -> /etc/xinetd.d/ 경로내 파일을 참조하여 동작
- /etc/services 에서 서비스할 포트번호를 참조

2. 설정파일

* /etc/xinetd.conf

- log_type = SYSLOG authpriv
   : "syslogd"데몬에 의해서, "/var/log/" 디렉토리에 로그를 기록

- log_on_failure = HOST

   : login에 실패시 로그에 호스트이름을 기록

- log_on_success = PID HOST DURATION EXIT

   : login에 성공시 아래의 내용들을 로그로 기록

     ㄱ. PID : 프로세스ID

     ㄴ. HOST : 해당호스트이름

     ㄷ. DURATION : 접속 유지시간

     ㄹ. EXIT : 접속 종료시간

- cps = 50 10

   : 접속 횟수의 속도 제한

     ㄱ. 50는 초당 접속 제한수

     ㄴ. 10은 "ㄱ" 항목 수를 초과하면 서비스 제한 시간(단위:초)

- instance = 50 또는 UNLIMITED

   : xinetd 로 동작할 최대 서비스 갯수 설정, UNLIMITED로 설정시 무제한으로 설정된다.

- includedir /etc/xinetd.d

   : xinetd 을 동작할 때 적용하는 서비스들이 정의된 경로

 

 

=======================================================================================================================================
[ Telnet Service 설정을 위한 내용 ]
설치된 CentOS 버전 : CentOS 5.7
설치된 VMware 버전 : VM workstation 7.1.4

telnet 패키지 파일 : telnet-server.i386 1:0.17-39.el5

telnet 설정 파일 : /etc/xinetd.d/telnet


- Telnet Service 란? -

1. 정의

- TCP 통신에서 가장 오래되었으며, 널리 쓰이던 원격관리 서비스의 대표


2. 특징

- 데이터 통신시 평문통신 (가로채기:sniffing 에 취약)
- 설치 후 기본서비스로 동작되지 않음.

- root (슈퍼유저) 로 접속 불가능


3. Package

- Server : telnet-server ~~~~ . rpm

- Client  : telnet ~~~~~ .rpm


[ Telnet 환경설정 ]
1. Yum 을 이용하여 Telnet 서버 패키지를 설치
[그림 참고]


2. Vi editor 로 Telnet 설정파일을 편집 (빨간색이 수정사항)
   (경로 : /etc/xinetd.d/telnet)
==========================================================================================
# default: on
# description: The telnet server serves telnet sessions; it uses \
#       unencrypted username/password pairs for authentication.
service telnet
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        log_on_failure  += USERID
        disable         = no
}

==========================================================================================

3. 설정파일 내용 확인

* /etc/xinetd.d/telnet
- flags

    : 소켓이 작동될때 사용하는 정보
- socket_type

    : Telnet 서비스의 소켓 적용 정보 (기본값:stream)
      a. stream : tcp 소켓 사용
      b. dgram : udp 소켓 사용
- wait

    : 대기 시간을 제공할 것인지에 대한 여부(기본값:no)
      a. no : 접속시 프로세스를 추가하여 제공
      b. yes : 1개의 프로세스만 제공하여 1개만 연결 가능
- user

    : 서비스를 시작하는 권한자(기본값:root)
- server

    : 서비스를 처리할 프로그램의 위치
- log_on_failure

    : 로그인 실패에 대한 로그 정보를 추가해주며 쌓을 정보는 USERID 를 넣어준다.
- disable

   : 서비스를 제공하지 않을 것인지 여부(기본값:yes)

- access_times

   : Telnet 서비스를 이용할 시간 범위를 지정

    (형식 : HH:MM-HH:MM) - (ex : 07:30-18:30)



[ 적용한 사항의 확인 ]
1. 슈퍼데몬을 재시작
# /etc/rc.d/init.d/xinetd restart

2. Telnet 접속 확인

- Wiindows 에서

   C:\>telnet 192.168.X.X 입력 후 정상 접속 여부 확인
- Linux 에서

   # telnet 192.168.X.X 입력 후 정상 접속 여부 확인



AND

=============================================================================================================================

※ 해당 내용의 경우 VMware를 이용한 로컬 네트웍 상에서 작업을 하는 내용을 안내하여 드립니당~!

[ 시스템 설정을 위한 내용 ]

설치된 Base Windows : Windows 7 Pro
설치된 Server CentOS : CentOS 5.8
설치된 VMware Program : VM workstation 8.0

=============================================================================================================================

 - Network 기초 -


1. 정의

-  IPv4(IPv6)의 주소체계로 유/무선 형태를 지니고 통신하는 상태

 

2. 관련 용어
  - IP(Internet Protocol)란?
    : NetworkID 와 HostID 라 불리는 숫자로 된 주소로 나타내는 방법
       * 10진수형태로 사용(0~255)
       * 32비트 길이로 구성/8비트씩 4개 필드(옥탯) 와 "." 으로 필드를 구분하여 나타냄
       * 가장 앞쪽의 8개비트를 기준으로 IP 대역을 클래스라는 것으로 구분(PC인식)
          ** A Class : 00000000.00000000.00000000.0000000X ~ 01111111.11111111.11111111.11111111
          ** B Class : 10000000.X.X.X ~ 
          ** C Class : 11000000.X.X.X ~

 

  - Gateway 란?
    : 한 네트워크에서 다른 네트워크로 들어가는 입구 역할을 하는 장치.
     근거리통신망(LAN)과 같은 하나의 네트워크를 다른 네트워크와 연결할 때 사용된다. 
     네트워크마다 데이터를 전송하는 방식이 다르기 때문에 게이트웨이가 필요하게 된다.

 

  - Broadcast IP 란?
    : 한 네트워크에서 그 대역의 마지막을 알려주는 IP. 
       * "255"로 표현

 

  - Host IP 란?
    : 한 네트워크에서 존재하는 PC 또는 Server를 가리키는 숫자 주소
      ※ 하나의 호스트는 하나 이상의 HostIP를 사용

 

  - SubNetmask 란?
    : 각각의 네트워크를 식별할 수 있는 마스크 값으로
      NetworkID(255)와 HostID(0)의 구분자 역할을 한다.

       * A Class : 255.0.0.0
       * B Class : 255.255.0.0
       * C Class : 255.255.255.0

 

3. 설정
   - 문서파일
     : /etc/sysconfig/network                                 - 기본 네트웍 설정파일
     : /etc/sysconfig/network-scripts/ifcfg-장치명     - 해당장치의 설정파일


   - Network 관리 명령어
     : #setup                                  - 전체설정 명령어
     : #system-config-network          - txt / Graphic 두 환경 모두 지원 명령어

 

 


 - Network CMD -


1. ifconfig
    a. 정의 : Network 장치의 정보를 확인하거나 설정할 때 이용


    b. 형식
      - #ifconfig [장치명] [상태정보]


    c. 상태정보
      - up/down        : 장치의 활성/비활성을 정의
      - IP Address     : 장치의 IP를 설정


2. ping
    a. 정의 : 다른 시스템의 네트웍(Host)이 사용 중인지 확인하는 경우 이용


    b. 형식
      - #ping [옵션] [대상(IP or Domain)]


       * 옵션 (리눅스용)
          - c : 패킷을 보낼 횟 수를 지정, 지정하지 않으면 Ctrl+C 로 정지해야함.
          - i : 테스트 간격의 초 수를 지정, 0.2초 미만인 경우 관리자 권한 필요
                (기본값 : 1초)
          - s : 패킷의 크기를 의미 (기본값 : 64바이트)
          - t : TTL 값을  수동으로 지정해서 보낼 때 사용
                (받는 쪽에서 확인이 가능)


     [ ex : 통신의 가능여부 확인 ]
      - #ping G/W                                      : Local 통신 가능 여부 확인
      - #ping 168.126.63.1                           : 외부 통신 가능 여부 확인

      - #ping kns.kornet.net                        : 외부 통신이 가능한 상태에서 DNS 서비스 동작 여부 확인

 


3. netstat
    a. 정의 : 네트웍과 관련된 정보를 확인할 때 이용


    b. 형식
      - #netstat [옵션]


    c. 옵션 (추가예정)
      - l : listening - LISTEN(응답대기) 상태만 출력

      - n : numeric - DNS 통신에 사용되는 이름이 아닌 IP 형식의 숫자타입으로 출력

- t : tcp - TCP 방식 소켓 통신만 출력

- u : udp - UDP 방식 소켓 통신만 출력

- p : programs - program 명칭(데몬)을 함께 출력

- a : all - 전체 출력, Default로 지정됨

- s : statistics - Network 통신 로그를 출력


        

4. nslookup
    a. 정의 : 네임서버에 원하는 Host 의 정보를 질의할 때 이용


    b. 형식
      - #nslookup [ Domain ]
      - #nslookup
          >Domain




- SELinux(Security Enhance Linux) -
  - 공개용 OS => Linux 
     -> 인식 : 보안성이 취약하다 -> 관리자들이 관리의 편의성때문에 보안설정을 잘 하지 않았기 때문..

     -> 해결방안 : 보안성이 뛰어나고 설치시 "강제" 옵션으로 설치하는 형태로 "SELinux" 이름을 가진 방화벽이 추가로 존재


      ※ 관리의 용의성과 보안과 반비례


 

  - 관련 명령어 (CentOS 6.X 에서는 명령어 X)
     #system-config-securitylevel

 

  - 관련 문서파일
     #vi /etc/sysconfig/selinux


    ※ 여러가지 서비스 설정 및 실습을 위해 추가 방화벽인 "SELinux' 부분은 비활성 상태로 진행할 예정이며,

        따로 한 강의를 통해 다루어 보도록 할 예정입니다.




- IP Alias -

1. CentOS 5.X 에서
ㄱ. 그래픽 환경에서
   "시스템 - 관리 - 네트워크" 메뉴에서 Sub Interface Card 를 추가하여 'eth0'를 이용한 새로운 장치를 IP 부여 후 등록


ㄴ. 텍스트 환경에서
   #cd /etc/sysconfig/network-scripts/ 에서 "ifcfg-eth0" 파일을 "ifcfg-eth0:1" 로 복사하여

   새로운 Device 를 추가 후 내용을 수정하여 Sub Interface Card를 손쉽게 추가가능



2. CentOS 6.X 에서

ㄱ. 그래픽 환경에서
   "시스템 - 일반 - 네트워크" 메뉴에서 Interface Card 를 선택 후 IP 수동 설정 및 "추가" 항목을 이용하여

    'eth0' Interface 에 Sub IP 부여가능


ㄴ. 텍스트 환경에서
   #cd /etc/sysconfig/network-scripts/ 에서 "ifcfg-eth0" 를 VI 로 열어 "IPADDR", "PREFIX", "BROADCAST" 항목을

    수정하여 새로운 Sub IP Address 를 손쉽게 추가가능


 ※ 단, 모든 Network 설정에 대해 수정이 완료되고 나면 "Network 데몬"을 재실행 후  정상적으로 적용될 수 있다.

AND

==================================================================================================

※ 해당 내용의 경우 VMware를 이용한 로컬 네트웍 상에서 작업을 하는 내용을 안내하여 드립니당~!

[ 시스템 설정을 위한 내용 ]

설치된 Base Windows  : Windows 7 Pro
설치된 CentOS Server  : CentOS 5.7
설치된 VMware Program : VM workstation 8.0

==================================================================================================


- Linux Daemon -

1. 정의

     - 프로세스에서 서비스를 동작하기 시키기 위해 메모리에 항상 상주하며 백그라운드 형태로

        존재하면서 서비스를 서포트하는 스크립트



2. 형식
  - #/etc/rc.d/init.d/[데몬명] [상태값]     -> 경로를 이용하여 파일실행 방법
  - #service [데몬명] [상태값]                 -> RedHat 계열 Linux 에서 지원하는 명령어 이용방법


  - 상태값
    * restart : 데몬을 종료 후 바로 시작
    * status : 데몬의 상태 정보 출력
    * start   : 데몬을 시작
    * stop   : 데몬을 중지
    * reload : 데몬을 실행한 상태에서 다시 적용시킴



3. Favorite Linux Daemon



 


4. Linux Daemon Type
   * inetd 타입 (Windows 에서의 "explorer.exe"와 유사한 환경)
    - 자주 사용되지 않아 프로세스를 많이 소비하지 않는 서비스를 하나의 데몬으로 관리하는 방법
      
    - ex : telnet, pop3, imap, rlogin, rsync, tftp 등 슈퍼데몬으로 관리


   * standalone 타입 (Windows 에서의 "iexplorer.exe"와 유사한 환경)
    - 자주 사용되며 프로세스를 계속 소비하도록 하는 서비스로써 각 서비스별로 각각의 데몬을 따로 관리하는 방법
      
    - ex : named, httpd, vsftpd, sshd 등 "3.Favorite Linux Daemon" 들이 모두 해당 방식으로 동작



5. Linux Daemon 경로 및 설명

    - "/etc/init.d/" 또는 "/etc/rc.d/init.d/" 경로내 데몬의 실행 스크립트 파일이 존재

    - 단, "/etc/rc.d/rc?.d" 경로를 확인하면 Run Level 에 따른 실행 스크립트 정보를

      확인시 "/etc/rc.d/init.d/" 경로가 원본으로 사용되는 것을 확인할 수 있음.

 

 


AND