favicon Jay Lee DevLog

📚 목차

자주 나오는 문제를 추려서
관련된 내용을 암기하기 위해서 정리를 해봤다.
아직 완성본은 아니고, 시험전날까지 계속 추가할 예정이다.

2022.09~2016.03 까지의 기출문제 정리





1. /etc 관련
- /etc/skel : 계정 생성시 홈 디렉터리에 복사될 파일들(Ex: .bashrc, .bash_logout, .bash_profile)
- /etc/passwd : 사용자 계정 정보
- /etc/login.defs : 계정 생성시 두번째로 참조하는 파일 (비밀번호[만료일, 재변경 최소 일 수, 최소길이 등], UID 범위, 홈 디렉터리 생성여부, 암호화 방법 등)
- /etc/default/useradd : 계정 생성시 첫번째로 참조하는 파일 (GID, 홈 디렉터리 경로, 비밀번호 유효기간 종료 후 설정, 계정 종료 일자, 셸, skel 경로 등)
아래는 /etc/default/useradd 파일 내용
  GROUP=100  # 계정 생성 시 기본 그룹 ID
  HOME=/home  # 홈 디렉터리
  INACTIVE=-1  # 계정 비활성화되는 기간, -1은 비활성화 기간 없음
  EXPIRE=  # 계정의 만료 날짜 설정, 빈 값은 만료 없음
  SHELL=/bin/bash  # 기본 쉘
  SKEL=/etc/skel  # 계정 생성 시 기본적으로 제공될 파일과 디렉터리 (스켈레톤)
  CREATE_MAIL_SPOOL=yes  # 메일 박스 생성 여부
- /etc/named.conf :  시스템에서 DNS(Domain Name System) 서비스를 제공하는 named 데몬(바인드라고도 함)을 구성하는 데 사용
   DNS 서버의 전반적인 환경 설정을 담당하는 파일이다.
   서버에서 사용하는 zone파일 및 reverse zone 파일을 지정한다.
   DNS 서버의 동작 및 제어와 관련된 여러 가지 설정을 하는 영역
   존 파일이 위치하는 디렉터리명은 반드시 명기 해야함

- /etc/named.conf 설정 예시
options {
  directory "/var/named";
  forward only;
  forwarders { 8.8.8.8; };
  datasize 1024M;
  allow-query { 192.168.64/24; };
};
- /var/named : DNS서버에 있는 zone파일들의 위치를 나타낸다. 즉, 네임서버 DB파일들이 존재하는 위치를 지정해주는 부분이다.
- /etc/aliases : 특정 계정(별칭)으로 수신한 이메일 => 다른 계정으로 전달
- /etc/mail/local-host-names : 메일 수신지(도메인과 호스트)를 설정
- /etc/mail/virtusertable : 가상의 (여러 도메인)메일 계정으로 들어오는 이메일 => 특정 계정(여러 사람)으로 전달
- /etc/mail/sendmail.cf : sendmail의 기본 설정파일
- /etc/hosts : 호스트 이름을 IP 주소에 매핑하는 로컬 정적 테이블
    형식 : <IP_address> <host_name>
           127.0.0.1   localhost
-  /etc/sysconfig/networks : 도메인 명 설정, 시스템에 알려진 다양한 네트워크의 특성을 정의하는 데 사용
    형식 : default 0.0.0.0
           loopback 127.0.0.0
           link-local 169.254.0.0
- /etc/yp.conf : NIS 클라이언트에서 NIS 서버 및 도메인명을 지정
  domain OOPS-NIS
  server nis1.domain.com
  server nis2.domain.com
- /etc/ypbind.conf : ypbind는 명령어이며 설정파일은 yp.conf 임
- /etc/shadow
① 필드 1 : 사용자명
② 필드 2 : 패스워드
③ 필드 3 : 패스워드 파일 최종 수정일
④ 필드 4 : 패스워드 변경 최소일
⑤ 필드 5 : 패스워드 변경 최대일
⑥ 필드 6 : 패스워드 만료 경고기간
⑦ 필드 7 : 패스워드 파기 기간(패스워드 파기후 게정 비활성 기간)
⑧ 필드 8 : 계정 만료 기간
⑨ 필드 9 : 예약 필드
- 부팅과 관련된 실행 레벨이 정의되어 있다. => /etc/inittab
- 시스템 초기화와 관련된 내용이 설정되어있다. => /etc/init/rcS.conf
- 부팅 시 각 레벨별로 진행되는 내용이 설정된 파일이다. => /etc/init/rc.conf
- 실행 레벨 2, 3, 5에서 가장 마지막에 실행되는 파일이다. => /etc/rc.d/rc.local
- /etc/resolv.conf : 요청할 DNS 서버를 지정할 때 사용하는 파일.

- /etc/logrotate
  missingok : 로그 파일이 없어도 오류 발생 X
  notifempty : 로그 파일이 비어 있는 경우 순환 X

- /etc/issue : 사용자가 로그인할 때 ‘login: ’이라는 메시지를 보여주기 전에 출력되는 내용을 적는 파일이다.

- /etc/issue.net : 텔넷(telnet)을 통한 네트워크 접속 할 때 출력되는 메시지를 기록한다.

- /etc/motd : 성공적으로 로그인되었을 때 접속된 사용자에게 보여주는 메시지를 기록하는 파일이다.

- /etc/nologin.txt : 로그인 거부 메세지를 기록

- /etc/shadow : (계정명):(암호화된 비밀번호):(비밀번호 마지막 변경일):(비밀번호 최소 사용 날수):(비밀번호 최대 사용 날수):(비밀번호 만료 전 경고 날수):(비밀번호 만료 후 계정 잠금 보류 날수):(계정 만료일)

- /etc/gshadow : [그룹]:[패스워드]:[어드민]:[멤버]


2. 운영체제 관련
- Tizen : Linux 기반 모바일 운영체제다.(리눅스재단, 리모재단, 삼성전자, 인텔이 공동개발.)
- webOS : Linux 기반 모바일 운영체제다.(팜에서 개발 후에 HP가 인수, 또 이후에 LG가 인수.)
- QNX : 블랙베리에서 개발한 UNIX 운영체제다. (블랙베리라고 해서 모바일용은 아니며 첫 출시일이 1982년으로 오랜 역사를 가짐)
      애플 iOS도 애플 모바일 전용으로 구동되어서 그렇지 따지고 보면 모바일 UNIX운영체제.
- GENIVI : Linux 기반 차량용?? 운영체제다. (비영리 자동차 산업 연합이 개발.)
- Vector Linux : 슬랙웨어 계열 리눅스
- Fedora: 일반 사용자를 위한 무료 배포판,  레드햇의 후원과 개발 공동체의 지원아래 개발된 일반적인 목적을 가진 RPM기반의 소프트웨어가 결합된 운영 체제
- Redhat: 밥 영(Bob Young)이 ACC 설립, 마크 유잉(Mark Ewing)이 레드햇 이름으로 출시
- Ubuntu: 영국회사인 캐노니컬(Canonical)의 CEO인 마크 셔틀워스(Mark Shuttleworth)가 시작
- Debian : 이안 머독이 관련 프로젝트를 시작하고 이 프로젝트 그룹에 참여한 개인들에 의해 패키지화되었다. 초기에 dpkg라는 패키지 관리 도구를 사용

- Mint는 데비안 계열의 리눅스 배포판

- 바다 (Bada) OS : 삼성전자(mobile)

- LiMo : 리모 재단에서 만든 리눅스 mobile
- 마에모 (Maemo) OS : 노키아
- 모블린 (Movlin) OS : 인텔과 리눅스 재단

3. 인물 관련
- 리누스 토발즈 : 초기 리눅스 커널을 개발
- 켄 톰슨 : AT&T 연구소에서 유닉스 개발을 주도한 인물(유닉스는 AT&T 연구소에서 개발하였다.)
- 빌 조이 : Sun Micro System의 BSD 유닉스 개발 핵심인물중 한명 vi에디터 개발자 (오라클이 인수)
- 리처드 스톨먼 : GNU 자유소프트웨어 재단 설립자이자 GNU C Compiler 창시자

