3과목 - 네트워크 및 서비스의 활용
1. 네트워크 서비스
[웹 관련 서비스]
* 웹서버
현재 많이 사용 웹 서버 - Apache, 마이크로스프트의 IIS, Nginx , 구글의 GWS 등
* JBoss : 자바를 기반으로 하는 오픈 소스 미들웨어
- HTTP 요청 메소드
GET : 서버에서 자료를 가져오는 요청, 조회
POST : 서버에 정보를 저장, 등록
PUT: 서버에 자료를 올릴때, 수정
DELETE : 서버에 자료를 삭제 할때
-HTTP 응답
403: Forbidden
404 :Not Found
- Apache 2.x
하나의 프로세스가 다수의 클라이언트 요청 처리 -> MPM
- 주요 MPM 모듈
prefork : 서비스 요청이 많게 되면 프로세스 수가 증가
worker: 초기에 시작하는 프로세스의 개수 지정, 페이지 요청 들어오면 스레드로 처리하는 방식, 스레드 수 초과할 경우 새로운 자식 프로세스 생성
- /etc/httpd/conf/httpd.conf
: 아파치 웹 서버의 주 환경 설정 파일
* ServerName 도메인명:포트 -> 가장 먼저 설정해야 할 항목
* DocumentRoot "/../.." -> 웹문서를 저장할 디렉토리
ex) ServerName 192.168.5.13:80
- httpd.conf 주요 항목
Listen 80 -> 아파치 웹서버의 포트 설정 (* PORT, http_port, http_listen 아님!)
LoadModule 모듈명 -> 모듈 활성화 (* AddType X, AddModule 아님)
- http 명령을 이용한 apache 웹 서버 실행
http -t : httpd.conf의 문법적 오류 검사 (test)
- 아파치 웹 서버의 다중처리모듈(MPM) 관련 정보를 확인하는 명령
: httpd -l (info?)
- 아파치 웹 서버 데몬 실행
/etc/rc.d/init.d/httpd start
service httpd start
/etc/init.d/httpd start
- httpd-userdir.conf 설정
: 사용자들이 개인 홈페이지 이용할때 사용하는 파일
UserDir - 아파치 웹 서버의 환경 설정 파일에서 일반 사용자의 웹문서가 위치하는 디렉토리 변경 항목
(* HomeDir, PublicDir, HtmlDir 아님!!)
- htpasswd
: 아파치 사용자 인증 파일을 생성하고 관리해주는 명령어
ex) htwasswd -c /usr/local/httpd/conf/password/ihduser (웹페이지 인증 위해 아파치 사용자 만듦)
- graceful
: 기존 연결 해제 않고 아파치 웹 서버 재시작
-php 작성
<?php
?>
-MySQL 기본데이터 베이스 생성
cd /usr/local/mysql/bin
./mysqld --initialize --user=root
-SQL 기반 관계형 데이터 베이스
: MariaDB, Oracle, PostgreSQL (* MongoDB X! )
- Nginx : 2004년에 등장한 웹 서버 프로그램으로 가벼움과 높은 성능 목표, 리버스프록시, 로드 밸런서, HTTP cache 기능 등 있음 (*Apache HTTP Server X , GWS X, IIS X)
[인증 관련 서비스]
- NIS (Network Information Service)
: 다수의 서버(Telnet서버) 를 운영하고 있고 각 각의 로그인이 필요한 경우 사용자는 모든 서버에 사용자 계정 및 암호를 가지고 있어야 함
: 하나의 서버를 이용해서 텔넷 서버로 접속하는 사용자의 아이디 및 패스워드 인증
: 하나의 서버에 등록된 사용자 계정, 암호, 그룹 정보 등을 공유하여 다른 시스템에 제공하는 서비스
: YP(Yellow Pages), Sun Microsystems, RPC
* NIS 서버 및 클라이언트 모두 각 각의 IP주소 및 도메인 /etc/hosts 등록
* NIS 서버 : ypserv, yppasswdd, ypxfrd (* ypbind 아님!!)
NIS 클라이언트 : ypbind, yp-tools
* NIS 서버에서 맵 파일 들이 생성되는 디렉터리 : /var/yp (* /var/ypserv 아님)
* ypxfrd : NIS서버와 NIS클라이언트 간의 맵핑 속도 높여주는 데몬
* ypwhich : NIS 클라이언트에서 사용하는 명렬엉로 NIS서버명과 관련 맵파일 정보 출력
- rpcbind
: CentOS 6버전에서 RPC 서비스를 사용하기 위해 동작시켜야 할 데몬명
* /etc/yp.conf 파일에 NIS 서버 및 도메인 명 지정
server 서버주소
ypserver 서버주소
domain 도메인주소
(* /etc/ypbind.conf 아님!)
- ypcat
: NIS 클라이언트에서 사용하는 명령어, NIS 서버의 데이터베이스라고 할 수 있는 맵 파일의 내용확인
ex) ypcat hosts.byname
: 호스트 관련 정보 출력, ypcat hosts 라고만 입력해도 된다 (hosts.byname : NIS서버에서 사용자관련 정보저장소)
ypcat passwd.byname (* uid.byname X, user.byname X, hosts.bynameX , password.username X)
: NIS 서버의 사용자 관련 정보를 출력한다
: NIS 서버의 사용자 계정 정보가 저장되는 맵 파일
- yppasswd
: NIS 서버에 등록된 사용자의 패스워드 변경
*NIS와 가장 거리가 먼 것은 ? Yellow Pages, X.500, RPC, Sun Microsystems
* NIS 를 이용해 인증 가는 한것? ssh, samba
- LDAP(Light Directory Access Protocol)
: X.500 Directory Access Protocol(DAP) 기반 (* NIS 아님!!!)
: 디렉터리 데이터베이스에 접근하기 위한 통신규약
: RDBMS에 비해 검색 속도 빠름
: 읽기 위주의 검색 서비스로 상당히 좋은 성능
: 자주 변경되는 정보인 경우에는 RDBMS 를 사용하는게 좋다!
cn | Common Name | 이름 + 성 |
sn | SurName | 성 |
givenName | givenName | 이름 |
- LDAP 는 이름,주소와 같이 하나 이상의 속성을 가진 객체로 구성되고 그 객체를 엔트리라고 부른다. 각각의 엔트리는 DIT라는 트리구조로 조직화되고 이 조직 내에서 고유한 식별자인 DN을 사용하고 RDN로 구성된다.
- Active Directory
- 389 Directory Server
: 레드햇 사에서 개발한 LDAP서버 프로그램
* 인증 관련 ? NIS ,LDAP, Active Directory (* NFS 아님)
[파일 관련 서비스]
- 삼바(SAMBA)
: SMB를 이용하여 리눅스를 비롯한 유닉스 계열 운영체제와 윈도우 운영체제 간의 자료공유 및 하드웨어 공유
: 현재 SMB는 CIFS(Common Internet File System) 로 확장됨
ex) 리눅스 <-> 윈도우
- 삼바 관련 데몬
smbd : 파일과 프린터 공유, 사용자의 권한 부여 및 확인 등 사용자 인증 담당
nmbd : WINS(Windows Internet Name Service)를 담당하는 데몬
- 삼바 환경 설정 파일 : smb.conf
[global] 섹션 주요 항목
host allow = 127. 192.168.12. 192.168.13 (삼바 서버에 접속 허용 할 호스트 지정)
valid users = iduser kaituser (iduser 와 kaituser만 접근) * smbusers 아님!!
ex) hosts allow = 192.168.5. (특정 네트워크 대역 접근 허가)
환경설정 파일에서 [www] 이면 www이란 폴더명으로 접근
write list = @ihd (ihd그룹에 속하는 사용자들 파일 생성 및 삭제 가능
- 삼바 관련 명령어
1) smbclient
: 삼바 클라이언트 명령으로 윈도우 서버로 접근할때 사용
: 윈도우 시스템에 공유된 디렉터리 명 확인
ex) \\\\192.168.12.22\\source
//192.168.12.22/source -> 슬래쉬 / 2개 나오면 smbclient
smbclient //203.247.40.248/sdata
2) smbstatus
: 삼바 서버에 사용하는 명령어로 클라이언트와 연결된 상태 출력
3) testparm
: 삼바 환경 설정 파일인 smb.conf의 설정 여부 확인
ex) Load smb config files from /etc/samba/smb.conf
4) nmblookup
: WINS 서버에 질의 할때 사용하는 명령, DNS서버에 질의 하는 nslookup명령과 유사
- 삼바 공유 설정
ex) path = /sdata (윈도우에서 접근할때의 폴더 이름은 sdata로 설정) * directory, public, root 아님!
- NFS (Network file System)
: TCP/IP 네트워크 상에서 다른 컴퓨터의 파일 시스템을 마운트하고 공유하여 상대방의 파일 시스템 일부를 마치 자기 자기 자신의 디렉터리처럼 사용
- NFS 환경 설정 파일 : /etc/exports
공유할_디렉터리 허가할_호스트(옵션) [허가할_호스트(옵션)...]
옵션 :
root_squash : root 사용자를 무시하고, 서버상의 nobody(또는 nfsnobody)로 매핑시키는 옵션, 일반 사용자의 권한은 그대로 인정된다.
no_root_squash : root 사용자를 무시하지 않고, root 로 인정한다
all_squash : root 포함하여 모든 사용자의 권한을 nobody(또는 nfsnobody)로 매핑시킨다
* root_squash , no_root_squash , all_squash 비교
ex)
/nfsdata 192.168.5.13 (*192.168.5.13. 아님!)
/nfsdata1 192.168.5.0/255.255.255.0 (rw, root_squash)
/nfsdata2 192.168.12.0/24 (rw, no_root_squash - 192.168.12.0에 속한 호스트 들만 /nfsdata2 디렉터리에 접근 가능)
/nfsdata1 *.hannam.ac.kr (rw,all_squash)
- NFS 클라이언트 사용법
: mount 명령으로 NFS 서버의 파일 시스템을 이용, 부팅 후 마운트하려면 /etc/fstab 등록
ex) mount -t nfs 192.168.5.13:/nfsdata /mnt
mount.nfs 192.168.5.13:/nfsdata /mnt
(192.168.5.13의 /nfsdata를 /mnt 디렉터리로 마운트)
* /192.168.5.13/data 아님!, //192.168.5.13/data 아님!, \\192.168.5.13/data 아님!
ex)
192.168.5.13:/nfsdata /ndata nfs
- NFS 관련 명령어
- showmount
: NFS서버의 마운트 관련 정보 출력
: NFS 클라이언트에서 NFS서버에 익스포트된(export) 정보를 확인할때도 사용
ex) showmount -e localhost
Export list for localhost /data 192.168.5.13
- rpcinfo
: NPC 관련 정보
ex) rpcinfo -e 192.168.5.13
- exportfs
: NFS 서버에 익스포트된 디렉터리정보
- nfsstat
: NFS 관련 상태 정보
-FTP (File Transfer Protocol)
: TCP/IP 프로토콜 기반으로 서버와 클라이언트 사이에 파일을 주고 받기 위한 프로토콜
* vsftpd
: 간결하고 안전하며 처리속도가 매우빠른 프로그램
anonymous_enable=YES (익명 계정의 허가 유무 지정) *anonymous_disable=NO 아님!!
- /etc/vsftpd/ftpusers 파일
: vsftpd 설치 시 제공되는 파일로 vsftpd 서버에 접근이 불가능한 사용자 목록 파일 (* 호스트 아님!)
- chattr
: 파일 속성 변경 명령어
: +, -, = 사용 ( * 아님)
[메일 관련 서비스]
-메일 관련 프로토콜
SMTP (Simple Mail Transfer Protocol) : 메일 서버간의 송수신, 메일 클라이언트가 메일서버로 메일 보낼때 사용 ,25번
POP3 (Post Office Protocol Version 3) : 서버에 도착한 메일을 클라이언트에서 직접 내려 받아 읽도록 해주는 프로토콜 , 110 포트
IMAP (Internet Mail Access Protocol) : 클라이언트 사용자가 메일 서버에 도착한 메일을 확인 할때 , 143번
- 메일 관련 프로그램
1) MTA (Mail Transfer Agent)
: SMTP 프로토롤을 이용해 다른 메일 서버로 전달하는 프로그램, 보통 메일서버 프로그램 지칭
: sendmail, qmail, postfix, MS Exchange Server 등
2) MUA (Mail User Agent)
: 사용자가 메일을 읽고 보낼때 사용
: evolution
3) MDA (Mail Delivery Agent)
: 일종의 대리인 역할, 메일박스에 도착한 메일을 대행해서 가져오거나 전달하는 역할
: procmail -> 일종의 대리인 역할, 스팸메일을 필터링이나 메일 정렬 등의 역할 수행
- 리눅스에서 많이 사용하는 메일 서버 프로그램 : sendmail, qmail, postfix
- POP3 및 imap 서버 : dovecot
* 메일 관련 프로그램 종류가 다른 것? qmail , postfix, dovecot, sendmail
* 메일 클라이언트가 메일 서버에 도착한 E-mail을 가져올때 사용되는 프로토콜 ? IMAP, POP3
- 메일 보낸 후에 외부로 메일이 전송되었는지 여부 확인하는 명령? mailq (* m4, mail -v X, sendmail -bi 아님!)
- 샌드메일 (sendmail)
/etc/mail/sendmail.cf
Cw : 메일을 수신할 호스트 이름, 도메인명
Fw : 여러 도메인 사용하는 경우 별도의 File에 지정하는 항목
Dj : 특정 도메인명으로 지정하여 강제적으로 적용할때
O : 특정 계정으로 메일 도착했을 경우 다른계정으로 전송되도록 설정
- 샌드메일 관련 주요파일
/etc/mail/sendmail.mc
: sendmail 의 매크로 설정 파일, m4라는 매크로 프로세서로 새롭게 생성가능
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
/etc/mail/access
: 메일 서버로 접근하는 접근 제어하는 파일
ex) From:spammer@aol.com REJECT
makemap hash /etc/mail/access < /etc/mail/access
* makemap hash 명령을 사용해야 할 파일조합? /etc/mail/access, /etc/mail/virtusertable
/etc/aliases
: 특정 계정으로 들어오는 메일을 다른 계정으로 전송되도록 설정
: webmaster라는 계정으로 들어오는 메일을 회사의 고객지원실에 근무하는 다수의 사용자에게 메일을 전달하려고 할때 사용
ex) webmaster: posein, yuleje...
실행 명령어 : sendmail -bi
~/.forward
: 개인이 자신에게 들어오는 메일을 다른 메일 주소로 포워딩 전달 할때
[DNS]
: 호스트의 도메인 이름을 IP주소로 바꾸거나 그 반대의 변환
/etc/hosts : DNS 서버가 등장하는 계기가 된 파일
-DNS 서버 프로그램 : BIND
: 가장 널리 쓰이는 DNS 서버 프로그램 (* ypbind, dnsserver 아님!!)
* DNS 서버 종류 - Caching DNS
: 관리하는 도메인 없어도 리졸빙 만을 위해 구성하는 서버이다. 도메인에 대한 리졸빙 결과를 저장하고 서버에 기록된 정보에 대한 요청이 들어오는 경우에 직접 조회하지 않고 바로 응답해주는 역할 수행
- /etc/named.conf 파일
: DNS 서버의 기본 환경 설정 파일
include 지시자를 선언하여 별도의 파일에 추가 정의 할 수 있음
ex) include "/etc/name.rfc 1912.zones"; (* directory 아님!)
* options 구문
directory "/var/named" ( 사용자가 선언하는 존 파일이 위치하는 디렉터리 명 */etc/named/zones 아님!)
forward (only|first);
-> only는 자신에게 돌아온 도메인 질의를 지정한 다른 서버로 넘기도록 하는 것
first는 타 서버에서 응답이 없을 때 자신이 응답하도록 할 때
forwarders { 네임서버주소1; 네임서버주소2; ...}
-> 도메인에 대한 질의를 다른 서버로 넘길때, 복수 형태로 지정 가능 , 구분은 세미콜론(;) 한다
ex) options {
forward first;
forwarders {168.126.63.1;}'
} (해당 서버로 들어온 질의를 168.126.63.1로 넘기고 응답이 없을 경우에 해당 서버에서 처리)
allow-query {192.168.0/24; };
-> 네임 서버에 질의 할 수 있는 호스트 지정
ex ) options{
allow-query {192.168.0/24; };
}
* acl 구문
: 여러 호스트를 하나의 명칭으로 지정
ex) acl "member" { 210.96.52.100; 210.96.52.200; 210.96.52.300; };
ex) zone "." IN{
type hint;
file "named.ca";
}
* zone 구문
: 도메인을 관리
ex) zone "도메인명" IN {
type (master | slave | hint);
file "존파일명";
};
-> type: master는 Primary, slave는 Secondary
* 도메인이 ihd.or.kr이고 zone 파일명을 ihd.zone 으로 지정 시
zone "ihd.or.kr," IN { -> ind.or.kr. 아님!!
type master;
file "ihd.zone";
};
* DNS서버의 IP주소가 192.168.12.22이고, 도메인이 ihd.or.kr 이다. 리버스 존 파일 지정하면?
zone "12.168.192.in-addr.arpa" IN {
type master;
file "ihd.zone";
};
- zone 파일
/var/named : 기본설정 디렉터리, 사용자가 선언하는 zone파일 등 위치한 디렉터리 (* /etc/named, /etc/named/zones 아님!)
zone 파일은 일반 존 파일과 리버스 존 파일로 나눠짐
* 리버스 존 파일에만 사용하는 레코드 타입? PTR (*RX 아님, MX 아님, CNAME아님)
* www IN A 192.168.12.22
www IN CNAME www
* 22 IN PTR ihd.or.kr -> (A, MX, CNAME 아님!!)
* IN SOA nameserver contact-email-address( -> ex) 관리자계정.도메인 kaituser.ihd.co.kr. (*마지막에 .꼭!!붙이기!!!! kaituser@ihd.co.kr. 아님!,)
)
* directory "/var/named " : zone파일이 위치하는 디렉터리 ( * zone X, path X, include X)
* zone파일에서 메일 서버 설정, 도메인 ihd.or.kr 일 경우
IN MX 0 ihd.or.kr
www IN A 192.168.12.22
* 시스템에서 사용하는 네임서버(DNS 서버) 설정하는 파일 ? /etc/resolv.conf
- DNS 서버 구성시 리버스 존 파일을 생성하지 않았을 경우?
IP주소에 대한 도메인 조회 불가능
[네트워크 관련 파일]
- /etc/sysconfig/network
: 전체 네트워크 설정과 관련된 항목들이 들어있는 파일이다. 게이트웨이주소, 호스트네임 등이 기록된다.
ex) NISDOMAIN=ihd.or.kr
[가상화]
- 가상화 기능
1) 에뮬레이션 : 한 컴퓨터가 다른 컴퓨터처럼 똑같이 작동하도록 사용하는 기법, 가상 SCSI 버스를 구현하는 iSCSI 또는 물리적 디스크 스토리지 상에 구현된 가상 테이프 스토리지 등이 속함
2) 절연 : 가상화된 자원들과 물리적 자원들 간의 상호 맵핑, 투명한 변경
3) 단일화 : 가상의 자원을 여러 개의 물리적 자원들에 걸쳐서 만들 수 있으며 이를 통해 외견상 전체 용량을 증가시키고, 전체적인 관점에서 활용과 단순화시킬 수 있다.
-가상화의 효과
프로비저닝 : 사용자의 요구사항에 맞게 할당, 배치, 배포 할 수 있도록 세밀한 조각 단위에서 가능
- 서버 가상화
1) 하드웨어 레벨 가상화
전가상화: Bare-Metal/Hypervisor, VMware ESX Server ( * Oracle-virtual Box: 전가상화 이용하나 Bare-Metal X!)
반가상화: Citrix사의 XenServer
호스트 기반 가상화: Micosoft의 Virtual Server
- 반가상화 ? 게스트 운영체제와 VMM 과의 원활한 통신을 위해 게스트 운영체제의 커널 일부분을 수정하여 적용
- 리눅스 기반 서버 가상화 기술의 분류 및 특징
- Openstack
: vmware기반의 가상머신과 xenserver 기반의 가상머신 통합 관리
: KEN, KVM 등으로 나누어서 운영되는 가상화 환경을 통합 관리할때 유용한 프로그램
1) 젠(Xen)
: CPU 반가상화 , 전가상화 지원
: CPU를 포함해서 이더넷 카드, Disk I/O, VGA 그래픽 인터페이스 등의 반가상화를 지원함
: 설치한 후에 해당 기술이 포함된 커널로 재부팅해야만 서비스 운영이 가능한 가상화 기술
- libvirtd
: Xen 기반 가상 머신 생성하기 위해 데몬 실행
ex) service libvirtd start
2) KVM(for Kernel-based Virtual Machine)
: 2005년에 설립된 Qumranet에서 개발한 하이퍼바이저로 x86 시스템 기반으로 CPU 전가상화 방식 사용
: 인텔의 VT 및 AMD-V를 기반으로 동작
: CPU 반가상화 기술은 지원하지 않으나 이더넷 카드, Disk I/O, VGA 그래픽 인터페이스 등은 반가상화 지원
: 상용화된 제품은 RHEV
* KVM이 반가상화 지원하지 않는 하드웨어? CPU
3) 버추얼박스(VirtualBox)
: 인텔의 하드웨어 가상화인 VT-x 와 AMD-V기반으로 전가상화 지원
: 호스트기반 가상화
: 지원 디스크이미지 형식 - VDI, VHD, VMDK (*VMC아님)
4) 도커(Docker)
: 하이퍼바이저를 사용하거나 게스트 운영체제도 설치하지 않고!
* 다양한 하이퍼바이저 들을 통합 관리하기 위해 플랫폼에 해당하는 기술?
OpenStack, CloudStack, Eucalyptus (* vSphere 아님!)
- 가상화 서비스 구축
virt-manager : 가상 머신 관리자
* 가상화가 지원되는 최신의 AMD CPU를 구입하여 사용중이다. 서버 가상화 프로그램을 실행하였더니 가상화 지원 여부가 비활성화 상태라는 오류 메시지를 접하게 되었다. 메인보드의 BIOS에서 활성화 여부를 확인해야 할 항목? SVM
- virsh 명령
: 텍스트 기반의 콘솔 환경에서 가상 머신을 관리해주는 도구
ex) virsh destory VM1
- CPU 자원 사용량 확인
: 가상 머신만을 대상으로 CPU 자원 모니터링 한다면 virt-top 명령 이용
- /etc/mail/virtusertable
: 하나의 메일 서버에 각 각 ihd.co.kr이라는 도메인을 갖는 회사와 kait.co.kr이라는 도메인을 갖는 회사의 호스팅 서비스를 운영중이다. 이 두 개 회사에서 ceo라는 e-mail계정을 요구함., 관련 설정 파일명
(* /etc/mail/local-host-names X)
- /etc/mail/local-host-names
: 회사에서 두 개의 도메인을 사용하는 관계로 두 개의 도메인 모두 메일을 받을 수 있도록 파일에 등록하는 파일
[슈퍼데몬]
리눅스 서버에서 서비스되는 다른 데몬들 제어하며, 각 각 서비스 요청 연결
- TCP Wrapper
: inetd 에 의하여 수행되는 서비스들의 접근을 제어하도록 하는 프로그램
접근 제어 가능- sshd, vsftpd, in.telnetd (*squid 아님!! - 리눅스 프로시 서버 프로그램 )
* vsftpd.conf 에서 TCP Wrappers 이용한 접근제어 가능 설정
tcp_wrappers=YES (* tcp_wrappers=ON 아님!)
* ip 주소가 ~인 호스트의 접근을 Tcp Wrapper이용해 접근차단
ex ) in.telnetd : 192.168.5.13
in.telnetd@192.168.1.254: 192.168.1. -> telnet X, telnets X, telnetservice X
- xinetd
: inetd 대체
: 사용자가 많지 않고 빠른 응답도 요구되지 않는 서비스에 적합
* cps = 50 10 (초당 요청 수가 50개 이상일 경우 10초동안 접속연결 중단한다)
* enabled
: 사용 가능한 서비스 목록 지정
* disabled
: 특정 서비스의 사용 막을 때
: disabled = yes -> 서비스 허가
* disable = no
: xinetd 기반 텔넷 서버 활성화
: no 면 서비스 사용하는 것이고, yes면 서비스 이용하지 않는다
* disable = yes -> xinetd 기반 텔넷 서비스 중단 설정 (* enable=no X )
- xinetd.conf 파일에서 instances 항목?
: 동시에 서비스 할 수있는 서버 최대개수
[프록시 관리]
: 자주 방문하는 사이트를 저장하는 일종의 캐시 서버
- squid
: 리눅스 프로시 서버 프로그램
squid.conf 파일 주요 설정
http_port 3128 -> squid 프록시 서버의 포트 번호를 지정하는 목록, 기본 포트값은 3128번이다
(* Port X, Listen X, proxy_port X 아님!!)
ex) cache_dir ufs /var/spool/squid 100 16 256
http_access allow : 특정 네트워크 대역만 사용 허가
[DHCP]
: 클라이언트에게 자동으로 IP주소, Gateway 주소 등 할당
- /etc/dhcp/dhcpd.conf 의 주요 설정
option domain-name-server ns1.example.org, ns2.example.org
( * name-servers X, domain-name X, dns-servers X)
: DHCP 서버를 사용하는 모든 네트워크 설정되는 도메인명과 도메인 네임서버, 임대요청 관련 시간을 설정
option routers : 게이트웨이 주소 지정
[VNC (Virtual Network Computing)]
: RFB (Remote Frame Buffer ) 프로토콜 사용하여 원격의 다른 컴퓨터 데스크톱 공유 ex) teamviewer
[NTP (Network Time Protocol)]
: 컴퓨터 시간 동기화, Stratum 계층 사용
: 서버들의 시간이 일정하지 않아서 동기화 시켜주는 서버를 구축하려고 한다.
2. 네트워크 보안
[DoS 공격]
* UDP Flooding
: UDP 패킷을 대량 발생 시켜 특정 시스템의 서비스 방해
* TCP SYN Flooding
: 연결 요청 대기 Queue 쌓이면 Backlog Queue 공간 가득 채워 다른 연결 요청 저장 불가
* Teardrop Attack
: 시퀀스 넘버 조작
* Smurf Attack
: IP 주소를 공격 서버의 IP 주소로 위장
* SYN Flooding, UDP Flooding , ICMP Flooding , Teardrop Attack 비교하기
* ICMP Flooding: ping을 보내 패킷을 정상적인 크기보다 아주 크게 만들어 보내는 공격법, iptables을 이용한 공격대비
- 시스템 자원 고갈 공격
1) 가용 디스크 자원 고갈
2) 가용 메모리 자원 고갈 * mallac ()와 관련
3) 가용 프로세스 자원 고갈
* DoS공격? 파괴공격, 시스템 자원 고갈 공격, 네트워크 자원 고갈 공격
[DDos]
: 여러 대의 공겨격자 분산 배치해 동시에 Dos 공격
-DDos 도구
Trinoo : 다수의 호스트로부터 통합된 UDP Flooding 공격
TFN : Trinoo 와 거의 유사 , 공격자 시스템과 마스터 시스템 간 연결이 평문으로 되어있음
TFN 2K : TFN의 발전된 형태
Stacheldraht : 독어로 철조망, TFN 참고
* DDos 공격 도구의 종류가 다른 것? Boink, Trinoo, TRN 2K, Stacheldraht
- SSH 무작위 대입 (SSH Brute force) 공격
: SSH 기반으로 로그인 시에 무차별적으로 아이디와 패스워드 대입으로 접근 시도 공격
* 트로이 목마 : 시스템 운영 및 관리에 밀접한 명령어들인 ps, ls ,find 등이 변조되어 특정 프로세스나 파일을 찾을 수 없게 되는 공격
[공격 대비책]
-침입 탐지 시스템(IDS)
-침입 방지 시스템(IPS)
- 리눅스 기반 IDS 및 IPS 시스템
1) Snort
: 가장 대표적
2) Suricata
: Snort의 대안
* SSH 뿐만 아니라 아파치 웹 등의 로그 파일 분석하여 공격 차단하는 기능 제공?
fail2ban (suricata X, sshguard X, DenyHosts X)
* /etc/hosts.deny
: ssh 침입을 시도하는 특정 호스트 차단
ex) sshd : 192.168.7.4
* 침입 탐지 시스템으로 이용되는 도구? Suricata
[iptables]
: 방화벽을 설정하는 도구
- iptables 구조
filter : iptables의 기본 테이블로 패킷 필터링 담당
nat : Network Address Translation , IP 주소 변환
ipchains : FORWARD 사슬 역할 확장, 한 개의 공인 IP주소를 가지고 여러대의 컴퓨터를 사용, 하나의 공인 IP 주소를 가지고 여러대의 서버 운영
mangle: 패킷 데이터 변경하는 특수 규칙 적용하는 테이블로 성능 향상을 위한 TOS(Type of Service) 설정
raw : 넷필터의 연결추적 하위시스템과 독립적으로 동작해야 하는 규칙 설정, 자신만의 고유한 사슬 집합있다
security : 리눅스 보안 모듈인 SELinux 에 의해 사용규칙 적용
iptables -D : 사슬의 규칙 제거(delete) * -R 아님!!
* iptables -D INPUT 2 ( INPUT 사슬에 설정한 두 번째 정책 삭제)
- iptables의 타겟 값 DROP
패킷을 거부하는 것으로 더 이상 어떤 처리도 수행되지 않고 버린다.
* iptables -P INPUT DROP ( INPUT 사슬에 대한 기본 정책을 거부로 설정)
- iptables의 로그 기록
: /var/log/messages
: 콜론(:) 으로 표준메시지 구분되어 기록
- iptables에서 NAT의 분류
1) SNAT
: 공인 IP주소 하나로 다수의 컴퓨터가 인터넷 접속 가능
: NAT테이블의 POSTROUTING 사슬에 정책 설정
2) DNAT
: 하나의 공인 IP주소로 다수의 서버를 운영하는 경우
: NAT테이블의 PREROUTING 사슬 정책 설정
- iptables의 nat 테이블에서 사용가능한 사슬? OUTPUT, POSTROUTING ,PREROUTING (INPUT아님!)
* IPv4와 비교해서 IPv6의 주소체계 ? 주소 표시 공간이 32비트에서 64비트로 확장되면서 거의 무한에 가까운 주소를 제공한다.
'서버 운영 > Linux' 카테고리의 다른 글
리눅스 마스터 1급 2차 기출 정리 - 파일 시스템 관리 (0) | 2021.10.10 |
---|---|
리눅스마스터1급 2차 실기 기출 및 예상문제 풀이 - 사용자 관리 (0) | 2021.10.07 |
[리눅스 마스터 1급] 1차 필기 기출 내용 정리(2) - 2과목 (0) | 2021.09.05 |
[리눅스 마스터 1급] 1차 필기 기출 내용 정리(1) - 1과목 (0) | 2021.09.03 |
리눅스(Linux) 란? (0) | 2021.08.26 |