OS/LINUX

[리눅스마스터1급 대비]네트워크 및 서비스의 활용(3과목)

SEUNGSAMI 2019. 3. 14. 15:50

네트워크 및 서비스의 활용



Nginx

- 가볍고 높은 성능을 목표로 개발된 웹 서버


virt-manager

- 시작 및 종료 버튼을 이용하거나 메뉴를 이용해서 리부팅, 종료, 강제종료, 저장 가능

- 가상 장치 관리자를 실행하는 명령어


virsh

- 텍스트 기반의 콘솔 환경에서 가상 머신을 관리

- 생성, 시작, 재시작, 종료, 강제 종료


vir-top

- 터미널 환경에서 가상 머신만을 대상으로 CPU자원을 모니터링


libvirt

- 가상화 서비스 관련 데몬

- service libvirtd 로 실행


/var/lib/libvirt/images

- 가상 머신 이미지 저장



HTTP 상태코드

- 401 : Unautorized

- 402 : Payment Required

- 403 : Forbidden(접근금지)

- 404 : Not Found

- POST : 웹페이지에 입력된 글을  insert.php 파일을 통해 DB에 저장


아파치 웹서버

- --prefix : 설치되는 디렉토리 지정

- httpd-vhosts.conf : 하나의 IP주소에 여러 도메인을 사용하는 경우 환경 설정 파일

- graceful : apacheectl을 이용해서 기존의 접속을 해제하지 않고 재시작

- restart : 모든 프로세스를 종료한 후 재시작

- DSO 방식을 지원

- 동적 적재 기능 지원않는 운영체제에서 사용 불가

- DSO사용하지 않는 서버에 비해 많은 시간

- 일반적으로 성능 떨어짐

- htpasswd : 사용자 인증 파일을 생성하고 관리해주는 명령어

- ServerRoot "/use/local/apache" 를 통해 설정, 에러 로그파일 등이 기록되는 서버 루트 디렉토리의 기본 경로 지정

- httpd-userdir.conf 개인 서버

- UserDir : 위와 관련된 디렉토리

- httpd.conf : AddType : php확장자를 가진 파일을 해석할 수 있도록 설정

- 공개 소프트웨어

- 다양한 웹프로그래밍 언어지원

- 멀티스레딩 지원

- PHP는 동적 모듈로만 지원

- apxs : 경로를 설정

- enable_mods-shared : 관련 모듈을 전부 동적 모듈로 설치


PHP

- httpd.conf

- php 파일을 해석하도록 한다.

- x-http-php

- x-http-php-source

- 모듈 설정

-libphp5.so

- 디렉토리 지정

- DocumentRoot

- 심볼릭 링크 허용

- FollowSymlinks

- start.html 을 변경 -> DirentoryIndex


- http-userdir.conf 에서 UserDir 을 설정시 일반 사용자들이 개인 홈페이지 이용 가능

- t : syntax check

- configtest : 문법 체크


HTTP

- 443 포트 사용


아파치 웹서버의 MPM

- worker : 초기에 시작하는 프로세스의 개수를 지정하고 페이지 요청이 들어오면 스레드로 처리하는 방식


smbclient

-  L (IP주소) : 윈도우 시스템의 공유 폴더를 확인


xinetd 데몬

- 사용자가 많지않고 빠른 응답도 요구되지 않는 서비스에서 이용

- 서비스에대한 접속 시간 제한

- DOS 공격에 대비한 설정 제공

- IP 주소당 접속 수 제한

- cps = 30 20 : 초당 요청수가 30개가 넘으면 20초동안 접속 중지

- instances : 동시에 서비스 할 수 있는 서버의 최대 개수

- only_from : 특정 호스트 허가



/etc/xinetd.conf

- socket_type : stream, dgram, raw값을 지정

- user : 서비스를 사용할 사용자의 이름

- server : 서비스가 연결되었을때 실행할 프로그램

- wait : yes,no로 설정되며, 서비스가 연결되었을때 실행한 프로그램이 끝날때 까지 요청을 받을지 결정


/var/log/xinetd.log

- log_type = File /var/log/xinetd.log를 통해 관련 로그를 저장


LDAP 

