일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- kubernetes
- ELB
- IDS
- 스위치
- k8s
- Protocol
- Storage Gateway
- english
- SQS
- 침입차단시스템
- Queue
- Telnet
- C#
- 네트워크
- 보안관제
- AI스쿨
- ssh
- docker
- 프로토콜
- 침입탐지시스템
- 브리지
- SMTP
- 7계층
- 3way handshaking
- ICMP
- 라우터
- IPS
- EC2
- AWS
- tcp
- Today
- Total
목록분류 전체보기 (81)
Devsecops
소스코드 or VM이 이해할 수 있는 언어로 바꾸는 행위컴파일러 이용컴파일시 에러, 오류, 경고 발생 할 수 있음 컴파일 오류작성한 코드가 프로그래밍 언어에 위반되는 경우오류가 있으면 exe파일이 생성되지 않음 -> 실행 불가컴파일 오류는 프로그램 실행도중 발생하는 것보다 이득- 버그상황 재현이 필요하기 때문 *빌드는 컴파일이 포함되는 과정*컴파일 경고가 있더라도 exe파일은 생성됨, 실제로 문제가 되지 않는 경우가 대부분이나 많이 쌓이면 실제 경고를 찾기 힘드므로 경고는 고치자!!업계에서 경고를 오류처럼 작동하게 하여 exe파일이 생성되지 않게 하는 경우도 있음 디버그 빌드 vs 릴리즈 빌드디버그 빌드디버깅에 유용한 정보 담긴 exe파일최적화 거의 안 됨성능 구림 릴리즈 빌드최종적으로 고객에게 전달되는..
컨테이너 기술은 어디까지나 빠르게 어디에서나 배포를 하기 위함이다----------------- ----------------- ----------------- ----------------- ----------------- ----------------- ----------------- FROM node WORKDIR /app COPY . /app RUN npm install EXPOSE 80 CMD [ "node", "server.js" ]----------------- ----------------- ----------------- ----------------- ----------------- ----------------- ----------------- -----------------이라는 d..
C#은 어떤 언어인가강한 타입 언어매니지드 언어OOP고수준 언어 vs 저수준 언어저수준 언어 컴퓨터가 이해하기 쉬운 언어 이진법 기계어 컴퓨터가 이해하기 위한 변환 과정 필요없음 고수준 언어 인간이 이해하기 쉬운 언어 인간이 사용하는 언어로 이루어짐 어셈블러, C, C#, JAVA 등 컴퓨터가 이해하는 기계어로 변환하는 과정 필요 * 저수준, 고수준은 상대적 기계어 네이티브 코드 2진수 모든 프로그래밍 언어는 이 기계어로 번역되어야함 어셈블리어 기계어보다 더 읽기 쉬움 고수준 언어? 대부분 기계어와 1대1 대응 고수준 프로그래밍 언어 시림이 쓰는 말에 매우 가까움 기계어와 1:1 대응 불가 C. C++, JAVA 등 메모리 관리에 따라 매니지드 언어, 언매니지드 언어로 나뉜다 컴파일 언어 vs 인터프리..
EC2 환경에서 docker 설치 후 jenkin 컨테이너 생성 os : amazon linix 2023 환경 되도록이면 t2.medium 정도는 써야할 듯, micro는 너무 느림 디스크 용량도 넉넉하게 20~30G 정도는 잡고 실습 docker 설치 https://docs.aws.amazon.com/ko_kr/serverless-application-model/latest/developerguide/install-docker.html AWS SAMCLI와 함께 사용할 Docker 설치 - AWS Serverless Application Model Linux에서 호스트 머신과 다른 명령 세트 아키텍처로 Lambda 함수를 빌드하고 실행하려면 추가로 Docker을 구성하는 단계가 있습니다. 예를 들어, ..