- 앤드류 스튜어트 타넨바움 : MINIX 개발자

4. init.d 관련
# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)

5. 파일 압축 관련
- 압축효율: xz > bzip > gzip > compress

6. rpm 관련
-c, --configfiles list all configuration file
-f, --file query/verify packages owning file
-p, --package query/verify a package file
rpm -qf  /usr/bin/vi : 파일이 속한 패키지 찾기

- rpm --rebuilddb : rpm 데이터베이스를 새롭게 생성하는 명령


7.  파일시스템 관련
- usrquota : 사용자 할당량 사용
/etc/fstab 에 들어가면, 필드가 총 6가지 주어짐.

[파일시스템 장치] [마운트 포인트] [파일시스템 종류] [옵션] [덤프] [파일체크옵션]
<file system>    <mount point>   <type>  <options>                <dump>  <pass>
/dev/fd0         /media/floppy0      auto    rw,user,noauto,exec,utf8 0       0

- Linux Swap : 82
- Linux native : 83
- Linux LVM : 8e
- Raid : fd


8. passwd
- passwd -d :  lin 사용자는 패스워드 입력 없이 로그인이 가능하다. delete
- passwd -e : lin 사용자는 다음 로그인 시에 반드시 패스워드를 변경해야 한다. expire
- passwd -l <> passwd -u : lin 사용자는 패스워드에 잠금이 설정되어서 일시적으로 로그인이 불가하다. lock <> unlock

9. 모르는 커맨드 관련
- groupmod -n (변경 후) (변경 전) 
- usermod : 사용자계정에 관련한 정보변경하는 명령어
 l 사용자 아이디 변경 (--login) 바꿀ID 계정명
 e 계정만기일 지정
 d 사용자 홈 디렉터리 변경
 f 패스워드 만기일 지난 후 패스워드에 lock를 설정할 유예기간

 L 사용자 패스워드 LOCK
 
- nice : 프로세스 우선순위 변경( 프로세스 이름으로 )
- renice : 프로세스 우선순위 변경( PID로 )
- pgrep : 지정된 기준에 따라 실행 중인 프로그램의 프로세스 ID를 찾을 수 있는 명령 줄 유틸리티
- killall : 특정 프로세스를 한번에 죽이는 명령어이다.
       즉, httpd 데몬 이 여러 개 실행되어 있을 경우 모두 종료하고자 한다면 killall httpd 를 사용하면 된다.
       -. killall의 주요 옵션
       -i : 프로세스 종료 전 물어보기(y,n)
       -v : 진행 현황 확인
       -w : 지정한 프로세스들이 모두 종료될 때 까지 종료 시도를 함
       -[signum] : 특정 시그널 지정하여 보내기
- file : 대상 파일의 유형을 알려주는 명령어
- stat : stat 명령어는 파일이나 파일 시스템의 상태 정보를 출력
- chage :
  사용자의 패스워드 만기 정보를 변경 및 설정하는 명령어이다
  root 권한을 가진 사용자만 사용 가능하다.
- touch -t 파일명 : 파일의 수정 시간(Modify time)을 변경
- du -sh ~ihduser
  -> 결과 2.9G    /home/ihduser
- logname : 처음 터미널에 로그인한 사용자 아이디 출력 (1건)
- gpasswd - '-A' 옵션을 사용해 그룹에 관리자를 지정할 수 있다.

- who : 현재 시스템에 로그인 되어 있는 사용자 출력
- whoami : 사용중인 권한자 (su명령으로 권한을 부여받은 사용자명)
- w : 로그인된 사용자와 수행중인 작업 출력
- users : 시스템에 로그인 되어 있는 사용자의 아이디 출력
- id : 시스템에 등록된 아이디 정보를 출력

useradd [옵션] [계정명]
-c : 코멘트
-d : 홈디렉토리
-e : 계정 만료일 지정
-f : 패스워드 만료일 지정
-g : (GID)그룹 지정
-G : 보조 그룹 등록
-u : UID 지정
-s : 쉘 지정

- grep
-v : 문자열이 제외된 라인을 출력.
"^[a-zA-Z]" : ^는 행의 시작 지시자로, 'a-z,A-Z로 시작하는 모든행과 대응한다'는 의미.
결국 시작 하는 문자가 a-z나 A-Z이 없는 파일인 일반파일만 출력한다.

- 1 - 표준출력을 뜻하는 파일 디스크럽터.
  2 - 표준 에러출력을 뜻하는 디스크럽터.
  /dev/null - 버리라는 표현 ( 쓰레기통 으로 표현 )
  > - 리다이렉트를 뜻함

- lastlog

  -t 날짜 : 지정한 날짜만큼 거슬러 올라가 사용자 정보 출력
  -u 사용자명 : 특정 사용자에 대한 정보만 출력

- insmod, lsmod, rmmod

- userdel (계정명) : 해당 계정의 홈 디렉터리와 메일 디렉터리가 남아 있습니다.
- userdel -r (계정명) : 해당 계정의 홈 디렉터리와 메일 디렉터리까지 삭제합니다.

- last

  -R : IP주소나 호스트명을 출력하지 않는다.
  -F : 로그인 및 로그아웃 시간을 출력한다.
  -i : 접속한 호스트의 IP주소로만 출력한다.
  -a : 호스트명이나 IP주소 필드를 맨 마지막에 출력한다



10. 프린터, 사운드 관련
* 프린터
- CUPS : 애플개발, 웹상 제어 가능, 네트워크 프린터 서버 지원, 1padmin명령어 사용, 컴퓨터를 인쇄 서버로 기능하도록 해주는 유닉스 계열 운영 체제를 위한 모듈 방식의 프린팅 시스템
- SANE : 스캐너 액세스 나우 이지(Scanner Access Now Easy, SANE)는 이미지 스캐너 및
         카메라 하드웨어 (플랫 베드 스캐너, 핸드 헬드 스캐너, 비디오 및 스틸 카메라, 프레임 그래버 등)에
         표준화된 액세스를 제공하는 API(Application Programming Interface)이다.
* 사운드
- ALSA : 고급 리눅스 사운드 아키텍처(Advanced Linux Sound Architecture, ALSA)는 리눅스 커널의 구성 요소 중 하나로
             사운드 카드용 장치 드라이버를 위한 API를 제공하는 소프트웨어 프레임워크이다.
- LADSPA : 소프트웨어 오디오 프로세서 및 효과를 광범위한 오디오 합성 및 녹음 패키지에 연결할 수 있는 표준
- OSS : 오픈 사운드 시스템(Open Sound System, OSS)은 유닉스 및 유닉스 계열 운영 체제의 사운드를 만들고 캡처하는 인터페이스이다.
  표준 유닉스 장치 (이를테면 POSIX READ/WRITE/IOCTL 등)에 기반을 두고 있다.
  이 용어는 OSS 인터페이스를 제공하는 유닉스 커널의 소프트웨어를 가리키는 말로 쓰이기도 한다.
- /dev/lp0은 프린터 장치를 의미 리다이렉션의 대상으로 지정하여 출력
- lp: -d 옵션은 출력 대상 프린터를 지정, -n 인쇄할 수, System V

- lpr: -# 인쇄할 수, BSD
- pr: 파일의 출력 형식을 조정하여 표준 출력으로 출력
- LPRng : 버클리 프린팅 시스템으로 BSD계열 유닉스에서 사용하기 위해 개발되었다.
  프린터 스풀링과 네트워크 프린터서버를 지원
- cdparanoia : 오디오 CD에서 음악 파일을 추출할 때 사용하는 명령
- alsamixer : 여러 개의 사운드를 믹싱 하는 GUI 프로그램

- xcam : GUI 기반으로 평판 스캐너나 카메라부터 이미지를 스캔

- sane-find-scanner : USB 및 SCSI 스캐너와 관련 장치 파일을 찾아주는 명령

- scanadf : 자동문서공급장치가 장착된 스캐너에서 여러개 사진을 스캔