- IP 프로토콜 기반, 사용자, 시스템, 네트워크 서비스 정보 등의 디렉토리 정보 공유

- 디렉토리는 논리, 계급 등을 기준으로 조직화

- 이름, 주소와 같이 하나 이상의 속성을 가진 객체로 구성

- ou : 조직의 부서 이름

- o : 최상의 조직

- cn : 가장 일반적인 이름 (이름과 성의 조합)

- sn : 이름

- givenName : 성

- street : 도로명 주소(지번)

- st : 주(우리나라의 도) 이름

- X.500 : DB에 접속하기 위한 통신 규약

- 고유한 식별자인 DN을 사용하고, DN은 RDN으로 구성


WAS

- WebLogic, JBoss, WebSphere



DHCP

- 하드디스크가 없는 원격 호스트에서 이더넷카드로 부팅 할때 사용하는 서버


ARP

- DHCP서버에서 Mac address를 이용해 서버나 호스트의 위치 알아내는 프로토콜


dhcpd.comf

- 로그의 facility를 지정 : log-facility localhost 7;

- options routers 로 게이트웨이 주소 할당

- options domain-name-server : DNS 주소 할당


NTP

- 컴퓨터간의 시간을 동기화 하는 프로토콜

- ntpq : 질의 응답 명령어

- p : 연결된 서버의 상태 출력

- 계급 수준은 레퍼런스 시계에서 거리를 정의

- 계급구조의 순환 종속성을 방지

- 계급 0은 원자시게 GPS 시계 또는 다른 무선 시계 같은 장치


malloc( )

- size 바이트의 기억장치 블록을 예약


NIS

- 리눅스, 유닉스에 있는 인증 서비스

- sun에서 개발한 프로토콜

- 암호, 그룹 정보 등을 공유하여 다른 시스템에 제공하는 서비스

- RPC를 사용 : 데몬을 반드시 구동

- 초기 portmap이 역할 수행

- 현재 rpcbind가 수행

- rpcinfo : ????

- yppasswd : 비밀번호와 관련한 명령 실행

- ypxfrd : NIS서버와 NIS 클라이언트 간의 맵핑 속도를 높여주는 데몬

- ypcat : 패스워드 설정

- ypwhich : NIS 서버명을 출력

- 사용자 인증이 가능한 서비스 조합 : telent, samba, ssh

- /etc/yp.conf : NIS 클라이언트를 구성(ypbind : 서버와 관련x)


/etc/sysconfig/network

- NIS서버를 구성하기 위해 NIS에서 사용할 도메인을 재부팅 시에도 적용되도록 등록하기 위한 파일


삼바(samba)

- GPL

- 리눅스와 윈도우간 디렉토리 및 파일 공유시 사용

- 3개의 데몬 사용

- SMBD : 파일 공유 및 프린터서비스 제공

- NMDB : 윈도우 기반 시스템에서 Netbiot 이름서비스에 응답, 컴퓨터 명과 IP주소 연결

- WINBINDD : 윈도우 사용자를 리눅스에 존재하는 사용자로 인식

- 환경설정 파일인 smb.conf는 Global Setting와 Share Definition의 영역으로 구분

- 초기 SMB 프로토콜 사용, 현재 CIFS 사용



smbpasswd

- x : 사용자 제거


smb.conf : 해당 그룹에 속한 사용자들이 파일 생성 및 삭제가 가능하도록 지정하는 파일

- write list = @계정명

- valid users = (계정명) (계정명) ... : 공유 디렉토리를 이용할 수 있는 사용자 지정


smbclient 

- L : 삼바 서버의 공유 디렉터리 정보 확인

- 윈도우에서 공유된 폴더를 리눅스에서 사용가능


/etc/exports

- root_squash : 일반 사용자의 권한 인정, root만 nfsnobody로 매핑


/etc/samba/smbusers

- 유닉스 이름 등...


tsetparm

- smb.conf 파일의 설정 오류를 점검


메일 서버 역할 수행(MTA)

- sendmail(mta:메일 전달)

- Qmail(mta)

- postfix(mta)

- msexchange server

- procmail(mda : 우편함 기능으로 대리인 역할, 메일 정렬)

