12.26~ 본문
Active Directory 도메인서비스
개인
ms-dos - win1.0 - win 3.1 - 95 - 98 - me - xp - vista - 7 - 8.1 - 10
업무
NT3.1 - NT4.0 - 2000 - xp(Pro) - xpx64 - vista - 7 - 8 - 8.1 - 10
서버
NT 4.0 - 2003 - R2 - 2008 - R2 - 2012 - R2
같은 커널을 사용하는 OS
xp =2003
vista = 2008
7 = 2008R2
8 = 2012
8.1=2012R2
win 95/98/me =dos기반
그래픽 기반은 95에 완성
98을 거쳐 me로 넘어노는데 안정성 때문에 폭망
2000부터 안정성을 인정 받음 - 서버용으로 많이 사용
xp로 개인용 업무용으로 크게 각광받음
2003서버로 부터 본격적으로 서버 시장에 진출
윈도우 서버의 주요 기능
다중 사용자 시스템(멀티 로그인은 안됨)
gui 환경 제공
저장소 관리(MBR-4개 파티션, GPT-128개 파티션)
파일시스템 지원 (FAT, NTFS, ReFS)
s/w-raid 지원
클러스터링(failover)
HA High Avility
윈도우 Active Directory (리눅스: LDAP)
Hyper-V
PowerShell
BitLocker 보안기능
AD의 특징: DB Schema를 가지고 있음
출현 배경
MS 최초 성공작: PC-DOS (MS-DOS의 IBM PC OEM) - 판매 당 라이센스로 대성공
이후에 나온 MS-DOS와 비슷한 제품으로는 Novell사의 DR-DOS (국내 상용화 x)
MS-DOS 메모리 문제 (640KB 제한)
가용한 580KB 내외 메모리로 게임을 구동시키기에는 부족
-> DOS/J 기본 메모리 확장
MS, IBM OS/2 개발 -> MS 윈도우 개발, IBM OS/2가 윈도우 견제하기 위함을 알고 MS는 윈도우 개발 주력
OS/2 ver1 이후 IBM 독자개발
OS/2는 나름대로 획기적인 기술을 많이 보유
-> Office라는 무기를 가진 윈도우를 대항 할 수 없었음
(Louts -> Excel, dBase -> Access)
MS는 Personal 환경 보다 서버 시장 진출을 위해 노력
1995년에 기존 서버 시장은 IBM MainFrame과 UNIX, Novell Netware가 시장을 나누어 먹었음
메인프레임은 주로 은행권에서 사용 (보안성이 뛰어나고, 안전성 우수, 처리 속도 보다 안전성이 우선인 은행권에서 현재까지 사용 중)
UNIX 서버는 가격이 비싸고 (컴파일러 하나에 수백만원)
Novell이 유닉스 보다 저렴
MS의 경쟁 상대는 Novell
서버의 핵심은 네트워크
DOS에서 LAN Manager 2.0을 통해 네트워크를 지원함
윈도우 3.11 for Workgroup - 최초로 네트워크 환경을 위해 나온 버전 = NetBios, NetBEUI, WINS등의 기술을 통하여 Workgroup 구성
이후 윈도우는 LAN Manager를 통하여 LAN 기술 확장
97년도에 4.0이 인기
.com 열풍에 맞추어 NT 4.0에 IIS, BackOffice(MS-SQL)등의 간단한 구성으로 웹 서비스 제공
NT부터 Domain이라는 개념 도입
Workgroup은 소규모에서 간단하게 파일 공유 지원
-> SAM 로그인 인증 - 자원을 찾으려면 직접 접속하여 찾아야함 (자원 정보의 DB 정보가 별도 존재하지 않음)
Domain은 DC(Domain Controller)를 통해 One User One Account
-> 자원 정보를 DC가 지니고 있어 자원 정보를 쉽게 확인 가능
NT의 Domain과 2000 이후 도메인 간에 차이
NT 도메인 원형으로 표시
-> PDC, BDC로 나눠짐, PDC와 BDC 계층적 상하관계 존재
-> BDC는 부 PDC 역할을 수행하지만 PDC에 문제가 발생할 경우 많은 기능 상실
년에 출시가 되면서 도메인의 개념을 ActiveDirectory라는 형태로 발표
ActiveDirectory - x.500 DAP
AD = 도메인 내에서 정보들을 통합 관리하는 서비스. DNS를 통해 도메인 경로를 탐색
도메인: AD 기본단위. 같은 도메인 내에 객체들은 서로 Trust 관계를 가짐. DC를 통해 로그인 인증 수행
트리 = 도메인의 집합 (test.com + ko.test.com + jp.test.com)
포리스트 = 서로 다른 도메인의 집합 또는 트리으 집합
(test.com + bluecode.com)
사이트: 물리적인 범주, 도메인이라고 할지라도 물리적으로 거리가 있다면 별도의 사이트
OU: 조직 구성 단위. 도메인 디렉토리 내부의 객체를 분류하기 위하여 사용. 정책이 적용되는 단위
ADDS 로그인 및 접근 프로세스
- 사용자는 DC에 로그인 요청
- DC는 사용자의 인증 정보를 확인 후 사용자에게 티켓 발행
- 사용자는 받은 티켓을 가지고 해당 컴퓨터에 접근 시도
- 컴퓨터는 해당 티켓을 확인하고 작업 허가
- 사용자가 티켓을 통해 도메인 내의 다른 서버나 자원에 접근 시도
- DC는 사용자 권한을 확인하고 자원에 대한 접근 허가
Windows server - 실행 - mmc - 스냅인 추가/제거
Dsadd 명령어로 사용자 추가
Cmd 명령어 & 스크립트)
for문 가능 (알아보기: for /?)
for /L %N in (1,1,27) do dsadd user "cn=hack%N,ou=NCS_2,ou=KITRI,dc=kitri-jkhyun,dc=com" -upn hack%N@kitri-jkhyun.com -pwd p@ssw0rd
For /L %N in (1,1,33) do mkdir c:\fff%N
shutdown /s /t 1
Ipconfig /all > result_%COMPUTERNAME%.txt
Arp -a >> result_%COMPUTERNAME%.txt
Bat파일로 스크립트파일 만듦
Shift+우클릭 - 여기서 명령창 열기
Dsquery computer -desc "오버워치_윈스턴"
Dsquery user
관리 콘솔 - 저장된 쿼리 - 쿼리생성
Runas /? : linux su와 비슷함
컴퓨터 계정
도메인 내부에서 도메인에 소속되어 있는 컴퓨터를 인식하기 위한 것
- 인증과 감사를 하기 위해
- 그룹 정책을 통하여 컴퓨터를 관리할 수 있게 함
- 윈도우NT
그룹생성시 보안은 접근권한 설정가능
일반계정은 관리자권한 명령(ex: 시스템종료) 불가
컴퓨터관리 - 로컬 사용자 및 그룹 - Administrator 그룹에 포함되면
관리자 권한 획득
AD 그룹안의 그룹에게 해당 그룹 제어위임 가능
고급공유 - 공유 이름 - 이름+$ (폴더 숨김)
보안 템플릿, 보안 구성 및 분석
Eventvwr - 이벤트로그
대시보드 - 역할기능추가 - 원격지원
Gpedit.msc
구조
- 액세스 암
- 헤더: 전기적 신호 데이터 찾는
- 스핀들러: RPM 수치, 모터
- 플래터: 실제로 데이터가 저장되는 물리적인 공간, 반사성이 뛰어남
파티션
물리적 디스크를 분리해 놓은 것
주 파티션: OS에 의해 잠재적으로 부팅 가능한 논리 드라이브라고 표시 되어있는 하드디스크 일부
주 파티션의 제약사항
: 최대 4개까지만 생성
확장 파티션: 논리 드라이브로 나눠 가질 수 있는 부팅이 가능하지 않는 영역, 실제 데이터를 적재할 수 없음
논리 파티션: 단일 유닛으로 동작하는 하드디스크의 일부 또는 파티션
부팅순서
파워 - CPU, 그래픽 - BIOS - POST - HDD
Diskpart
List disk
Sel disk
Sel disk - clean - online disk
Attribute disk clear readonly
Create partition primary size=1000
Format fs=ntfs quick
Sel disk - assign letter='알파벳'
Shirink desired=500 (MB) 용량줄임
Extend size=200 (MB) 용량늘림
sel disk 2
detail disk
attributes disk clear readonly
create partition primary size=1000
assign letter=K
format fs=ntfs quick
동적 디스크
기본 디스크: 파티션으로 구분
여러개의 디스크를 하나의 디스크로 구성은 불가능
동적 디스크: 파티션 대신 볼륨으로 구분
여러개의 디스크를 하나의 논리 디스크로 구성
볼륨 개수 제한x, 디스크에 오류 발생 시 복구 지원하는 디스크 구조를 생성 가능(RAID-1, RAID-5)
기본 디스크에서 동적 디스크로 변환
기본 디스크에서 동적 디스크로 변환 시 데이터 손실 없음
그러나 모든 디스크를 변환 할 수 있지는 않음
동적 디스크에서 기본 디스크로 변환 시 기존 데이터 전부 삭제 후 변환
create volume STRIPE size=1000 disk=1,2,3,4,5 (RAID-0)
속도 빨라짐 안전성x
create
volume simple size=1000
assign letter=z
format fs=ntfs quick
add disk [number]
:안전성을 위해 mirror 사용
create volume raid size=1000 disk=1,2,3 [RAID-5]
3기가 중 1기가는 복구를 위한 parity가 모든 드라이브에 분산 되어있음
sel disk 1
create volume simple size=1000
extend size=1000 disk=2
extend size=1000 disk=2
assign letter=f
format fs=ntfs quick
create volume STRIPE size=1000 disk=1,2,3,4,5
assign letter=g
format fs=ntfs quick
create volume simple size=1000 disk=1
add disk=2
assign letter=h
format fs=ntfs quick
create volume simple size=1000 disk=1000
extend size=1000 disk=2
assign letter=i
format fs=ntfs quick
- RAID는 왜? 사용되나
: 서버의 사용자가 서버 운영에 있어 가장 당혹스러울 때는 하드디스크의 장애로 인한 data 손실일 것입니다. 하드디스크는 사실 상 소모품으로 분류되며 I/O 가 많은 서버에는 고장이 잦은 것이 당연하다고 볼 수 있습니다. 하지만 서버에 저장되는 데이터의 경우 손실 또는 유출 되었을 때 치명적인 것이 대부분일 것으로 대표적으로 은행과 같은 금융, 군사적 목적의 데이터가 있을 것입니다. 이로 인해 백업이 절대적으로 필요한 경우가 있고 또한, 여분의 디스크가 있어 용량을 증설하려고 할 때 데이터 손실 없이 증설이 필요한 경우가 있습니다. 그래서 많은 서버 관리자는 RAID 구성을 통해 하드디스크의 가용성을 높이거나 서버 데이터의 안정성을 확보해야 합니다.
- RAID란?
: RAID는 Redundant Array of Inexpensive Disks의 약자입니다. 여러 개의 디스크를 배열하여 속도의 증대,안정성의 증대, 효율성, 가용성의 증대를 하는데 쓰이는 기술입니다.
- RAID의 장점
1) 운용 가용성, 데이터 안정성 증대
2) 디스크 용량 증설의 용이성
3) 디스크 I/O 성능 향상
- 그 전에 패리티(Parity)란 무엇인가?
1) 정수의 홀수 또는 짝수 특성
2) 정보 블록과 연결된 중복 정보, 패리티는 오류 후 데이터를 재구축하는데 사용되는 계산된 값입니다.
- RAID의 종류와 구성 방식
RAID 0
: RAID 0에는 Concatenate 방식과 Stripe 방식 두 가지 방식이 있습니다.
1) Concatenate방식
[concat 방식]
-> 두개 이상의 디스크에 데이터를 순차적으로 쓰는 방법
장점 : 디스크 기본 공간이 부족할 때 데이터는 보존하며 여분의 디스크를 볼륨에 포함하여 용량 증설이 가능하게 됩니다.
단점 : RAID 0의 특성상 디스크 중 하나의 디스크라도 장애가 발생하면 복구가 어렵고, 패리티(오류검출기능)를 지원하지 않습니다.
용량 : 모든 디스크의 용량을 합친 용량 ex) 300GB disk * 2ea = 600GB
2) Stripe 방식
흔히 RAID 0라고 하면 Stripe 방식을 말하는 것을 생각하면 됩니다.
-> 두개 이상의 디스크에 데이터를 랜덤하게 쓰는 방법
장점 : 데이터를 사용할 때 I/O를 디스크 수 만큼 분할하여 쓰기 때문에 I/O 속도가 향상 되고I/OController나I/O board 등 I/O를 담당하는 장치가 별도로 장착된 경우 더 큰 I/O 속도 향상 효과를 볼 수 있습니다.
단점 : Stripe를 구성할 시 기존 데이터는 모두 삭제 되어야 합니다.
그 외의 단점은 위의 Concat 방식과 같습니다.
용량 : 위의 Concat 방식과 같습니다.
RAID 1(Mirror)
: Mirror 볼륨 내의 패리티를 사용하지 않고 디스크에 같은 데이터를 중복 기록하여
데이터를 보존하게 되며, 적어도 동일한 용량의 디스크 두 개가 필요합니다.
장점 : 볼륨 내 디스크 중 하나의 디스크만 정상이어도 데이터는 보존되어 운영이 가능하기 때문에 가용성이 높고, 복원이 비교적 매우 간단합니다.
단점 : 용량이 절반으로 줄고, 쓰기 속도가 조금 느려집니다.
용량 : 모든 디스크의 절반의 용량 ex) 300GB *2ea = 300GB
RAID 2
: RAID2는 RAID 0처럼 striping 방식이지만 에러 체크와 수정을 할 수 있도록 Hamming code를
사용하고 있는 것이 특징입니다. 하드 디스크에서 ECC(Error Correction Code)를 지원하지 않기 때문에
ECC를 별도의 드라이브에 저장하는 방식으로 처리됩니다.
하지만 ECC를 위한 드라이브가 손상될 경우는 문제가 발생할 수 있으며 패리티 정보를
하나의 하드 드라이브에 저장하는 RAID 4가 나오면서 거의 사용되지 않는 방식입니다.
RAID 3, RAID 4
: RAID 3, RAID 4는 RAID 0, RAID 1의 문제점을 보완하기 위한 방식으로 3, 4로 나뉘긴 하지만
RAID 구성 방식은 거의 같습니다. RAID 3, 4는 기본적으로 RAID 0과 같은 striping
구성을 하고 있어 성능을 보안하고 디스크 용량을 온전히 사용할 수 있게 해주는데
여기에 추가로 에러 체크 및 수정을 위해서 패리티 정보를 별도의 디스크에 따로
저장하게 됩니다.
RAID 3은 데이터를 바이트 단위로 나누어 디스크에 동등하게 분산 기록하며 RAID 4는
데이터를 블록 단위로 나눠 기록하므로 완벽하게 동일하진 않다는 차이가 있습니다.
RAID 3은 드라이브 동기화가 필수적이라 많이 사용되지 않고
RAID 4를 더 많이 쓴다고 보시면 됩니다.
RAID 5
: RAID 5는 RAID 3,4 에서 별도의 패리티 정보 디스크를 사용함으로써 발생하는 문제점을
보완하는 방식으로 패리티 정보를 stripe로 구성된 디스크 내에서 처리하게 만들었습니다.
만약 1개의 하드가 고장 나더라도 남은 하드들을 통해 데이터를 복구할 수 있다는 장점이 있습니다.
RAID 6
: RAID 6은 RAID 5와 같은 개념이지만 다른 드라이브들 간에 분포되어 있는 2차 패리티 정보를 넣어
2개의 하드에 문제가 생겨도 복구할 수 있게 설계되었으므로 RAID 5보다 더욱 데이터의 안전성을
고려하는 시스템에서 사용됩니다.
출처: <http://jwprogramming.tistory.com/24>
파일 압축
- NTFS 파티션에 각 파일과 폴더 단위 압축이 가능
- 현재 폴더 또는 그 하위 폴더 및 파일을 선택적으로 파일 압축 가능
- 폴더를 압축하면 폴더에 생성하는 모든 파일과 폴더는 생성되는
시점으로 부터 모두 자동적으로 압축
- Disk 공간은 압축되기 전 파일 만큼 할당된다.
- 시스템 파일과 폴더는 압축하지 않는다.
Certmgr.msc
섀도 복사본
- 삭제한 파일 복구 가능
- 덮어쓴 파일 복구 가능
- 작업 중 파일을 비교 가능
- 볼륨 단위로 설정 가능
- 일반 백업 대체 불가
- 읽기 전용 파일
CENT OS
Systemctl status/enable/start/reload/restart/kill…
Yum /y install xorg*
Yum /y install gnome*
Ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
/etc/bashrc - Alias로 명령어 단축: alias vi=vim / alias cls=clear
Source /etc/bashrc로 적용
~/.vimrc - vim 설정
syntax on
set nu
set ts=4
set sw=4
set ai
set cindent
set smartident
set hlsearch
colorscheme koehler
filetype on
Yum install telnet-server
Systemctl enable telnet.socket
Firewall-cmd -permanent --add-port=23/tcp
Firewall-cmd --permanent --list-all
/etc/issue.net - telnet 접속 시 나오는 배너(?) 설정
/etc/securetty에 pts/1 입력 - 접속 할 수 있는 root 계정 1개
SSH
Rsh, rlogin, telnet을 대체 하기위해 설계
기본적으로 22번 tcp 포트 사용
버전 1은 취약
서버에 버전 2와 1이 같이 설치 되어있는 경우 접속 요청하는 클라이언트와
같은 버전의 SSH 서버 사용
Ex) client version1 - server version1
/etc/ssh/sshd_config
- ~/.ssh/id_rsa라는 개인키를 생성
- ~/.ssh/id_rsa.pud 라는 공개키를 생성
- Ssh-copy-id 사용자@호스트
- Client의 ~/.ssh/id_rsa.pud를 server로 전달
- Server는 ~/.ssh/authorized_keys라는 파일 마지막줄에 client의 공개키 내용이 저장
FTP
yum -y install vsftpd
/etc/vsftpd/vsftpd.conf
anonymous_enable = NO
local_enable = YES
connect_from_port_20 = YES (ftp active / passive 관련)
systemctl start vsftpd
systemctl enable vsftpd
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
firewall-cmd --list-all
윈도우 cmd -> ftp 호스트주소
SFTP (Secure FTP): port 22
디스크 추가
ls /sys/class/scsi_host/ | while read host ; do echo "- - -" > /sys/class/scsi_host/$host/scan ; done
:재부팅 안해도됌
df -h
Fdisk /dev/sdb
lsblk
ISCSI
- Ip기반의 스토리지 네트워크 워킹 표준
- 먼 거리에 걸쳐 스토리지 관리하는 데에 사용
- DAS
- 서버 시스템과 스토리지가 한 공간 안에 있는 형태
- 네트워크를 거치지 않고 연결
- 디스크 장치들을 HBA(Host Bus Adaptor)를 통해 시스템에 직접 연결
- NAS
- 네트워크를 통해 파일시스템 포맷까지 이루어진 저장장치
- 특정 어플리케이션을 통해 접근
- 구축 후 웹브라우저를 통해 접근
- SAN
- 광케이블 혹은 랜케이블을 통해 저장장치만 제공
- 마운트하여 사용
Targetcli
/backstores/block create block1 /dev/sdb1
/iscsi create iqn.2017-01.com.example:target
DNS (Domain Name Servcie)
- 숫자로 구성된 주소를 이름으로 변경처리 한 서비스
- 전 세계 도메인은 미국 ICAN에서 관리
- 루트 도메인을 기준으로 하단으로 퍼지는 구조(트리)
- 분산형 데이터베이스 구조
한 곳에서 일관 처리하는 것이 아니라 여러 곳에서 나눠 처리
zone transfer
방화벽
- 시스템에서 방화벽은 커널 netfilter 모듈에 의해 패킷이 걸러짐
- 기존의 리눅스에서는 iptabless를 사용해서 방화벽 설정을 진행했음
- Systemctl을 PID 1번으로 사용하는 CentOS7에서는 firewall-cmd로 방화벽 설정
Firewalld
- 네트워크 형태와 크기에 따라 방화벽 설정이 가능함
- 기본적으로 모든 패킷은 거부 상태 (white list 기반)
- Iptables와 비교
- 규칙 추가 시 방화벽 서비스를 재시작하지 않아도 반영 됌
- Iptables와 다르게 규칙을 추가할 때 마다 저장을 하지 않음
- /etc/sysconfig/iptables 파일이 아니라 /etc/firewalld/zones 디렉토리에
xml 파일로 저장
- Permanent는 반영구적 xml로 저장됌
- 사전 정의된 서비스
- 포트 번호와 서비스 이름이 사전에 매칭 되어있음
(예를들어 NFS 서비스 구동을 위해 서비스 포트번호를 모르고 있어도
서비스 등록이 가능함 firewall-cmd --add-service=nfs)
- 사전 정의된 영역
- Block = 들어오는 모드 패킷 거부, 나가는 패킷은 허용
- Dmz = SSH를 제외하고 들어오는 모든 패킷 거부, 나가는 모든 패킷 허용
- Drop = 들어오는 모든 패킷 거부, 나가는 모든 패킷 허용
- External = SSH를 제외하고 들어오는 모든 패킷 거부, 나가는 모든 패킷 허용
- Home = SSH, dhcpv6, ipp, mdns, samba를 제외하고 들어오는 모든 패킷 거부,
나가는 모든 패킷 허용
- Internal = SSH, dhcpv6, ipp, mdns, samba를 제외하고 들어오는 모든 패킷 거부,
나가는 모든 패킷 허용
- Public = SSH, dhcpv6를 제외하고 들어오는 모든 패킷 거부, 나가는 모든 패킷 허용
- Trusted = 들어오는 모든 패킷 허용, 나가는 모든 패킷 허용
- Work = SSH, dhcpv6, ipp를 제외하고 들어오는 모든 패킷 거부, 나가는 모든 패킷 허용
target: default
icmp-block-inversion: no
interfaces: ens33
sources: 192.168.10.0
services: dhcpv6-client http
ports:
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
- 192.168.10.0/24에서 오는 모든 네트워크 패킷은 허용
- 서버에 웹서비스가 동작중인 상태라는 가정
만약 방화벽 영역 어디에도 192.168.10.0/24에서 들어오는
패킷에 대한 허용 규칙이 없을 경우
192.168.10.0/24에서 오는 해당 패킷은 기본으로 설정되어 있는
인터페이스 영역으로 패킷을 전달
인터페이스 하나당 여러개의 zone설정 가능
firewall-cmd --list-all --zone=work
firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.91.0/24 service name=http drop' --zone=work --permanent
Accept: 허용 / Drop: 거부하고 무시 / reject: 거부 및 오류메시지
firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.91.0/24 port port=8080
protocol=tcp drop' --zone=work --permanent
포트로 룰 설정
firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.91.0/24 forward-port port=8080 protocol=tcp to-port=80' --zone=work --permanent
포트포워딩 가능
firewall-cmd --add-rich-rule='log prefix=error level= limit value=5/d' --zone=work --permanent
현재 기준으로 지정한 시간 동안의 로그 뽑기
Firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" port protocol="tcp"
Port="8080" log prefix="8080port" level="info" accept' --permanent
'Study > KITRI' 카테고리의 다른 글
1.9 (0) | 2017.06.11 |
---|---|
SQL injection 기초 (0) | 2017.06.11 |
12.16~ (0) | 2017.06.11 |
gdb2 (0) | 2017.06.11 |
12.12-14 오버플로우 (0) | 2017.06.11 |