11. 자주 나오는 주요 보안 관련 도구
- nmap : network mapper의 줄임말로 네트워크 탐색과 보안감사를 하는 오픈소스 툴
- Nessus : 네서스(Nessus)는 상용 취약점 스캐너이다. 비 기업 환경에서 개인은 무료로 사용할 수 있다.
- Tripwire : 오픈 소스 트립와이어는 시스템의 특정한 파일의 변화를 모니터링하고 알림을 해주는 유용한 보안 그리고 무결성 도구    
- tcpdump : 조건식을설정하여네트워크인터페이스를 거치는 패킷 헤더 정보를 출력할 수 있다.
- Stacheldraht: Smurf 공격
- TFN: 공격자 시스템과 마스터 시스템 간 연결이 평문으로 되어 있으며, 브로드캐스트 공격 가능
- TFN 2K: 포트도 임의로 결정되어 암호화를 사용
- Trinoo: UDP Flooding 분산 서비스 거부 공격을 할 수 있는 도구
- John the Ripper : 패스워드 무작위 공격도구, 보안관련 이슈에서 방지도구로도 쓰임
- Suricata : 오픈소스 침입탐지 도구
트래픽이 유해하다고 판단하면 관련 로그를 남겨 침입을 방지하고
예상 가능한 공격을 설정해 대응하여 침입을 탐지함
- [sshguard] : SSH 무차별 대입 공격을 차단 함
- [DenyHosts]: 관리자가 설정한 횟수 이상의 로그인 실패시 해당 로그를 확인하여 IP를 블락시킴 (SSH만 감시)
- [fail2ban] : SSH 뿐만 아니라 아파치 웹 등의 로그 파일을 분석하여 공격을 차단하는 기능을 제공한다.


12. 백업 방법
- dd : 블록 단위로 파일을 복사하거나 파일 변환을 할 수 있는 명령어
- cpio : cpio(copy in and out) 명령을 사용하여 개별 파일, 파일 그룹 또는 전체 파일 시스템을 복사, (*) 증분 백업을 지원하지 않음
- dump
    파일시스템 자체를 직접 읽어내는 방법을 사용하여 파일들이 아닌 파일시스템 전체를 백업한다.
    일반적으로 파티션 단위로 백업할 때 유용하게 사용되며, 0-9단계의 레벨을 가지고 증분 백업을 지원하고 있다.
    명령어 : $ dump [옵션] [백업장치] [백업대상]
    0~9 : 레벨 0이 전체 백업이고 나머지 레벨들은 부분백업을 의미한다.
    -f : 백업할 파일명 또는 디바이스명을 작성한다.
    -u : 백업 후 /etc/dumpdates 라는 파일에 작업정보를 기록한다.
    /etc/fstab 파일을 참조
    increment(증분) 백업 지원
- rsync : rsync: Remote sync의 줄임말로 여러가지 옵션을 이용해 원격 또는 로컬간에 파일이나 디렉토리를 복사하는 툴, rsync는 root 권한 없이 모든 사용자가 사용할 수 있다.

  -v : 자세히
  -r : recursively 데이터 복사
  -a : archive mode. 이 모드를 이용하면 심볼릭 링크, 파일유저/그룹권한, timestamp도 복사한다.
  -z : 파일 데이터 압축.

- restore [옵션] [백업파일/폴더명] - 상호 대화식 복구 프로그램
  -i : 대화형 모드로 파일 복원
  -f : 장치 이름을 지정
  -r : 백업 대상 전체를 복원
  -t : 백업 대상 목차를 표시
  -x : 명령행에서 지정한 파일을 복원
  -v : 복원하고 있는 경로명 표시
  -h : 디렉토리를 생성하며 복구 (백업된 경로대로 디렉토리 생성)

13. 가상화
- SVM : 가상화 기술로 바이오스에서 AMD 가상화를 활성화 할때 사용
- VDI : 가상 데스크톱 인프라, 가상머신을 사용하여 가상 데스크톱을 제공하고 관리하는 가상화 솔루션
- VMX : 가상 시스템 실행 파일, 스왑 파일을 사용하면
- Insulation :
     가상화된 자원들과 물리적자원들 간의 상호 맵핑은 가상화 자원들 또는 가상화 자원들을
     사용하는 사용자들에게 아무런 영향을 미치지 않으면서 물리적 자원들이 교체될 수 있도록 하는것
- Provisioning :
     프로비저닝(provisioning)은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가
     필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다.
     서버 자원 프로비저닝, OS 프로비저닝, 소프트웨어 프로비저닝, 스토리지 프로비저닝, 계정 프로비저닝 등이 있다.
     수동으로 처리하는 '수동 프로비저닝'과 자동화 툴을 이용해 처리하는 '자동 프로비저닝'이 있다.
- Emulation :
     한 컴퓨터가 다른 컴퓨터처럼 똑같이 작동하도록 소프트웨어나 마이크로 프로그래밍을 사용하는 기법.
     IP 네트워크상에서 가상 SCSI 버스를 구현하는 ISIC나 물리적 디스크 스트로지 상에서
     가상 테이프 스토리지 등이 이에 해당
- VirtualBox : x86 기반 가상화 소프트웨어
- KVM : KVM(Kernel-based Virtual Machine: 커널 기반 가상 머신)은 Linux®에 구축되는 오픈소스가상화 기술.
   구체적으로, KVM을 사용하면 Linux를 하이퍼바이저로 전환하여 호스트 머신에서 게스트 또는 VM(가상 머신) 등
   격리된 가상 환경 여러 개가 실행되도록 할 수 있다
   2005년에 설립된 Qumranet에서 개발한 하이퍼바이저로 x86시스템을 기반으로 동작한다
   상용화된 제품에는 RHEV가 있다  

   cpu만 반가상화 기술 지원 x
   이더넷, Disk I/O, VGA그래픽 인터페이스는 반가상화 지원
- Citrix의 XenServer
   대표적인 반 가상화(Para Virtualization) 하이퍼바이저(hypervisor)리눅스 커널에서
   사용할 수 있는 공개SW기반 가상화 소프트웨어  
- VMware의 ESX Server : 전가상화(Bare-Metal/Hypervisor) 기법을 이용, Type-1 하이퍼바이저 서버
- Oracle의 VirtualBox : x86 기반 가상화 소프트웨어
- Microsoft의 Virtual Server
   Windows XP, Windows Vista 및 Windows Server 2003 운영 체제에서 가상 머신 생성을 용이하게 해주는
   가상화 솔루션이었습니다. 원래 Connectix에서 개발했으며 출시 전에 Microsoft에서 인수했습니다.
   Virtual PC는 Microsoft의 관련 데스크톱 가상화 소프트웨어 패키지입니다.
- libvirtd : libvirt 가상화 관리 시스템의 서버 측 데몬 구성 요소, Xen 기반의 가상 머신을 생성하기 위해 관련 데몬을 실행
- KVM이 지원하는 반가상화 항목
   이더넷카드, Disk I/O, VGA
  CPU는 반가상 기술을 지원하지 않음.
- VDI(Virtual Disk Image) : Oracle 버츄얼박스에서만 사용가능한 포맷 방식.
  VHD (Virtual Hard Disk) VHD 파일은 Oracle 버츄얼박스, 마이크로 소프트(Microsoft)의 Hyper-V, 시트릭스(Citrix)의 Xen에서 구동이 가능한 포맷방식.
  VMDK (Virtual Machine Disk) : Oracle의 버츄얼 박스, VMware의 Vmware Player에서 구동이 가능한 포맷 방식.

- Xen : CPU 전가상화 반가상화를 모두 지원하는 하이버 바이저 기반의 가상화 기술

- VMM(Virtual Machine Monitor): 물리적인 하드웨어를 가상머신의 하드웨어와 매핑하고 게스트 운영체제의 자원 사용을 관리->반가상화 지원해야 됨

14. LDAP
- IP 프로토콜을 기반으로 사용자, 시스템, 네트워크 서비스 정보 등의 디렉터리 정보를 공유할 수 있다.
- 다렉터리는 논리, 계급 등을 기준으로 조직화 되어 있다.
- 일반적으로 RDBMS에 비해 검색 속도가 빨라서 읽기 위주의 서비스에 좋은 성능을 발휘한다.
   (*) "자주 변경되는 정보인 경우에"는 해당 안됨  