- mua : 사용자가 메일을 보내기위해 사용

- mailq : 메일의 전송상태 확인


모질라

- thunderbird : 메일 클라이언트

- Firefox


php

- short_open_tag = On : 소스파일이 정상적으로 실행(php.ini)


sendmail

- bi : /etc/mail/aliases 파일에 정의되는 정보에서 별명 데이터베이스를 빌드

- bp : 메일 큐의 리스트를 인쇄

- o0 : 옵션의 변수를 설정

- #m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 를 통해 매크로 설정파일을 복원

- sencmail.cf에서 특정 도메인을 강제로 지정할때 Djihd.or.kr을 사용

- REJECT : 메일을 거절하고 거부메시지 전송

- DISCARD : 거부 메시지 없이 무조건 거절

- RELAY : 지정된 도메인에서 들어오는 메일의 중계허용

- 501 : 지정된 메일 주소와 일치하는 메일 수신 거부

- 550 : 지정된 도메인과 관련된 모든 메일 수신 거부


sendmail.cf

- Cw : 메인을 수신할 도메인명을 기입

- Fw : 여러 도메인을 사용하는 경우 별도의 파일을 지정

- Dj : 발신 도메인을 강제적으로 지정


sendmail 의 alias

- 사용자들에게 정상 이메일 주소 이외의 다른 이름 부여 가능

- 메일링 리스트 작성 가능

- 수신된 메일 메시지와 이를 처리하는 외부 프로그램 연계 가능


/etc/aliases

- 특정 계정으로 들어오는 메일을 다른 계정으로 전송되도록 설정

- 파일 변경후 sendmail -bi 를 실행

- 변경후 newaliases 실행


/etc/mail/access

- 메일서버로 접근하는 호스트나 도메인 제어

- 관련파일 수정 후 makemap hash (/etc/mail/access) < /etc/mail/access 로 적용


/etc/mail/virtusertable

- 하나의 메일 서버에 여러가지 도메인을 사용하는 환경에서 동일한 계정을 사용할 깨 각각의 도메인으로 연결


VNC

- 윈도 데스크톱 환경에서 원격지의 리눅스 X-Window 환경을 그대로 이용

- vncserver 명령어로 실행


/etc/sysconfig/vncservers

- VNC서버에서 해상도를 변경

- VNC 서버의 환경설정 파일

- geometry : 해상도 조정

- 5901 : 포트번호


vncpasswd

- VNC 서버에 접근할 때 사용할 패스워드


/etc/named.conf

- DNS구성을 위한 파일

- include 지시자를 선언하여 별도의 파일에 추가 정의 가능

- 주석문과 구문으로 구성

- 구문은 {}로 둘러싸요 끝날 때는 ;를 사용

- acl : 여러 호스트를 하나의 명칭으로 지정

- allow-query : 네임서버에 질의 할 수 있는 호스트 지정



NTP

- 컴퓨터 시간을 동기화 하는데 사용되는 프로토콜

- ntpdate를 통해 시간을 동기화

- 여러계층(startum)으로 구성

- /etc/ntp.conf에서 서버등록

- p : 쫘악



DNS 서버에서 Zone 파일 정의를 위한 SOA레코드 항목

- Serial

- Refresh

- Retry

- Expire

- Minimum


dovecot

- IMAP 및 POP3서버로 사용되는 프로그램


DNS 서버

- Caching Server : 데이터를 일정기간 별도저장하고 요청들어오면 즉시 답변

- 운영되기 위해서 bind 프로그램 설치, named 데몬 실행


Zone 파일에서 PTR 타입을 선언하는 이유

- IP 주소에 대한 질의 시 도메인 주소가 조회 되도록 설정


reverse zone 파일에서만 사용되는 레코드타입

- PTR : IP주소를 도메인으로 변환하기 위해 지정


reverse zone

- zone "12.168.192.in-addr.arpa" IN {   //아이피 앞뒤반전으로 입력.

    type master;

    file "linux.rev";

};

- 생성하지 않으면, IP 주소에 대한 도메인 조회 불가능

zone

- zone "www.naver.com" IN {

    type master;

    file "www.naver.com.zone";

};

- /var/named에 위치



