본문 바로가기
  • 오늘처럼

전체 글194

Docker container 와 seccomp 도커는 Linux 기반 기술을 사용하여, 어플리케이션에 대해 격리된 공간을 만들어주는 가상화 서비스다. 여기에는 cgroup, chroot 등의 기반 기술들이 포함되는데, 추가로 보안을 위하여 커널에서 제공하는 보안 컴퓨팅 모드(seccomp) 또한 사용할 될 수 있다. seccomp filter Docker 에는 호스트 커널에 SECCOMP가 활성화되어 있는 경우 컨테이너를 생성할 때마다 기본적으로 사용하는 내장 SECCOMP 필터가 있다. 이를 확인하기 위해 간단한 도커 컨테이너를 구동해본다. root@localhost~$ docker run -it --rm ubuntu /bin/sh # # date -s '23 OCT 2022 13:46:00' date: cannot set date: Operati.. 2022. 9. 23.
strace 를 통한 syscall 확인과 seccomp Kernel 과 system call 리눅스 운영체제에서 핵심이되는 프로그램은 커널(kernel) 이다. 커널은 하드웨어 장치와 어플리케이션(소프트웨어) 사이에서 동작하며 두 계층 사이의 인터페이스를 담당한다. 그 외에도 메모리 관리, I/O 장치 관리 등 하드웨어의 모든 주요 기능을 제어하면서 효율적인 자원 관리를 수행하게 된다. 운영체제의 자원인 메모리 영역은 크게 2가지 공간인, Kernel space(커널 공간) 와 User space(사용자 공간) 로 구분할 수 있다. 사용자가 작성한 프로그램이나 어플리케이션들은 이 사용자 공간의 메모리를 사용하게 되고, 커널 자체의 코드에 대한 부분이나 커널 확장 등의 경우 커널 공간의 메모리를 사용한다. 또한 이 커널 공간에는 시스템 내부적인 제어를 위해 시.. 2022. 9. 22.
[Ubuntu] 우분투 UFW 방화벽 사용하기 UFW(Uncomplicated Firewall) 소개 어플리케이션이 구동되는 서버는 서비스를 위하여 통신 포트를 외부에 노출해야 하지만, 이 때 보안 취약점에 유의해야 한다. 모든 포트를 노출해서는 안되며, 노출되는 포트 또한 특정 사용자(IP Address Range)에게만 허용이 되야 한다. Linux Kernel 에 있는 '네트워크 패킷 필터(이하 Netfilter)' 라는 내부 패킷 필터링 시스템(Network framework)을 통해, 위와 같은 네트워크 패킷에 대한 접근 제어를 수행할 수 있다. 이 'Netfilter' 와 인터페이스 하기 위해 가장 많이 사용되는 툴이 iptables 이다. 그런데 iptables 의 경우 범용성으로 인해 사용 난이도가 다소 높은, 다시말해 러닝커브가 높은.. 2022. 9. 19.
[인천 여행] 인천 차이나타운과 월미도 조개구이 여름이 다가오는 5월의 어린이날. 마요님과 인천 차이나타운과 월미도에 다녀왔다. 사람들이 많을 것 같아서, 차 없이 대중교통을 이용해서 다녀오기로 했다. 지하철을 타고 도착한 인천 역 인천 차이나타운 어린이 날이라 그런지 사람이 조금 많았다. 이때만 해도 사실 그렇게 많을 줄은 몰랐다 ㅎ. 인천 차이나 타운에 대한 드라마도 봤던 것 같은데, 이렇게 차이나 타운은 인천 역에 바로 근접해 있다. 차이나타운은 인천 중구 북성동에 있는데, 지금은 북성동이 송월동과 지역이 통합되서 개항동이 되었다고 한다. 여기는 인천 차이나타운에 있는 개항동 행정복지센터(동사무소)다. 차이나 타운에는 이렇게 중국 식당들이 정말 많았다. 그냥 작은 건물들이 많은 것보다는 위 사진처럼 큼직한 건물들이 많았는데 그게 다 중식당이라 더.. 2022. 9. 18.
[남양주 카페] 남양주 카페 포러데이 팔당 마요님과 다녀온 남양주 카페 "포러데이 팔당". 이름이 무슨 뜻인지 궁금했는데, 왼쪽 위를 보면 "For a Day" 라고 적혀있다. 정면에 보이는 건물이 본관이고, 왼쪽에 보이는 노란 문이 있는 건물이 별관이다. 그리고 구름다리로 연결되어 있다. 이건 ㄱ자로 된 본관과 별관 구조의 앞마당에서 별관을 바라본 장면. 차를 주차할 수 있는 공간이 넓게 있다. 별관 내부는 이렇게 개별 테이블이 넓게 놓여져 있다. 날이 좋을 때는 창문을 모두 열여서 개방감도 있다. 마당 앞에 이렇게 의자와 테이블이 있어서 날씨가 좋은 날에는 한강을 바라보면서 야외 공간을 활용할 수도 있다. 본관에 들어온 와서 본 모습. 사진 순서대로 각각 왼쪽 정면, 계단, 오른쪽 실내 등으로 구분된다. 2층으로 올라가는 계단 왼쪽에 이렇게 .. 2022. 9. 11.
[남양주 여행] 초계 국수와 다산 생태 공원 오늘은 마요님과 남양주 팔당 댐 근처에 가서 초계 국수를 먹고, 다산 생태 공원에 다녀왔다. 서울 동쪽에서는 꽤 가까운 근교였는데 마침 차도 막히지 않아서 금방 도착할 수 있었다. 우리가 가려고 하는 팔당 초계국수 집은, 사진에 보이는 것처럼 '다산 문화의 거리' 라는 곳에 위치해있다. 팔당 초계국수 본점 여기가 오늘 방문할 팔당 초계국수 식당이다. 도착한 시간이 약 10시 30분 정도여서 조금 애매한 시간이었는데도 저렇게 사람들이 이미 식사를 하고 있다. 실내에도 자리가 있었지만 날씨가 좋아서 야외 테이블에서 식사를 하기로 했다. 조금 특이하게, 키오스크 방식이긴 했는데 외부 디자인은 손님용이 아니라 마치 직원용인 듯 보인다. 아무튼 저 화면을 눌러서 메뉴를 주문할 수 있다. 국수를 2개 시킬까 하다가.. 2022. 9. 11.
Linux - sudo 와 su 명령어의 차이 리눅스 계열의 OS 를 사용하다보면, sudo 명령어나 su 명령을 자주 사용하게 된다. 1. 리눅스 계정 먼저 리눅스 운영체제에서 사용자(계정)는 다음의 4가지 타입으로 구분된다. Normal User account adduser 등의 명령어로 생성 가능한 일반 유저 ex) harang, tester1, user1, .... Superuser account 리눅스 시스템의 루트 유저로 UID 0번으로 지정. 시스템 내 제한 없는 권한을 보유 ex) root System account 주로 운영체제의 설치 과정에서 생성되는 계정으로, superuser 로 동작하지 않아도 되는 소프트웨어나 서비스에 사용 ex) ssh, mail Service account system account 와 유사하며, 서비스나.. 2022. 9. 8.
Kubernetes 인그레스(Ingress) 1. Ingress 의 역할 Kubernetes 인그레스(Ingress)에 대하여 알아보기 위해, 먼저 웹 서비스를 kubernetes 클러스터에 배포하는 시나리오를 가정해보자. 웹서버를 개발하여 배포/운영하는 사용자는, 소스 코드를 작성하고 빌드 후에 도커 이미지를 빌드하여 파드로 구성한다. Persistent layer(영속 영역)의 처리를 위하여, 데이터베이스가 필요하며 이 또한 클러스터 안에 파드로 구동한다. 클러스터 내부에서 web service 파드가 database 파드에 접근하기 위하여, database 파드를 가리키는 서비스를 ClusterIP 타입으로 생성한다. ClusterIP는 클러스터 내부 IP로 노출되는 서비스 타입으로 클러스터 안에서만 접근할 수 있으며, kubernetes 서.. 2022. 9. 5.
Serverless 아키텍처와 FaaS 1. 클라우드 서비스 패러다임 1-1. 기존의 관리방식 (Traditional On-Premise) 인터넷이나 인트라넷 환경의 사용자에게 웹 서비스를 제공하기 위해서는 해당 웹 서비스가 구동되기 위한 물리적인 서버가 필요하다. 기존에는 이 물리 서버를 전산실이나 데이터 센터 등의 공간에 두고 전담인력이 직접 관리하였다. 서버에 대한 관리 뿐만 아니라, 물리 서버가 사용하는 스토리지와 서버 간의 통신을 위한 네트워크에 대한 기술적인 관리 또한 웹 서비스를 제공하는 측에서 관리 하였다. 서비스의 규모가 커지고 범위가 늘어나게 되면서, 물리 서버를 계속 확장하는 기존 방식의 개선이 필요했다. 물리 서버의 경우 서비스의 규모가 커질 때 서버 또한 추가로 구매를 해야 하는데, 이후 여러가지 이유로 서비스의 사용량.. 2022. 9. 5.