- 이름, 주소와 같이 하나 이상의 속성을 가진 객체로 구성된다.
- X.500 Directory Access Protocol 기반으로 만들어진 통신 규약이다.
- 읽기 위주의 검색 서비스에서 상당히 좋은 성능을 발휘한다.
- givinName : 이름을 나타내는 속성입니다.
- cn(common name) : 이름+성 헷갈리지마세요
- c : CountryName : 국가이름
- cn : CommonName : 이름과 성의 조합
- sn : SurName : 성
- DN : Distinguished Name
- RDN : Relative DN

"st" : "주/도 이름"

"l" : "도시/지역 단위"

"street" : "도로명"

"o" : "조직 이름"
"ou" : "조직 부서명"

"dc" : "도메인 네임 요소"

dn : 조직 내 고유 식별자

15. NIS

- NIS는 Network Information Service로 네트워크 기반으로 여러가지 정보를 제공해주는 서비스 입니다.
기본적으로 RPC(Remote Procedure Call, 데이터 암호화 및 인증, 운영 중에 권한 설정, 복제 지원)를 사용하기 때문에 관련 호출을 처리해주는 데몬을 사용해야하는데 원래 portmap을 사용하다가 rpcbind로 변경되었습니다.
- hosts.byname: 호스트 관련 정보를 출력한다.
     $ ypcat hosts.byname
- passwd.byname    : 사용자 관련 정보를 출력한다.
     $ ypcat passwd.byname
     USERID:x:10000:10000:USER NAME:/home/USERID:/bin/bash   
- NIS 서버와 연관된 그 밖의 파일        
     $ ypcat shadow.byname
     USERID:$1$pAhn0Osq$hY4yCJs4mvBOTg6sxmmjM/:16894:0:99999:7:::
     $ ypcat group.byname
     nisusers:x:10000:
- /etc/yp.conf : NIS 클라이언트에서 NIS 서버 및 도메인명을 지정
  domain OOPS-NIS
  server nis1.domain.com
  server nis2.domain.com

- bind : NIS 클라이언트, 서버 양쪽 다써야되면 이거
- ypbind: NIS 클라이언트와 관계됨
- ypserv: NIS 서버를 운영하는 주 데몬 스크립트
- yppasswdd : NIS 클라이언트에서 패스워드 시에 적용되도록 해주는 데몬 스크립트
- ypxfrd :NIS 서버와 NIS 클라이언트 간의 맵핑 속도를 높여주는 데몬 스크립트

- ypwhich : NIS 서버명과 관련 맵 파일 정보를 출력합니다.
- ypcat : NIS 서버의 DB라고 할 수 있는 맵 파일의 내용을 확인합니다.
- /etc/sysconfig/network
: 네트워크 관련 항목들을 설정하는 파일
 NIS 도메인 이름을 부팅 시에도 적용하기 위해 이 파일에 도메인을 등록
 NISDOMATIN = [도메인 이름] 을 추가 해주면 된다.

- RPC (Remote Procedure Call) 처리를 위한 데몬은 rpcbind입니다. CentOS 7에서는 이전 버전에서 사용되었던 portmap 데몬이 rpcbind로 대체

- NIS 클라이언트를 사용하기 위해서는 ypbind와 yp-tools라는 패키지가 설치되어 있어야한다.

- yppush : NIS 서버의 데이터 베이스를 업데이트 하는 명령

- ypchsh : NIS 클라이언트에서 등록된 사용자의 쉘을 변경
- ypchfn : NIS 클라이언트에서 등록된 사용자의 정보를 변경


16. ZONE 관련
- 관리자의 계정이다!! => 계정.도메인.  (마지막에 ‘.’을 붙인다.) kaituser.ihd.or.kr.
- PTR : 리버스 존(Reverse Zone) 파일에만 사용하는 레코드 타입
- /etc/named.conf 내 zone 영역
zone "." IN {
        type hint;
        file "named.ca";
};

include "/etc/named.rfc 1921.zones";

acl "ihd" { 192.168.2.24; 192.168.4/24; };

- 파일 설명
   "." 루트 도메인 지정
   type : hint(루트도메인을 지정), master(1차 네임서버), slave(2차 네임서버)
   file : Name Server에 대한 설정을 named.ca라는 파일에서 참조하는 설정
   named.ca 파일은 13개의 루트 네임서버의 정보가 있다.
   -> 루트 네임서버가 13개일 경우 493Byte으로 UDP 연결이 가능하지만
      루트 네임서버가 13개 이상일 경우 512Byte가 넘어서 TCP 연결로 해야하기 때문에
      부하가 많아 생겨 13개까지 루트 네임서버가 있다.
- MX : (Mail Exchanger)의 약어로 해당 도메인에 대한 메일서버를 지정하는 레코드이다.
        일반적으로 메일서버를 여러개 사용할 때 MX레코드 다음에 우선순위 번호를 지정하여
        메일을 수신할 수 있다.

  예) IN  MX 10  mail.userdomainname.com.
      IN  MX 20  mail2.userdomainname.com.

- CNAME : 호스트의 alias(엘리어스)를 정의한다.
- /var/named : 루트(root) 도메인 서버의 정보를 담은 named.ca, 사용자가 설정한 zone 파일 등을 저장하는 디렉터리이다.
8                 IN      NS      ns.userdomainname.com.
9                 IN      MX      10       mail.userdomainname.com.
10  ns            IN      A                211.108.52.60
11  www           IN      A                211.108.52.60
12  mail          IN      CNAME   www
13  ftp           IN      CNAME   @
14  *             IN      CNAME   @
22                IN      PTR     ihd.or.kr
- 리버스 존 파일을 생성하지 않으면 IP주소에 대한 도메인 조회가 불가능하다.

17. SQUID : 스퀴드(squid)는 대중적인 오픈 소스(GPL)소프트웨어 프록시 서버이자 웹 캐시이다.
   반복된 요청을 캐싱함으로 웹서버의 속도를 향상시키는 것부터, 네트워크 자원을 공유하려는 사람들에게 웹,
   DNS와 다른 네트워크 검색의 캐싱을 제공하고, 트래픽을 걸러줌으로써 안정성에 도움을 주는 등에 이르기까지 광범위 하게 이용된다.
- squid.conf
   포트 설정 http_port 3128 <<<<<<<<<<<<<<<<<<<<
    스퀴드 서버 포트를 설정한다.
    default 값은 3128 이다.    
   캐시 설정 cache_mem 8 MB
    스퀴드 서버에서 사용하는 캐시 사이즈를 설정한다.    
   로그 설정 cache_access_log /usr/local/squid/logs/access.log
    접근로그를 기록하는 파일을 설정한다.   
- http_access allow : 특정 네트워크 대역만 사용하도록 설정

- cache_dir ufs /var/spool/squid 100 16 256

  /var/spool/squid 디렉토리에 캐시 데이터들이 최대 100메가 까지 저장될수 있고,
  캐시가 저장될 1차 디렉토리는 16개로 설정한 다음 그 밑에 2차 하위 디렉토리 수를 256으로 설정.


18. vsftpd 
- vsftpd 서버에 접근이 불가능한 사용자 목록 파일에는 /etc/vsftpd/ftpusers 와 /etc/vsftpd/user_list 두가지가 있다
- vsftpd 는 보안, 성능, 안정성이 우수한 FRP 데몬.
  /etc/vsftpd/ftpusers 는 vsftpd 설정파일로서 파일에 등록된 사용자들의 서버 접속을 거부하겠다는 의미의 파일이다.