온프레미스와 Cloud의 차이 기준 AWS 클라우드 온프레미스 네트워크 접근성 인터넷을 통해 전세계 어디서나 접근 가능 로컬 네트워크 또는 VPN 필요 대역폭 비용 데이터 전송 비용 발생 가능 내부 네트워크 사용으로 추가 비용 없음 네트워크 보안 AWS의 고급 보안 기능 및 설정 제공 자체 보안 정책 및 방화벽 관리 필요 속도 및 지연 시간 인터넷 연결에 의존, 지역에 따라 차이 있음 네트워크 하드웨어에 의존, 일반적으로 빠름 맞춤 설정 가능성 제한된 네트워크 맞춤 설정 가능 완전한 네트워크 구성 및 맞춤 설정 가능 재해 복구 및 탄력성 다중 지역 및 가용 영역으로 높은 복구력 자체 재해 복구 계획 및 자원 필요 온프레미스와 Cloud 장단점 구분 온프레미스 (On-premises) 클라우드 (Cloud..

[클라우드] 인터넷을 통해 컴퓨팅 리소스를 제공하고 이용하는 것 [클라우드 아키텍처] 클라우드 컴퓨팅 환경의 인프라 구성요소에 대한 설계를 정의하는 ‘청사진’ [구성요소] 프런트엔드 플랫폼 백엔드 플랫폼 클라우드 기반 배포 모델 네트워크 [유형] 퍼블릭 : 제3자 클라우드 서비스 제공업체가 소유 및 운영하는 클라우드 컴퓨팅 리소스 및 물리적 인프라를 사용 프라이빗 : 조직에서 소유 및 관리하는 전용 클라우드 하이브리드 : 퍼블릭 클라우드 아키텍처와 프라이빗 클라우드 아키텍처를 모두 사용하여 유연한 클라우드 서비스 조합 이점 설명 높은 비용 효율성 서버에 선불 비용을 투자하는 대신 클라우드 서비스 제공업체의 인프라를 사용하여 비용을 최적화 TTM(time to market) 단축 구축하는 시간을 단축하여 ..
apiVersion: v1 kind: Pod metadata: name: multi-pod spec: containers: - image: nginx name: alpha env: - name: name value: alpha - image: busybox name: beta command: ["sleep", "4800"] env: - name: name value: beta
API 인증 - 어떠한 요청을 k8s에게 하면 Master Node API로 전달 된다 - 이 때 요청을 수행하기 위해 인증 -> 권한 확인 -> 요청이 적절한가?(k8s가 제한한 명령) 과정을 수행한다 인증 - .kube/config에 있는 user name, 인증서를 가지고 인증 수행(linux의 권한x) - .kube/config에 다른 계정을 추가할 수 있다 권한 확인 - service account, token로 확인 - /kube/config에 있는 user name의 권한 확인 요청이 적절한가? - 제한된 명령을 실행 하는건 아닌가? Service Account 인증 - 모든 동작되는 pod는 Service Account계정을 가지고 동작 - pod가 쿠버네티스 API를 다룰 때 사용하는 계정
etcd - master 시스템에 있는 저장소 - 현재 k8s의 상태 정보 저 - kublet 내 CAdvisor로 부터 받아온 정보를 저장 - key - value 형태로 저장 - 어떤 명령이 들어 오고 작업을 할 때 그 과정을 저장한다 - 현재 운영되고있는 k8s에 대한 모든 운영 정보가 저장 되어있다 - 기본적으로 Memory에 저장 - /var/lib/etcd 파일에 따로 하나 더 DB형태로 보관 - static pod 형태로 동작(API 서버 없이 특정 노드의 kubelet 데몬에 의해 관리되는 pod) etcd가 손상될경우 - 모든 서비스를 할 수 없다. - 이와 같은 경우를 대비하기 위해 고가용성을 유지해야 한다 고가용성 유지법 - 동일한 etcd를 여러가 가지고 있어야 함 - 기본 3개 이..
k8s 아키텍쳐 Kublet - 해당 데몬으로 k8s 동작 - k8s를 통해 컨테이너에게 명령을 내릴때 API Server(Master Node)가 가장 먼저 응답 - 응답 후 허가받은 유저인지 확인(홈 디렉토리에 있는 인증서 확인, 6443 port) - etcd에서 정보를 받고 scheduler 전송 - scheduler 정보를 받으면 실행하려는 특정 pod 를 어디에 배치하면 가장 좋은지 결정(etcd로 부터 가져온 정보를 가지고 최적 배치 결정), (ex) ngnix 2개 실행해줘) - 어디가 적합한지를 결정하면 etcd에 저장 후 각 WorkNode의 kublet에게 명령 전달 - WorkNode의 kublet는 docker에게 명령 전달 CAdvisor - Kublet 부속품 - 컨테이너 엔진..
https://docs.aws.amazon.com/ko_kr/serverless-application-model/latest/developerguide/install-docker.html
Spoofing & Snipping ARP Spoofing - 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply 패킷을 희생자에게 보냄 - ARP Cache Table 변조 - 변조된 Table로 인하여 특정 호스트로 나가는 패킷을 공격자가 스니핑 가능 ARP Redirect - 자신의 MAC 주소를 라우터인 것처럼 위조하여 ARP Reply 패킷을 해당 네트워크에 브로드캐스트하여 ARP Cache Table 을 변조 - ARP Cache Table 변조 - 변조된 Table로 인하여 외부 네트워크로 나가는 패킷을 공격자가 스니핑 가능 대응방안 - arp -s 명령어를 통한 ARP Cache Table 정적 구성 - 보안 프로그램 설치 ICMP Redirect - ICM..
Snort란? 오픈 소스 네트워크 침입 차단 시스템이자, 네트워크 침입 탐지 시스템 시간 트래픽 분석과 IP에서의 패킷 로깅을 수행하는 능력 프로토콜 분석, 내용 검색 그리고 매칭을 수행 룰 설정 Header/Body 부분으로 구성되어 있다 Header는 처리방식, 프로토콜, IP, Port 등으로 패킷 판단 기준을 명시한다 Body는 패킷을 탐지하기 위한 규칙을 명시한다 헤더 설정 형식 Action : alert, log, pass, activate, dynamic, drop, reject, sdrop Protocol : Tcp, UDP, ICMP, IP IP : src/dst IP Port : src/dst Port 방향 지시자 : ->, Action 유형 Alert : ale..
setuid, setgid - setuid : 해당 권한이 설정 되어 있으면 실행시 해당 파일의 소유자 권한으로 실행 - setgid : 해당 권한이 설정 되어 있으면 실행시 해당 파일의 그룹 권한으로 실행 함수로서의 setuid, setgid - setuid, setgid(특정값(ex) root권한이 필요할 때는 0 으로 설정)는 관리자 권한으로만 사용할 수 있는 함수, 즉 관리자 권한이 없는 경우 함수 실행해도 영향이 없다
Networking docker network create seung-net docker run --name seung -d --rm -p 3000:3000 --network seung-net park
env docker run -d -p 3000:8000 --env-file ./.env --name seung park:1 --env-file ./.env 현재 폴더 내 .env 파일을 환경변수 파일로 지정함 .env 파일 내부는 PORT=8000으로 구성 되어 있다
Bind Mountdocker run -d -p 3000:80 --name seung -v /temp/task2/:/app -v /app/node_modules park:2 -v /temp/task2/:/app -v /app/node_modules- 호스트의 /temp/task2 폴더를 컨테이너 /app 폴더에 Bind mount를 한다- 이때 -v /app/node_modules 부분으로 익명볼륨을 매핑 하므로서 node_modules 폴더 까지 덮어 쓰기 방지할 수 있다/app/somefolder를 구체적으로 지정하면 docker 특성상 /app으로 지정한 것 보다 더 우선시 한다즉 /app/node_modules를 호스트로부터 덮어쓰기를 보호하기 위함(node_modules은 npm install ..
Named Volume - 컨테이너가 종료된 이후에도 계속 데이터를 유지(익명 볼륨은 컨테이너 삭제시 자동으로 제거되지만 Named Volume는 삭제하지 않는다[rm옵션으로 컨테이너를 만들 때만 삭제됨, 옵션없으면 익명 볼륨이여도 삭제 되지 않는다]) - 영구적인 데이터, 편집하거나 볼 필요 없는 중요 데이터에 적합 - 편집 불가 문법 docker run -d -p 3000:80 --rm -v hyeok:/app/feedback --name seung2 park:2 [hyeok]로 볼륨에 이름을 붙이고 docker 내부 /app/feedback 파일로 매핑한다 삭제 낱개 삭제 : docker volume rm VOL_NAME' 전체 삭제 : docker volume prune
Image 와 Container 차이 Image - Container 의 탬플릿, 블루프린트 - 코드, 툴이 있다 - 레이어 기반, 읽기만 가능, Application data는 저장되지 않음 Container - 작동중인 sw 묶음 - Image로 여러 Container를 만들 수 있다 - 종료시 데이터 손실, 읽기, 쓰기 가능
전치사 이미지로 해석할 것 ex) on은 붙는다는 이미지 단어 앞 ex) On the table (책상(에)) 단어 뒤 ex) Put it on 동작과 함께 Worked on 상태와 함께 be on 한달만에 영어문법 이해하기 - 개발자영어 [무료] 한달만에 영어문법 이해하기 - 개발자영어 - 인프런 | 강의 이 강의를 통해 영어의 기본적인 구조에 대해 쉽게 이해해볼 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com
의문사 대상 자리에 의문사만 집어 넣어서 의문문을 만든다 Who Who said? What What happened? Which Which phone is yours? Whose Whose is this phone? 한달만에 영어문법 이해하기 - 개발자영어 [무료] 한달만에 영어문법 이해하기 - 개발자영어 - 인프런 | 강의 이 강의를 통해 영어의 기본적인 구조에 대해 쉽게 이해해볼 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com
부정문 Not을 통한 부정문 만들기 동작 ex) 대상 (do, does) not run(달리고 있지 않다) 상태 ex) She is not happy (그녀는 행복한 상태가 아니다) 경험 강조 ex) He has not lost it (그는 잃어버린 경험을 가진적 없다) 가능성 ex) He will not study(그는 공부하지 않을 거야) Not 없이 부정문 만들기 대상에 부정문이 담겨 있는 경우 ex) Nobody cares ex) No one told me no + 단어 ex) I have no money(= I don't have money) 의문문 동작 ex) (Do, Does) 대상 run? (대상은 달리니?) 상태 ex) Is he a student? (그는 학생이니?) 경험 강조 ex) ..
과거 동작의 과거 ex) I (did) watched 상태의 과거 ex) I was happy, We were happy 경험강조의 과거 ex) When I arrived there, the party had been finished - 과거 문맥보다 과거를 강조한다면 had가 나온다 진행 대상이 어떤 상태가 진행중인 것 ex) Your are being nice 평소에 친절하지 않았던 너가 친절한 상태가 진행중 ex) The hotdog is being heated 핫도그가 데워짐을 당하는 상태가 진행중 한달만에 영어문법 이해하기 - 개발자영어 [무료] 한달만에 영어문법 이해하기 - 개발자영어 - 인프런 | 강의 이 강의를 통해 영어의 기본적인 구조에 대해 쉽게 이해해볼 수 있습니다., - 강의 소개 ..
case1) 대상 + (가능성) + 동작 case2) 대상 + (가능성) + 상태 + 꾸며주는, 진행중인, 당하는 단어 case3) 대상 + (가능성) + 경험 강조 +동작, 상태 + 꾸며주는, 진행중인, 당하는 단어 가능성 Must(확신), shall, should - 해야만 한다 = have to(Must 가 더 어감이 강함, 과거 어감 제공 가능) will(확신), would - 할 것 이다 = be going to(= be gonna, 과거 어감 제공 가능) can(확신), could - 할 수 있다 = be going to(과거 어감 제공 가능) may(확신), might - 아마도 ~일 것이다 will, can(100%) would, could(100% 아님) 한달만에 영어문법 이해하기 - 개..
동사 case1) 대상 + (가능성) + 동작 동작 : 특정시점 없이 일반적으로 하는 것 ex) I eat 대상이 나, 너가 아닌 누군가일 때 동사에 s 가 붙는 경우가 있다(3인칭 단수) ex)He (does) runs ex)I (do) eat (해당 문장은 s가 붙지 않음) 대상의 옆에 붙은 단어만 변화할 수 있다 ex)He does run case2) 대상 + (가능성) + 상태 + 꾸며주는, 진행중인, 당하는 단어 상태 : 특정시점의 어떤 상태 ex) I am hungry - 대상이 존재 해야만 어떤 상태가 될 수 있다 - 한국에는 없는 개념 - ~인 상태다 라고 해석 해보기 be 동사 다음 나올 수 있는 형태 명사, 형용사 ex) I am happy 일반단어(명사) ex) That is a ca..
영어의 기본 구조 - 영어는 순서가 매우 중요(순서에 따라 의미가 달라진다) - 아래와 같은 구조에서 벗어나는 경우는 거의 없다(5%정도 벗어남) case1) 대상 + (가능성) + 동작 가능성 : will, can, would, could 동작 : 일반 동사(ex) eat, go 등) 동작 뒤 행위를 받는 단어가 나오는데 을, 를로 말이 안 이루어지면 전치사로 그 뜻을 이루어준다 ex1) I go to school // 나는 학교에 가다 ex2) I go with friend // 나는 친구와 가다 case2) 대상 + (가능성) + 상태 + 꾸며주는, 진행중인, 당하는 단어 상태 : be 동사(am, are, is) case3) 대상 + (가능성) + 경험 강조 +동작, 상태 + 꾸며주는, 진행중인,..
EC2 Instance Store - 높은 수행력이 필요할 경우 사용(EBS같은경우 제한된 수행력을 가짐) - 종료될경우 저장된 값이 모두 사라진다(RAM과 비슷) - 백업, 복구는 사용자의 책임 - 한 인스턴스에서 인스턴스 스토어 볼륨을 분리하여 다른 인스턴스에 연결할 수 없다 - 인스턴스에서 AMI를 생성하면 인스턴스 스토어 볼륨의 데이터 보존x - 호스트 컴퓨터에 물리적으로 연결된 디스크
Elastic Block Store - 인스턴스에 붙여서 사용되는 네트워크 기반 저장소 - 인스턴스 종료 후에도 데이터를 유지할 수 있다 - AZ에 종속된다 - 용량 설정 가능(용량에 따라 가격이 정해진다) - Root Volume으로 설정 되어있으면 기본적으로 종료시 삭제되도록 되어있다(설정 변경 가능) - RAID 구성 지원 EBS Type SSD(gp2 / gp3) - 일반적으로 사용되는 SSD, 많은 워크로드에서 사용, 적정가격을 가짐 SSD(io1 / io2) - 최고의 수행력을 가진 SSD, 낮은 지연성이 필요하거나 높은 처리량을 가진 워크로드에 적합, 비쌈 - 여러 인스턴스에 붙일 수 있다(EFS와 비슷하나 AZ에 고정되어 있다) HDD(st1) - 빈번한 접근과 처리량에 민감한 저장이 필요..