Showing posts with label docker. Show all posts
Showing posts with label docker. Show all posts

2019-11-28

2019-11-28 Thursday - Researching Cilium

(a placeholder posting for my notes, while researching Cilium)

Cilium: API-aware Networking and Security



https://cilium.readthedocs.io/en/stable/
"Cilium is open source software for transparently securing the network connectivity between application services deployed using Linux container management platforms like Docker and Kubernetes."
"At the foundation of Cilium is a new Linux kernel technology called BPF, which enables the dynamic insertion of powerful security visibility and control logic within Linux itself. Because BPF runs inside the Linux kernel, Cilium security policies can be applied and updated without any changes to the application code or container configuration."
https://cilium.readthedocs.io/en/stable/concepts/overview/#cilium-agent
"The Cilium agent (cilium-agent) runs on each Linux container host. At a high-level, the agent accepts configuration that describes service-level network security and visibility policies. It then listens to events in the container runtime to learn when containers are started or stopped, and it creates custom BPF programs which the Linux kernel uses to control all network access in / out of those containers."
https://cilium.readthedocs.io/en/stable/concepts/overview/#cilium-cli-client
"Berkeley Packet Filter (BPF) is a Linux kernel bytecode interpreter originally introduced to filter network packets, e.g. tcpdump and socket filters. It has since been extended with additional data structures such as hashtable and arrays as well as additional actions to support packet mangling, forwarding, encapsulation, etc. An in-kernel verifier ensures that BPF programs are safe to run and a JIT compiler converts the bytecode to CPU architecture specific instructions for native execution efficiency. "
"Cilium leverages BPF to perform core datapath filtering, mangling, monitoring and redirection, and requires BPF capabilities that are in any Linux kernel version 4.8.0 or newer."
http://docs.cilium.io/en/stable/architecture/#arch-guide
"This document describes the Cilium architecture. It focuses on documenting the BPF datapath hooks to implement the Cilium datapath, how the Cilium datapath integrates with the container orchestration layer, and the objects shared between the layers e.g. the BPF datapath and Cilium agent."

http://docs.cilium.io/en/stable/bpf/
"BPF is a highly flexible and efficient virtual machine-like construct in the Linux kernel allowing to execute bytecode at various hook points in a safe manner. It is used in a number of Linux kernel subsystems, most prominently networking, tracing and security (e.g. sandboxing)."

Additional BPF Background Reading:


2019-02-11

2019-02-11 Monday - CVE-2019-5736: runc container breakout

An important security vulnerability to know about, if you are using Docker container based technologies:

CVE-2019-5736: runc container breakout (all versions)
https://seclists.org/oss-sec/2019/q1/119

Doomsday Docker security hole uncovered
https://www.zdnet.com/article/doomsday-docker-security-hole-uncovered/

2016-04-22

2016-04-22 Friday - Book Review: Docker In Action by Jeff Nickoloff

If you are interested in Docker, there is a new book out by Jeff Nickoloff, published by Manning that you should check out.

Docker In Action
https://www.manning.com/books/docker-in-action

I'm waiting for Manning to send me my copy of the book to review - will update this post after I've completed my read.

2015-11-22

2015-11-22 Sunday - CentOS 7 Setup

I'm experimenting with setting-up a minimal CentOS 7 environment (within Oracle VirtualBox) on a Windows 7 laptop...this posting is a placeholder of information that others may find useful.

Goals:
  • 'Sharpen the saw' with regards to my hands-on skills to configure and maintain a Linux virtual machine.
  • Create a pre-configured, reusable image, that I can use for future client engagements - and in preparation for some new product development I have planned for 2016.
  • As a foundation master/controller for experimenting with Ansible and Docker.

1) Install VirtualBox (I'm using the current 5.0.10 release)

2) Download CentOS (I'm using version 7)

3) Create Your CentOS virtual machine
  • For this experiment, I chose: CentOS-7-x86_64-Minimal-1503-01.iso

4) Update your packages
  • >yum update

5) Modify Network Interface Config Files
  • Locate the appropriate files in the /etc/sysconfig/network-scripts/ directory
    • For my particular installation environment, this happened to be ifcfg-enp0s03
    • Modify the following entries in the file to have these values:
      • ONBOOT=yes
      • BOOTPROTO=dhcp
    • Restart network service
      • >sudo systemctl restart network
    • Verify that you have network access
      • >ping -c 5 google.com

6) Configure NTP Synchronization
  • Check your current system time configuration
    • >sudo timedatectl
  • Set your desired timezone, for example:
    • >sudo timedatectl set-timezone America/Los_Angeles
  • Install ntp
    • >sudo yum install ntp
  • Start and Enable the ntp service
    • >sudo systemctl start ntpd
    • >sudo systemctl enable ntpd

7) Install some networking tools...
  • >sudo yum install net-tools
  • >sudo yum install nmap

8) Enable Outside Access (e.g. from the Windows 7 machine that is running VirtualBox)

9) Ansible install
  • {TODO}

10) Java install

11) Go install
  • >sudo yum install golang
    • currently appears to install v1.4

12) Python install
  • {TODO}

13) Git install
  • >sudo yum install git.x86_64

14) Connecting to a CentOS virtual machine with Eclipse

15) Install Apache Web Server (http)
  • >sudo yum install htttpd
  • >sudo service start httpd 
  • >sudo chkconfig httpd on

16) Enable Outside Access to Apache Web Server
  • Configure firewall
    • >sudo firewall-cmd --permanent --zone=public --add-service=http
    • >sudo firewall-cmd --permanent --zone=public --add-service=https
    • >sudo firewall-cmd --reload
  • Configure iptables 
    • >sudo iptables -I INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
    • To persist the changes, go to /etc/sysconfig/ - and add the following line to iptables
      • "-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT"
    • >sudo service iptables restart
  •  >sudo service httpd restart
The following resource links were helpful to me, and may also be of interest to others:
You may also want to consider ordering a digital copy of this book:

2015-09-19

2015-09-19 Saturday - Rancher presentation on ELK (logging chalenges) on Docker

Learning about Rancher, and ELK (container logging challenges) with Docker
https://lnkd.in/eZPqk5R

WordCount

Copyright

© 2001-2026 International Technology Ventures, Inc., All Rights Reserved.