- vsftpd.conf 설정 파일 해설
  chroot_local_user = yes //홈 디렉토리 위로 이동 제한 여부 설정(기본값 NO)
                          //접속한 사용자의 홈 디렉터리를 최상위 디렉터리가 되도록 지정한다.
  
  chroot_list_enable = yes //chroot에서 제외할 사용자 목록파일 사용 여부 설정(기본값 NO)
  chroot_list_file=/etc/vsftpd/chroot_list //chroot에서 제외할 사용자 목록 파일과 경로 설정
  connect_from_port_20 = yes //standlone 모드를 운영하면서 데이터 전송포트 사용시 설정

  max_per_ip : ip 주소당 최대 접속 수
  max_per_client : 클라이언트당 최대 접속 수
  max_per_address와 max_per_ip_address는 존재하지 않습니다.


19. mail 관련
- m4: ‘m4.sendmail.mc > sendmail.cf’ 와 같이 sendmail.cf 생성
- mailq: 메일큐의 내용을 표시(메일 보낸 후)
- mail -v: 메일을 보낼 때 메일의 상세 내용을 표시(메일 보내기 전이면 이게 정답이다.)
- sendmail -bi: /etc/aliases의 정보를 읽어들여 관련 DB정보인 /etc/aliases.db 를 업데이트 한다.
- sendmail.cf
 Cw: 메일 수신 호스트의 이름을 설정하며, 보통 도메인명을 이용.
 Fw: 여러 개의 도메인명을 수신 호스트의 이름으로 이용할 경우 관련 설정 파일을 지정한다.
 O는 단독으로 사용하는 경우는 없고, O AliasFile, O MaxMessageSize, O ForwoardPath 등과같이 사용한다. 
 강제지정은 Dj
- sendmail.cf 파일이 삭제되었거나 복원할 경우에
  m4라는 매크로 프로세스를 이용하여 새롭게 생성
  예) # m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

- newaliases :  /etc/aliases 파일 설정 후에 변경된 내용을 적용
- sendmail: 리눅스에서 SMTP 프로토콜을 이용해 다른 메일 서버로 전달하는 프로그램으로, 보통의 리눅스 메일 서버 프로그램을 지칭한다
- makemap hash
   virtusertable 파일을 수정한 이후에는 access 파일과 같이 DB 파일을 만들어 주어야 하는데
   다음 명령어를 사용하여 만들어 줘야 한다.
   # makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
- forward
   본인 계정으로 들어오는 메일은 다른 메일 주소로 전달
   다른 이메일 주소로 새 메일을 모두 전달하거나 특정 유형의 메일만 전달하도록 선택
- aliases : 특정 계정으로 들어오는 메일을 다른 계정으로 전송되도록 설정한다.
- local-host-names : 메일 수신지(도메인과 호스트)를 설정  
- qmail : qmail은 유닉스에서 실행되는 메일 전송 에이전트(MTA)이다
- evolution :
   메일 사용자 에이전트(MUA, Mail User Agent)에 속하며,
   이메일을 읽고 쓰는데 사용됩니다. MUA는 MTA의 도움이 있어야 이메일을 보낼 수 있습니다.
- dovecot : POP3와 IMAP 역할을 수행하는 프로그램
- postfix: 전자메일을 송수신하는 무료 오픈소스 메일 전송 에이전트(MTA)로 IBM의 보안 전문가가 만든 메일 서비스이다.

- REJECT : 메일을 거절하고 거부 메시지 보냄
- DISCARD 메일을 거부 메시지 없이 무조건 거절

- MTA: Mail Transfer Agent SMTP 프로토콜을 이용하여 메일을 전송하는 프로그램, postfix, Qmail,sendmail
- MDA: Mail Delivery Agent 일종의 대리인 역할을 수행하는 프로그램, procmail
- MUA: Mail User Agent 사용자가 메일을 수신 혹은 발신할 때 사용하는 프로그램



20. 유틸 관련
ntsysv : 텍스트 환경에서 커서를 이용하여 부팅 중 자동으로 실행되는 서비스를 설정할 수 있는 유틸리티이다.
systemctl : 리눅스 서비스의 시작, 정지, 재시작 등을 제어하는 명령어로 CentOS7 이후에 기본 명령으로 사용된다.
chkdsk는 윈도우 운영체제에서 하드 드라이브의 파일시스템을 검사하고 장치 오류를 수정하는 유틸리티
chkconfig : 텍스트 기반의 명령형 프로그램으로 실행레벨에 따른 서비스의 on/off 설정 리스트를 출력하거나 설정한다.

21. X Window
- x클라이언트와 x서버 간 통신을 담당하는 것은 x프로토콜이다.
- xhost 는 원격지에서 X 클라이언트에 접속할 때  전체 클라이언트를 허가하거나 또는 IP를 허가하거나  호스트명에 대해 허가할 떄 사용함
- X 윈도우 시스템은 unix에서 구동하는 GUI 프레임워크다.
- X 서버란 입/출력 담당하는 소프트웨어를 말하며, 입력을 받아 디스플레이에 표시를 지시한다.
- X 클라이언트는 실제로 X가 표시된 화면에 떠 있는 창을 말한다. (일반적으로 서버와 클라이언트와는 다른 형태)
클라이언트는 서버의 입출력 지시를 받아서 서버에 화면 표시 명령을 내린다.
- DISPLAY는 X클라이언트 프로그램이 실행될 떄 표시되는 창이 설정되어 있는 환경변수이다.
만약 X클라이언트 프로그램을 원격지의 X 서버로 전송하려면 이 값을 변경하면 된다.
- 2004년 2월 라이선스 논란 이후로 Xfree86의 코드를 기반으로 한 x.org서버가 사용되고있다.

- startx -- :1 : 두 번째 윈도 터미널([Ctrl] + [Alt] + [F8])에 X 윈도를 실행시킵니다.

- xhost - 192.168.10.100 : X 서버에 접속이 허가된 ip를 제거

- make config: 이는 텍스트 기반 설정 인터페이스를 제공합니다. X 윈도 환경이 없어도 사용할 수 있습니다.
- make xconfig: 이 도구는 Qt 기반의 그래픽 설정 인터페이스를 제공합니다. 따라서 X 윈도 환경이 설치되어 있어야 사용할 수 있습니다.
- make menuconfig: 이는 텍스트 기반의 메뉴 구동 설정 인터페이스를 제공합니다. 이 역시 X 윈도 환경이 없이도 사용할 수 있습니다.
- make gconfig: 이 도구는 GTK+ 기반의 그래픽 설정 인터페이스를 제공합니다. X 윈도 환경이 설치되어 있어야 사용할 수 있습니다.
X 윈도가 미설치된 환경에서는 텍스트 기반 인터페이스를 사용해야 합니다. 따라서, 옵션 1인 make config와 옵션 3인 make - -

- menuconfig의 조합이 알맞습니다. 이 두 도구는 텍스트 기반 인터페이스를 제공하기 때문에 그래픽 환경이 필요 없습니다.


22. RAID
Raid 0 : 하나의 파일이나 연속된 데이터를 블록으로 나누어 여러 디스크에 분산하여 기록하는 기술로, 스트라이핑(Striping)이라고도 합니다. 입출력 속도는 빠르지만 디스크가 하나만 고장나도 데이터가 소실되어 복구가 불가능한 불안정한 기술입니다.
Raid 1 : 동일한 데이터를 각각의 디스크에 저장하는 방식으로 미러링(Mirroring)이라고도 합니다. 속도는 느리지만 디스크중 하나에 문제가 생겨도 다른 디스크에 데이터가 온전히 남아있기 때문에 데이터 보존, 복원 측면에서 안정성이 뛰어납니다.
Raid 10 : Raid 1과 Raid 0을 합친 기술로, 먼저 미러링을 마친 디스크 둘을 나머지 둘과 함께 스트라이핑하여 안정성과 속도를 둘 다 잡는 방식입니다. 최소 4개 이상의 디스크가 필요합니다.

RAID-5 : 최소 디스크의 구성이 3개입니다.
RAID-6는 최소 디스크의 구성이 4개이고 RAID-5에 비해 디스크의 공간 효율성은 떨어집니다.

