2015-05-11 18 views
5

Tôi muốn chạy vùng chứa docker với nhật ký trung tâm và dịch vụ fail2ban để ngăn chặn các cuộc tấn công dos/ddos.Đế cắm - sửa đổi IPTABLES cho máy chủ từ thùng chứa

Tôi đang gặp sự cố khi chạy một vùng chứa có các khả năng như vậy mà nó cũng có thể sửa đổi iptables của máy chủ.

Có một dự án ianblenke/docker-fail2ban tuy nhiên nó không hoạt động ...

Giving cờ thùng chứa đặc quyền chỉ cho phép tôi để kiểm soát iptables trên thùng chứa này. Có cách nào để kiểm soát máy chủ iptables thông qua vùng chứa không?

Trân trọng.

+0

Tại sao bạn sẽ muốn chạy fail2ban bên trong một container? – Blusky

+0

Tôi đang chạy các dịch vụ nhân trên các vùng chứa khác nhau và tôi muốn có một thùng chứa trung tâm chịu trách nhiệm ngăn chặn các cuộc tấn công dos/ddos ​​... –

+1

Tôi đang khám phá hoạt động giảng dạy sử dụng iptables để phân vùng các bản sao mongod container được chứa và tương tự cần phải ping imables host vm từ bên trong một container. Làm thế nào để làm điều đó (tức là những gì các lệnh trong container cho phép container để thao tác các iptables máy chủ vm?) – psychemedia

Trả lời

9

Vùng chứa Docker theo mặc định, chạy bên trong một không gian tên mạng bị cô lập nơi chúng không có quyền truy cập vào cấu hình mạng chủ (bao gồm cả iptables).

Nếu bạn muốn vùng chứa của mình có thể sửa đổi cấu hình mạng của máy chủ, bạn cần chuyển tùy chọn --net=host tới docker run. Từ trang docker-run(1) người đàn ông:

--net="bridge" 
    Set the Network mode for the container 
     'bridge': creates a new network stack for the container on the docker bridge 
     'none': no networking for this container 
     'container:': reuses another container network stack 
     'host': use the host network stack inside the container. 
     Note: the host mode gives the container full access to 
     local system services such as D-bus and is therefore 
     considered insecure. 

Bạn sẽ cần phải chạy với cả --privileged--net=host.

+0

nó làm việc Tôi nghĩ rằng tôi đã thử nghiệm này, nhưng tôi đã sử dụng net = "cầu" - nó làm việc - thx. –

+0

Maciej, bạn có thể vui lòng cho biết làm thế nào bạn nhận được iptables của máy chủ từ container? – jeesty

2

--privileged cờ không bắt buộc nữa. Bắt đầu với Docker 1.2, bây giờ bạn có thể chạy hình ảnh của mình với các thông số --cap-add=NET_ADMIN--cap-add=NET_RAW cho phép iptables nội bộ.

Cũng có thể đáng chú ý rằng trong hình ảnh chính thức của Ubuntu từ gói Docker Hub iptables chưa được cài đặt. hướng dẫn Vì vậy, nói chung nên

  • apt-get install iptables
  • chạy Docker container với --net=host--cap-add=NET_ADMIN--cap-add=NET_RAW tùy chọn.

Ngoài ra, nếu bạn có hình ảnh đế bị thiếu gói iptables và bạn không muốn tạo hình ảnh tùy chỉnh, bạn có thể chạy vùng chứa với iptables trong cùng một không gian mạng. Ví dụ. nếu bạn có chứa container-without-iptables chạy, và bạn muốn bắt đầu một số container-with-iptables trong không gian tên cùng một mạng, bạn có thể làm:

docker run -it --pid=container:container-without-iptables --net=container:container-without-iptables --cap-add sys_admin container-with-iptables 
Các vấn đề liên quan