小编Dan*_*l S的帖子

限制Docker容器的网络访问

我正在创建一个仅限 SFTP 的Docker容器,该容器将由多人使用,其唯一目的是在他们自己的chrooted 环境中上传和管理文件。

从理论上讲,它非常安全:我将禁用所有形式的bash登录,并且不会在其中运行任何其他进程。但是,我想再加强一点:

我想阻止这个容器从内部访问 Internet,除了它作为 SFTP 服务器的目的。

澄清一下:我知道如何防止外部世界访问我的容器——我可以设置传入iptables规则,并且我只能在我的 docker run 命令中公开 SFTP 端口。

但是,当容器运行时,我想让以下命令(作为示例)失败:

curl google.com
Run Code Online (Sandbox Code Playgroud)

我的目的是减少被黑容器可能造成的损害(不能用于发送垃圾邮件等)。

security ssh sftp docker

15
推荐指数
1
解决办法
1万
查看次数

curl 和 wget 尝试建立 ipv6 连接

在我的专用服务器(由 OVH 托管)上,运行全新安装的 Ubuntu 14.04,curl 和 wget 需要大约 10 秒才能完成一个简单的请求。

$ curl -v google.com
* Rebuilt URL to: google.com/
* Hostname was NOT found in DNS cache
Run Code Online (Sandbox Code Playgroud)

只有在 10 秒后它才会真正返回一些东西。所以我决定在这个上运行strace

write(2, "Hostname was NOT found in DNS ca"..., 36) = 36
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
close(3)                                = 0
mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f0a24fb8000
mprotect(0x7f0a24fb8000, 4096, PROT_NONE) = 0
clone(child_stack=0x7f0a257b7f70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f0a257b89d0, tls=0x7f0a257b8700, child_tidptr=0x7f0a257b89d0) = 5047
poll(0, 0, 4)                           = 0 (Timeout)
poll(0, 0, 8) …
Run Code Online (Sandbox Code Playgroud)

domain-name-system ubuntu ipv6 wget curl

5
推荐指数
1
解决办法
1万
查看次数

如何获取每个 IP 的服务器的网络使用情况?

我想知道一种工具,以编程方式测量每个 IP 应用于服务器的负载(以 KB/s 为单位)。

到目前为止,tcpdump 在告诉我每秒发送的数据包数量方面做得很好,但我相信很多都没有显示(以 350KB/s 的速度下载,而每秒只输出 150 个数据包)。

我这样做是否正确?iftop 将是完美的,但我需要一个可以通过标准输出(没有 ncurses)连接的程序。

networking linux network-monitoring tcpdump

3
推荐指数
1
解决办法
150
查看次数