- mdadm -C /dev/md2 -l 'RAID level' -n 'RAID 구성할 디아비스 개수' /devsdb1 /dev/sdc1

  -l 0, 1, 4, 5, 6

  -n 2,3,4....

  -C : 장치 생성
  -n : 구성할 디바이스 개수 지정
  -D : 지정한 RAID 의 자세한 정보를 보여줌
  -S : 구성된 RAID의 배열을 비활성화 하여 모든 자원을 해제함
  -Q : 지정한 RAID 장치의 간단한 정보를 보여줌
  -f : 특정 장치에 오류를 발생 시킬때 사용
  -a : 작동중인 RAID에 디바이스를 추가할때 사용
  -r : RAID에서 디바이스를 제거함


23. 기타
- 점보 프레임 : 컴퓨터 네트워킹에서 점보 프레임(jumbo frame)은 1500바이트 이상의 페이로드를 지닌 이더넷 프레임으로, 이는 IEEE 802.3 표준에 의해 설정된 제한치이다.[1] 전통적으로, 점보 프레임은 최대 9000바이트의 페이로드를 전달할 수 있으나 여러 종류가 존재한다. 다수의 기가비트 이더넷 스위치와 기가비트 이더넷 네트워크 인터페이스 카드들이 점보 프레임을 지원한다. 일부 패스트 이더넷 스위치와 패스트 이더넷 네트워크 인터페이스 카드들 또한 점보 프레임을 지원한다.
- Ansible : 앤서블은 여러 개의 서버를 효율적으로 관리하기 위해 고안된 환경 구성 자동화 도구
-  서비스의 초당 요청 개수가 50개 이상일 경우 10초 동안 접속 연결을 중단
   cps = 50 10 [초당 요청수] [제한시간]
- exec : 새로운 프로세스가 기존 프로세스를 덮어씀
- fork : 새로운 프로세스가 별도로 새로 생김
- 데몬 실행 모드
  inetd : 서비스 요청 시 메모리 적재 후 응답
  standalone : 메모리에 항상 상주하다가 서비스 요청시 즉답
- SIGTERM - 15
- SIGKILL - 9
- SIGSTOP - 19
- SIGQUIT - 3
- TCP/IP의 시초는 ARPANET이 맞으나
  IETF(인터넷 표준화기구)에서 제정하고 지속적인 기술개발을 합니다.
- yum : redhat 계열의 온라인 패키지 관리 툴
- apt-get : debian 계열
- zypper : suse 리눅스 온라인
- yast : suse 리눅스에서 사용하나 오프라인으로 관리
-  logrotate.d 내부에 설정 예시
  var/log/wtmp {                # 로테이트 경로
      weekly                    # 매주
      create 0755 system admin  # 권한 0644 , 소유자 root, 그룹 utmp
      minsize(size)             # 지정한 용량이 되면 로그로테이트를 실행한다. 10k, 1M 이런식으로 지정
      rotate 4                  # 정리할 로그의 개수를 지정하는 부분입니다 로그 회전주기에 따라 진행
                                  로그를 4세대분 남긴다. weeky를 지정했을 경우는 4주간이라고 하는 의미가 된다.
- 시스템 실행/중지/재실행, 런레벨이 따라 조정 안됨
 systemctl -> /usr/bin/systemctl
 service   -> /etc/init.d
- 런레벨에 따라 실행 구분 가능
 ntsysv    : text 환경에서 커서를 이용해서 booting 중 자동으로 실행되는 서비스를 설정,
 chkconifg : booting시 자동으로 실행되는 서비스를 설정,
- ethtool : 리눅스 네트워크 드라이버 및 하드웨어 설정 조회 및 변경 명령어.
- ISO, EIA, IEEE -> 프로토콜 제정 기관
- ICANN -> 인터넷 도메인 관리와 정책을 결정하는 국제기구
- find / -type f -perm 4000
 /(루트) 아래에 있는 -perm 4000(Set-UID)설정된 -type f(파일)을 find(찾겠다)
 perm 4000 : 정확히 같은 권한을 가진 파일을 찾는다
 perm -4000 : 부여한 권한을 만족하는 파일을 전부 찾는다
 perm /4000 : 부여한 권한을 하나라도 만족하는 파일을 찾는다.
- make mrproper  실행하면 .config 파일이 사라지는 것을 볼 수 있다.
- 강력한 명령의 순서 : distclean > mrproper > clean
- Standalone 방식 vs inetd(xinetd) 방식
  Standalone이 속도가 빠르다는 장점이 있지만 서버 리소스를 많이 점유한다는 단점이 있다.  
  반면 xinetd 데몬은 슈퍼 데몬을 이용하여 개별 서비스를 동작시키는 방식으로 속도가 느리지만 서버 리소스를 절약할 수 있다.
  따라서, 사용자가 많지않고 빠른응답이 요구되지않는 서비스에 xinetd 데몬을 사용하는것이 적합하다.

- SELinux : 리눅스의 보안을 강화해주는 보안강화 커널
enabled : SELlinux 사용
disenabled : SElinux 해제
enforcing : SELilnux에 해당하는 규칙에 어긋나는 동작은 전부거부
permissive : 해당하는 규칙에 어긋나도 동작은 허용(단 감사로그는 남김 audit log)

setenforce 0 비활성화
setenforce 1 활성화
getenforce 활성화여부 확인 명령어

- PHP 짧은 태그 허용하기 (short_open_tag)
short_open_tag = On
PHP에 시작 태그는 <?php로 시작하는 게 일반적이지만, 짧은 태그를 허용하면 <?만으로도 코드실행이 가능해집니다.
설정 방법>> php.ini 파일을 열어서 short_open_tag을 찾아 다음과 같이 변경합니다

- NI 범위 -20 ~ 19

- make clean : 과거 컴파일 내용을 삭제합니다.
  make clean all : 과거 컴파일 내용을 삭제하는데 타겟 파일이 여러개일 경우 사용합니다.
  make mrproper : 컴파일에 영향을 주는 이전 정보들을 삭제합니다.
  make distclean : 소스 압축해제시 상태(원본)로 초기화 합니다.

- make xconfig : Qt4기반
  make qconfig : GTK+기반
  make menuconfig : ncurses 기반
  make nconfig : Pseudo 기반(결국 ncurses 기반이나 menuconfig보다 조금은 더 향상 된 텍스트 기반의 컬러 메뉴 환경설정 도구)

- iptables-save > firewall.sh

- port 631 : IPP(인터넷 인쇄 프로토콜)

         143 : IMAP(인터넷 메세지 접근 프로토콜)

         443 : HTTPS

- Land Attack : 공격자가 임의로 자신의 IP 주소 및 포트를 대상 서버의 IP 주소 및 포트와 동일하게 하여 서버를 공격한다.

- 단일 홈 게이트웨이 + 스크린 라우터 = 스크린 호스트 게이트웨이

- IEEE : 전기전자공학자협회(Institute of Electrical and Electronics Engineers, IEEE)는 전기전자공학 전문가들의 국제조직이다.

- ICANN :  ICANN은 1998년 설립된 미국의 비영리기구로, 국가나 단체 또는 ISP에게 IP 주소 공간을 할당 및 관리하고, TLD의 신규 등록 및 관리 업무를 수행

- RIP는 동적 라우팅 프로토콜
- RTP(real-time transport protocol)는 이름처럼 실시간 스트리밍을 위한 프로토콜

- nftables : iptables를 만든 넷필터 프로젝트에서 iptables, ip6tablesm arptables, ebtables를 대체하기 위해 새롭게 만든 방화벽 소프트웨어

 


24. MySQL 관련
- ld.so.conf : 공유 라이브러리 디렉토리로 추가 등록
- ldd : 지정한 프로그램의 라이브러리 의존성을 확인할 때 사용하는 명령어다.
- ldconfig : 공통적인 라이브러리를 사용하는 것을 동적 라이브러리라고 하는데,
              바이너리를 실행할 때 shared object 등의 동적 라이브러리를 연결해 주는 링커 설정 명령어.
              리눅스에서 .so 파일을 제대로 인식하지 못할 때 공유 라이브러리 캐시를 재설정합니다.
              /etc/ld.so.conf 설정된 동적 라이브러리 정보를 /etc/ld.so.cache 파일로 만들어 주는 일을 한다.
              이로서 로더는 ld.so.cache 정보를 기반으로 보다 빠르게 라이브러리를 찾아 낼 수 가 있다.
              ld.so.conf 설정을 변경하면 반드시 ldconfig 명령을 수행하여 cache 를 갱신해 주도록 하자.

- MongoDB, Canssandra는 NoSQL이지만 SQLite는 SQL에 속합니다.

- MySQL 최신 버전의 경우 cmake -> make -> make install 순으로 설치


25. httpd.conf, apache 관련
- Include : 구성파일 추가
        예) Include conf/extra/httpd-mpm.conf