가상화의 기능

- 공유 : 다수의 많은 가상 자원들이 하나의 동일한 물리적 자원과 연결

- 단일화 : 공유와 반대되는 가상화 개념으로서 가상자원에 대한 전체적인 관점에서 활용과 관리를 단순화 하는것

- 에뮬레이션 : 원래 존재하지 않았지만 마치 처음부터 존재했던 것처럼

- 절연 : 자원들 또는 자원들을 사용하는 사용자에게 영향x, 물리적인 자원교체 가능

- 프로비저닝 : 사용자의 요구사항에 맞게 할당, 배치, 배포할 수 있도록 만들어 놓은 것.



전가상화

- 하드웨어를 환전히 가상화하여, 아무런 수정이나 간섭없이 자원의 접근 가능


반가상화

- 하이퍼바이저가 제어함으로 높은 퍼포먼스 유지

- 게스트의 OS커널의 일부분을 수정한다는 단점.


XEN, KVM과 같은 다양한 하이퍼바이저를 통합 관리하기 위한 플랫폼

- Docker : 추가로 게스트운영체제를 설치하지 않고 동작하는 경량화 가상화 방식


하이퍼바이저들의 운영되는 가상머신을 관리

- Openstack : XEN, KVM 등으로 나누어서 운영되는 가상화 환경을 통합 관리

- Cloudstack

- OpenNebula

- Eucalyptus



Xen

- 케임브리지대학교에서 시작

- 하이퍼바이저 기반의 가상화 기술

- 리눅스뿐 아니라 윈도우, Solaris 지원

- 전가상화, 반가상화 모두 사용

- CPU를 반가상화를 지원 : 물리적 서버 대비 효율성이 좋다

- 반가상화 구성시 호스트와 다른 아키텍처의 게스트 실행x

- 전가상화 구성시 QEMU기반으로 동작

- 가상머신 내에서 실행하는 주장치 드라이버를 허용하는 기능 존재


KVM

- 반가상화를 지원

- Ethernet Card

- Disk I/O

- Graphic Card

- 상용화된 제품으로는 RHEV가 존재
- 커널 모듈 형태
- 오버헤더가 거의 없다.


네트워크 기반의 인증 관련 서비스

- NIS

- LDAP

- Active Directory


프록시서버

- 도메인 내부에 들어오는 요청을 필터링 함으로써 방화벽 역할 가능


squid

- 프록시 서버의 일종

- 사용자가 요청한 파일을 서버에 남겨둠, 신속

- squid.conf를 사용하여 캐싱 공간의 크기를 지정

- 정상적으로 설정 위해서는  시스템에 squid라는 사용자 추가

- 3128 포트 번호


acl

- squid.conf 에서 이 항목을 이용해서 접근제어 가능

- 특정 IP주소, 네트워크 대역, 도메인 등을 별칭 형태로 저장


squid.conf

- http_access allow localnet : 특정 네트워크 대역만 사용할 수 있도록 허가

- http_port : 포트번호



TCP Wrapper

- 유닉스 서버에 침입 차단 서비를 제공


FTP 구성후

- vsftpd.conf 파일에서 tcp_wrappers를 수정

- vsftpd.conf 파일에서 max_per_ir = ? 를 통해 ip 주소 당 허용할 최대 접속수를 지정

- vsftpd.conf 파일에서 chroot_local_user = YES를 통해 접속한 사용자의 홈 디렉토리를 최상위 디렉토리가 되도록 지정



/etc/vsftpd/ftpusers

- 서버로 접근할 수 없는 사용자의 계정 기입


/etc/vsftpd/user_list

- 위와 더불어 점검


vsftpd.conf

- anonymous_enable : 익명 계정의 사용을 허가할때 사용

- max_clients=50 : 최대 접속자 지정

- max_per_id : 하나의 주소당 허용할 최대 접속수 지정


공유 디렉토리 NFS 서버 설정 옵션

- rwe : 읽기 쓰기 실행

- no_root_squash : NFS 클라이언트에서 접근하는 root 사용자를 무시하지 않고, root로 인정

- async : 데이터 변경에 대해 비동기적 처리

- all_squash : 모든 UIDm GID를 무조건 익명 사용자 ID로 매핑

