네트워크 및 서비스의 활용
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";
};
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
네트워크 기반의 인증 관련 서비스
- 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
'OS > LINUX' 카테고리의 다른 글
[리눅스마스터1급 대비]리눅스 시스템 관리(2과목) (0) | 2019.03.13 |
---|---|
[리눅스마스터1급 대비]리눅스 실무의 이해(1과목) (0) | 2019.03.12 |
[LINUX]RAID에 대하여 (0) | 2019.03.12 |