- AddType : 매핑 목록이 포함된 파일
        예)    AddType application/x-gzip .gz .tgz
- LoadModule : 관련 모듈을 활성화
        예) LoadModule authn_core_module modules/mod_authn_core.so
- htpasswd : 암호 인증이 필요한 웹 페이지를 대상으로 아이디와 암호를 생성.
- apachectl : 아파치 웹 서버의 실행, 종료,  재시작을 위한 도구.
- httpd : 아파치 웹 서버의 데몬 프로그램.
  -t : 문법적 오류 점검
  -f : 아파치 데몬 실행
  -S : 가상 호스트 목록 출력
  -l : 컴파일된 모듈 목록 출력
  -M : 로딩된 모든 모듈 출력
- userdir : 아파치 서버 사용자들이 외부에 공개하고자 하는 html 문서들을 저장하기 위한 용도. 사용자별 디렉토리를 말함.
- userdir.conf 파일을 이용하여 특정사용자의 userdir 디렉토리 사용여부를 허용 및 거부 가능.

- FollowSymLinks : 디렉토리 내에서 심볼릭 링크의 사용을 허가합니다.

- DirectoryIndex : 웹 사용자가 관련 디렉터리에 접근 시 index.php 파일을 가장 먼저 인식하도록 설정

- LoadModule userdir_module modules/mod_userdir.so : 개인 홈페이지 사용자를 위해 httpd.conf 파일에서 관련 모듈 활성화


26. 삼바 관련
- hosts allow = 192.168.5. 192.168.6. EXCEPT 192.168.13
→ 앞 두 대역은 접근허가 except는 제외
대역은 192.168.12.0/255.255.255.0 와 같은 형식을 사용할 수도 있다.
- smbclient  명령어 : windows 공유 폴더에 접근하기 위한 명령어, 형식 : # smbclient //[HOSTNAME | IP]/[SHARE_NAME(디렉터리)]

  삼바의 경우 \(Back salash) 와 /(slash)를 모두 지원한다.
  \는 윈도우의 2배를 이용한다.
  /는 윈도우와 동일하다.
ex)
  1. smbclient //192.168.12.22/lin
  2. smbclient \\\\192.168.12.22\\lin
- smbmount : 원격지 서버에 설치되어 있는 삼바 서비스(삼바계정)를 원격마운트 할 수 있는 삼바마운트 명령어
- smbstatus : 사용자 이름, 기본 그룹, SMB 프로토콜 버전, 암호화 및 서명 정보가 포함
  Registered MSG_REQ_POOL_USAGE
  Registered MSG_REQ_DMALLOC_MARK and LOG_CHANGED
  lp_load_ex: refreshing parameters
  ...
- testparm : samba 설정 정보 확인
  Load smb config files from /etc/samba/smb.conf
  Processing section “[Storage]”
  Processing section “[read only]”
- 옵션정리
  comment = samba shared directory # 간단한 공유 폴더 설명
  path = /smbdir # 공유 디렉토리 경로
  read only = no # 읽기 전용
  writable = yes # 쓰기 전용
  guest ok = no # 다른 사용자들도 이용할 수 있도록 설정
  valid user = user1 # 공유 디렉토리를 이용할 수 있는 사용자를 설정 <<<<<<<<<<<<<<<<<<
  create mask = 0777 # 파일 허가권
  directory mask = 0777 # 디렉토리 허가권

  write list =@ihd # @를 사용하여 그룹을 지정

- pdbedit : 삼바 사용자의 데이터베이스 파일인 SAM Database를 관리해주는 명령입니다.


27. TCP Wrapper
- Tcp Wrapper 설정
in.telnetd : .cbt.com EXCEPT \http://www.cbt.com -> http://www.cbt.com을 제외한 cbt.com 도메인의 모든 호스트에 대하여 서비스 접근허가
in.telnetd : 192.168.5.13 호스트의 접근차단
in.telnetd 뒤에 도메인이냐 IP주소냐에 따라 접근허용과 차단이 나뉘니 주의

28. NFS 관련
- showmount : showmount 명령어는 NFS Server에 NFS Client가 접속해서 사용하고 있는 상태를 체크
     (*)  NFS 서버에 익스포트된 정보를 확인
  * showmount -a 호스트명
    디렉토리 형식으로 모든 원격 마운트 정보 출력
  * showmount -d 호스트명
    클라이언트에서 원격으로 마운트한 디렉토리 목록 출력
  * showmount  -c 호스트명
    export된 디렉토리의 목록 출력
  * showmount -e 192.168.0.13

  • ro : 읽기 전용, 디폴트 값이다.
  • rw : 읽기쓰기
  • root_squash : 클라이언트가 root 권한 획득을 막는다. uid/gid가 0의 요청을 익명의 uid/gid(일반적으로 nobody)로 매핑한다. 그외 uid/gid(일반 계정)에 대해서는 해당되지 않는다. 디폴트 값이다.
  • no_root_squash : 클라이언트가 root 권한 획득가능, 파일 생성시 클라이언트의 권한으로 생성됨
  • all_squash : 모든 uid, gid를 익명사용자에게 매핑합니다. 디폴트 값이다.
  • no_all_squash : no_root_squash 와 동일, 디폴트 값이다.
  • sync : 변경 사항이 커밋된 후에만 요청에 응답(안정적인 저장), 디폴트 값이다.
  • async :   요청에 의해 변경되기 전에 요청에 응답,  이 옵션을 사용하면 일반적으로 성능이 향상되지만 비용이 많이 듭니다. 부정한 서버 재시작 (예 : 충돌)으로 인해 데이터가 손상 될 수 있음

 


29 dhcp 관련
- dhcpd.conf
  # Global configuration ####################################
  option domain-name "chhanz.com";
  option domain-name-servers ns.chhanz.com;
  default-lease-time 3600;                    //기본 임대 시간
  max-lease-time 7200;                        //최대 임대 시간
  authoritative;

  # subnet configuration ####################################
  subnet 10.50.2.0 netmask 255.255.255.0 {
   option routers                  10.50.2.254; -> 192.168.5.1 변경
   option subnet-mask              255.255.255.0;
   option domain-name              "chhanz.com";
   option domain-name-servers      10.50.2.51, 1.1.1.1;
   option time-offset              -18000;
   range 10.50.2.52 10.50.2.59;
  }

  option domain-name : Domain name을 지정합니다.
  option domain-name-servers : DNS 서버를 지정합니다.
  default-lease-time : 임대 요청 만료 시간을 초단위로 지정합니다.
  max-lease-time : 클라이언트가 가지고 IP를 가지고 있을 최대 시간을 초단위로 지정합니다.
  option routers : Gateway 주소를 지정합니다.
                   (*) 할당되는 게이트웨이 주소를 192.168.5.1로 변경
  range : 클라이언트에 할당할 IP의 범위를 지정합니다.

30. GRUB 관련
- Grub,conf의 변수인 default는 사용자가 아무런 선택을 하지 않을 때 기본으로 부팅할 운영체제의 순서를 말한다.
 0: grub.conf상의 첫번째 운영체제
 1: grub.conf상의 두번째 운영체제
 2: ‘Other’ 운영체제