- exportfs : NFS서버에 익스포트된 정보 확인

- showmount : NFS 클아이언트에서 익스포트된 정보


사용자가 회사로 들어오는 메일을 외부의 다른 메일 서버로 전송할때

- 홈디렉토리에 .forward 파일 생성, 등록


named-checkzone

- zone파일의 문법적 오류를 검사

- named-checkzone (도메인명) (존 파일명)


named-checkconf

- DNS 서버의 환경 설정 파일인 /etc/named.conf 파일의 문법적 오류를 찾아준다.


md5sum

- md5 해시 알고리즘으로 무결성 여부 체크

- 검증


ssh 포트를 들어오는 공격을 막기 위한 보안 도구

- iptables

- fail2ban

- TCP wrapper



iptables의 TABLE 3개 요소

- mangle : 패킷이 맨 처음 들어왔을 경우에 제어, 패킷의 차단과 허용

- nat : 패킷의 헤더를 검사하여 소스의 목적지의 아이피 변환

- OUTPUT

- PREROUTING : 다수의 서버를 운영하려고 할때

- POSTROUTING

- filter : magle과 비슷하나, nat으로 나가는 패킷을 제외한 것의 차단과 허용을 목적

- raw

 - 3가지 체인

- INPUT : 들어오는

- OUTPUT

- FORWARD

- DROP :  패킷을 차단

- F : 사슬 설정 정책 제거

- P : 모든

- A : ????

- /etc/syscconfig/iptables 에서 정책이 저장되면 생성

- SNAT : 공인 IP 주소 하나로 다수의 컴퓨터가 인터넷 접소

- DNAT : 하나의 공인 IP 주소로 다수의 서버를 운영



iptables 정책을 파일로 저장

- iptables-save > firewall.sh


iptables 정책을 재설정

- iptables-restore > firewall.sh


랜섬웨어

- Crypolocker


DDos

- Trin000

- TFN : 공격자 시스템과 마스터 시스템 간 연결이 평문으로 구성, UDP TCP ICMP 공격

- Stacheldraht

- Smurf Attack : 인터넷 운용 측면을 이용하여 인터넷망을 공격, 위장


Dos , DDos 대응책

- 로드밸런싱을 통한 대용량 트래픽 분산처리

- 불필요한 서비스 제거

- 방화벽을 이용한 패킷 및 포트 필터링


스크린 서브넷 게이트웨이

- 외부 네트워크와 내부 네트워크 사이의 완충지대


VPN

- 터널링 기법 사용

- 네트워크 사이의 연결을 마치 전용회선을 이용해 연결한 것과 같은 효과


NoSQL

- SQL 인터페이스 제공하지 않는 경량형 데이터베이스

- 키-값 모델

- 단절내성에 대한 요구 사항이 더 중요


MySQL

- db생성 및 임시 패스워드 생성 과정 : ./mysqld --initialize --user=root &

- cmake가 반드시 설치되어야 한다.

- mysql_install_db 명령어로 설치

- mysqld_safe 명령어로 데몬 실행


Dos Attack

- 서비스 거부 공격


Teardrop Attack

- 시퀀스 넘버를 조작 

- 혼란을 일으켜 과부하


패스워드 크래킹, Login 백도어, 루트킷

- 패스워드를 바꿔도 시스템 침입 가능

- 로그를 남기지 않고, 온라인으로 들어옴

- 시스템에 최단 시간내 침입 가능


Stacheldraht

- 철조망

- 각종 flooding


Back orifice

- 윈도우의 TCP.IP기능을 이용하여 시스템끼리 원격 제어

- 트로이 목마


침입방지시스템

- 네트워크에서 공격 서명을 찾아내 자동으로 조치를 취해 비정상적인 트래픽을 중단

- 침입 경고 이전에 공격을 중단 시키는데 초점


메일 서버

- smtp : 25번 포트 : 메일 송수신

- pop3 : 메일 가져온다 - 가져오면 원래서버에 메일 삭제(dovcot)

- imap : 메일 가져온다(dovcot)



Suricata

- 미국 국토안보부가 만듬


IDS, IPS 조합

- Suricata, Snort