Web 服务器的基本 iptables:SSL Tomcat、postgres、ssh 等等

Web 服务器的基本 iptables:SSL Tomcat、postgres、ssh 等等

这可能是最基本的,但我是一名开发人员,确实没有使用 iptbles 的经验。

我唯一需要打开的连接是:

eth0(朝外)

  1. 远程控制
  2. SSL 到 tomcat(将端口 443 转发到 8443)

eth1(本地子网)

  1. 连接到 postgres 服务器

其余一切都应被阻止。我目前的尝试似乎是让所有其他端口保持打开状态。我想知道发生了什么。

感谢 serverfault!

答案1

# Block incoming on eth0
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8443 -j ACCEPT

# Block incoming on eth1
iptables -A INPUT -i eth1 -p tcp --dport 5432 -j ACCEPT

# Block everything by default
iptables -j INPUT -i eth0 -j DROP
iptables -j INPUT -i eth1 -j DROP

# NAT
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443

注意:我按照你说的做了,但你可能想要允许所有 icmp 数据包,它们有时很有用。

注2:我假设“postgres 服务器”是同一主机。

答案2

一旦你已经制定了这些规则,你要么必须制定一个跳转到 REJECT 或 DROP 的规则,要么你必须更改链的默认策略(-P)。

答案3

尝试使用 Linux 程序 ufw,它使配置 iptables 变得更加容易

答案4

尝试此站点以获得干净的启动配置: http://www.mista.nu/iptables/

相关内容