- md5crypt : 셸 프롬프트에서 암호화된 패스워드를 설정
1) default=0
      => 기본값으로 부팅되도록 설정하는 부분이다. grub 선택화면에서 특별히 선택하지 않으면 여기에 설정되어진 값에 해당하는 운영체제를 로딩한다. 현재 설정인 0값은 아래 항목중에서 제일 먼저 설정되어 있는 운영체제를 말한다.
  2) timeout=10
      => grub 부트화면에서의 대기시간이다. 단위는 초이다. 현재 설정은 10초간 선택이 없으면 default에 설정된 값으로 부팅된다.
  3) splashimage=(hd0,3)/boot/grub/splash.xpm.gz
      => 부트 화면의 배경이미지를 지정하는 부분이다. xpm형태의 그림이미지를 압축한 xpm.gz파일 을 사용한다. (hd0,3)의 뜻은 /dev/hda4라는 뜻이다.
        (참고) 리눅스 디바이스 와 grub 디바이스와의 관계
              1. 기본관계
                /dev/fd0 : (fd0)
                /dev/hda : (hd0)   => SCSI 하드디스크인 경우에 첫번째 물리적인 디스크도 이값에 해당한다.
                /dev/hdb : (hd1)
              2. 사용예
                /dev/hda1 : (hd0,0)
                /dev/hda4 : (hd0,3)
   4) title Red Hat Linux (2.4.18-14)
             root (hd0,3)
             kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
             initrd /boot/initrd-2.4.18-14.img
     => 엔트리를 나타낸다. 위의 예는 리눅스의 전형적인 기본구조이다.
       (기본구조)
         title 부트_엔트리_설명
                root (하드디스크디바이스명,부트파티션명)
                kernel /커널이미지경로 ro root=루트디바이스명
                initrd /초기화에_필요한_이미지경로        // 초기화 Ram Disk Loader이다.
  5) title DOS
             rootnoverify (hd0,0)
             chainloader +1
     => 엔트리를 나타낸다. 윈도우계열의 전형적인 기본구조이다.
       (기본구조)
         title 부트_엔트리_설명
               rootnoverify (윈도우가_설치되어_있는_하드디스크_디바이스명,파티션명)
               chainloader +1    // 윈도우 운영체제는 chains-load에 의해서 부팅되는데 이것에 관한 설정이다.

31. GNOME 관련
- nautilus - GNOME 파일 매니저
- KWin - KDE의 윈도 매니저
- Metacity - GNOME 2 윈도 매니저
- Mutter - GNOME 3 윈도 매니저

32. FTP 관련
* m은 multiple의 약자
- mget = 원격지에 있는 파일 가져오기
- mput = 업로드
- mdelete = 멀티 딜리트로 여러개의 파일 동시 삭제
- cd [directory]: 디렉터리 이동
- get [filename]: 단일 파일 다운로드
- mget [files]: 여러 파일 다운로드
- put [filename]: 단일 파일 업로드
- mput [files]: 여러 파일을 업로드

33. chmod 관련
- chmod o+w /data -> 게스트 유저에게 쓰기 권한(w) 지정
  
   chmod [OPTION] [MODE] [FILE]
      OPTION
        -v : 모든 파일에 대해 모드가 적용되는 진단(diagnostic) 메시지 출력.
        -f : 에러 메시지 출력하지 않음.
        -c : 기존 파일 모드가 변경되는 경우만 진단(diagnostic) 메시지 출력.
        -R : 지정한 모드를 파일과 디렉토리에 대해 재귀적으로(recursively) 적용.
      MODE
        파일에 적용할 모드(mode) 문자열 조합.
          u,g,o,a : 소유자(u), 그룹(g), 그 외 사용자(o), 모든 사용자(a) 지정.
          +,-,=   : 현재 모드에 권한 추가(+), 현재 모드에서 권한 제거(-), 현재 모드로 권한 지정(=)
          r,w,x   : 읽기 권한(r), 쓰기 권한(w), 실행 권한(x)
          X       : "디렉토리" 또는 "실행 권한(x)이 있는 파일"에 실행 권한(x) 적용.
          s       : 실행 시 사용자 또는 그룹 ID 지정(s). "setuid", "setgid".
          t       : 공유모드에서의 제한된 삭제 플래그를 나타내는 sticky(t) bit.
          0~7     : 8진수(octet) 형식 모드 설정 값.

34. quota 관련
- quota : 디스크쿼터(diskquota), 특정 사용자가 과도하게 디스크를 사용하는것을 제한하기 위해 디스크 쿼터를 설정하는 명령어
- edquota(edit quota) : 쿼터설정(편집)
- quotacheck : 파일시스템 스캔 및 쿼터 파일 생성/확인/수정
- repquota(report quota) : 쿼터정보 요약하여 출력
- quotaon : quota 실행
- quotaoff : quota 끄기

35. 파일 소유권 관련
- setfacl : 파일의 소유자나 그룹 생성
- getfacl : 추가된 권한 확인
     setfacl -m u:lesstif:r /etc/sysconfig/iptables 권한을 부여
     setfacl -x u:lesstif /etc/sysconfig/iptables 권한을 삭제
    
     setfacl -m g:devel:rw /project/config 읽고 쓸 수 있고
     setfacl -m u:lesstif:r /project/config 읽을 수만
    
     getfacl : 파일이나 디렉터리에 설정된 ACL 을 확인
     getfacl /var/log

36. VNC
- VNC : 리눅스 환경에서 원격 데스크탑으로 사용하는 SW.
  vncserver : 서버 구축.
  vncconfig : vnc 설정 변경.
  vncpasswd : 패스워드 설정.

- /etc/sysconfig/vncservers

- VNC 서버의 기본 포트 번호는 5900번이지만 서버의 상태에 따라서 5901번으로 지정하거나 혹은 가상 장치 관리자를 사용하는 경우에는 5902번으로 지정해야 합니다.


37. 침입 관련
- 침입차단시스템(Firewall) : 외부로부터의 불법적인 접근이나 해커의 공격으로부터 내부 네트워크를 방어하기 위해 내부 인트라넷과 외부 인터넷 사이에 유일한 통로에 설치하여 두 네트워크 간에 이루어지는 접근을 제어하는 장치
- 침입탐지시스템(IDS) : 일반적으로 시스템에 대한 원치 않는 조작을 탐지하여 주며, 전통적인 방화벽이 탐지할 수 없는 모든 종류의 악의적인 네트워크 트래픽 및 컴퓨터 사용을 탐지하기 위해 사용된다
탐지 기능외에도 정보분석 및 실시간 모니터링 기능을 지원한다
- 침입방지시스템(IPS) : 네트워크에서 공격 서명을 찾아내어 장동으로 모종의 조치를 취함으로써 비정상적인 트래픽을 중단시키는 보안 솔루션.
수동적인 방어 개념의 침입차단시스템(Firewall)이나 침입탐지시스템(IDS)과 달리 침입경고 이전에 공격을 중단시키는 데 초점을 두 시스템이 합쳐진 개념의 솔루션임.
- Packet Sniffer : 네트워크 상의 패킷을 sniffing하여 보여주는 기능
- Packet Logger : 모니터링한 패킷을 저장하고 로그에 남기는 기능

38. 로그 관련
메시지 레벨 (e-ace로 외우자)
0 - emerg: 패닉 상태, 모든 사용자에게 전달되어야 할 위험한 상황의 메시지
1 - alert: 즉각적인 조치가 필요한 상황의 메시지
2 - critical: 시스템에 문제가 생기는 단계의 메시지
3 - error: 에러가 발생하는 경우의 메시지
4 - waring: 주의를 요하는 경고 메시지
5 - notice: 특별한 주의를 요하는 에러는 아닌 메시지
6 - info: 통계, 기본 정보 메시지
7 - debug: 프로그램을 디버깅할 때 생성되는 메시지
8 - none: *.none을 붙이면 관련 메시지를 제외한다는 뜻. 예) mail.none

last: 시스템에서 마지막으로 로그인한 사용자와 관련된 기록을 표시
lastlog: 각 사용자 계정의 마지막 로그인 시간을 표시
dmesg: 커널의 링 버퍼에서 메시지를 출력
logger: 시스템 로그에 메시지를 기록

 

 

 

+ Recent posts

/ /

Contact

📧 dlwjdwls60@naver.com


블로그에 내용이 있으면 해당 글을 보여주며, 없으면 내용이 복사된 채로 ChatGPT로 연결됩니다.