这可能是基本的,但我是一个开发人员,真的没有iptbles的经验。
我需要打开的唯一连接是:
eth0 (外向)
eth1 (本地子网)
其他一切都应该被阻止。 我目前的尝试似乎是打开所有其他端口。 我不知道是什么给了。
谢谢serverfault!
# 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服务器”是相同的主机。
一旦你把这些规则放在适当的位置,你必须把规则跳转到REJECT或DROP,或者你必须改变链的默认策略( -P
)。
尝试Linux程序ufw,这使得configurationiptables更容易
我们需要知道你已经拥有了什么
我们不会为你写出这些规则。 如果你想让别人为你写iptables规则,请聘请一名顾问。
所以,让我们看看你已经有了什么。
如果这是CentOS,我想你是build议的,你可以向我们展示/ etc / sysconfig / iptables,或者两者的输出
iptables -L -vn
和
iptables -L -vn -t nat
试试这个网站的清洁启动configuration: http : //www.mista.nu/iptables/
iptables -P INPUT DROP # drop will be default policy iptables -i eth0 -A INPUT -p tcp --dport 22 -j ACCEPT # ssh iptables -i eth0 -A INPUT -p tcp --dport 443 -j ACCEPT # delete this if prerouting works iptables -i eth0 -A INPUT -p tcp --dport 8443 -j ACCEPT # 8443 iptables -i eth0 -A INPUT -p icmp --icmp-type 8 -j ACCEPT # ping iptables -i eth1 -A INPUT -j ACCEPT # all from eth1 #route port 443 to 8443 from eth0 iptables -t nat -i eth0 -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443