在 Dokku/docker 设置中,我的 iptables 链 FORWARD 设置中的 IP 地址是什么?

在 Dokku/docker 设置中,我的 iptables 链 FORWARD 设置中的 IP 地址是什么?

我一直在 DigitalOcean 上玩 Dokku(以下指南)并且我正在尝试了解当前的防火墙设置。

以下是我的设置:

  • Ubuntu 14.04
  • 多库
  • fail2ban(我自己安装的,不是 Dokku 模板的一部分)

我无法理解的是 Chain FORWARD 设置 - 特别是tcp dpt:5000和旁边的 IP 地址tcp dpt:postgresql

me:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             XXX.17.0.50          tcp dpt:5000
ACCEPT     tcp  --  anywhere             XXX.17.0.2           tcp dpt:postgresql
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain fail2ban-ssh (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            
me:~$ 

我猜这些XXX.17.0.YIP 地址来自我的 Docker 容器 - 这是合理的猜测吗?假设是这样,它们可能无法被外界访问,对吗?

我最终要做的是设置合理的安全防火墙设置;例如,锁定除 SSH、HTTP 和 HTTPS 之外的所有输入。我只是想确保在继续之前了解现有设置。

答案1

锁定所有或关闭所有端口
,仅使用 ssh、http 和 https,只需打开其端口

刷新到困惑你知道什么已经定义

$ iptables -F

然后放弃所有

$ iptables -P INPUT DROP

第一个是 ssh 端口:

IPTABLES 打开端口 22

$ iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 

第二个是 http 和 https 端口:

允许从任何地方进行 HTTP 和 HTTPS 连接。
“网站的默认端口”/http 80,https 443。

$ iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 
$ iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT 

最后关闭所有其他流量:

$ iptables -A INPUT -j DROP




全部

$ iptables -F
$ -P INPUT DROP
$ iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 
$ iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 
$ iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT 
$ iptables -A RH-Firewall-1-INPUT -p icmp -j ACCEPT
$ iptables -A INPUT -j DROP


或者

$ iptables -F
$ iptables -P INPUT DROP
$ iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
$ iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
$ iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT 
$ iptables -A RH-Firewall-1-INPUT -p icmp -j ACCEPT
$ iptables -A INPUT -j DROP

相关内容