iptables允许来自任何地方的HTTP,MySQL内部和lockingSSH到一个特定的IP

遇到麻烦的iptables规则我的头

我需要:

  • 允许来自任何地方的HTTPstream量到80和443
  • 在内部允许MySQLstream量3306
  • 允许从特定的IP地址列表中进行SSH访问

有任何想法吗?

根据fwbuilder(推荐)和一个快速检查,以下做1号和3号。做(2)强烈依赖于你的“内部”的定义(在接口,两个接口等)

$IPTABLES -N RULE_0 $IPTABLES -A INPUT -p tcp -m tcp -s 1.2.3.4 --dport 22 -m state --state NEW -j RULE_0 $IPTABLES -A FORWARD -p tcp -m tcp -s 1.2.3.4 --dport 22 -m state --state NEW -j RULE_0 $IPTABLES -A RULE_0 -j LOG --log-level info --log-prefix "RULE 0 -- ACCEPT " $IPTABLES -A RULE_0 -j ACCEPT # # Rule 1 (global) # echo "Rule 1 (global)" # $IPTABLES -N RULE_1 $IPTABLES -A OUTPUT -p tcp -m tcp -m multiport --dports 80,443 -m state --state NEW -j RULE_1 $IPTABLES -A INPUT -p tcp -m tcp -m multiport --dports 80,443 -m state --state NEW -j RULE_1 $IPTABLES -A FORWARD -p tcp -m tcp -m multiport --dports 80,443 -m state --state NEW -j RULE_1 $IPTABLES -A RULE_1 -j LOG --log-level info --log-prefix "RULE 1 -- ACCEPT " $IPTABLES -A RULE_1 -j ACCEPT 

例如,对于192.168.1.0/254内部networking:

  $IPTABLES -N In_RULE_0 $IPTABLES -A INPUT -i eth0:1 -p tcp -m tcp -s 192.168.1.0/24 -d 192.168.1.0/24 --dport 3306 -m state --state NEW -j In_RULE_0 $IPTABLES -A FORWARD -i eth0:1 -p tcp -m tcp -s 192.168.1.0/24 -d 192.168.1.0/24 --dport 3306 -m state --state NEW -j In_RULE_0 $IPTABLES -A In_RULE_0 -j LOG --log-level info --log-prefix "RULE 0 -- ACCEPT " $IPTABLES -A In_RULE_0 -j ACCEPT $IPTABLES -N Out_RULE_0 $IPTABLES -A OUTPUT -o eth0:1 -p tcp -m tcp -s 192.168.1.0/24 -d 192.168.1.0/24 --dport 3306 -m state --state NEW -j Out_RULE_0 $IPTABLES -A FORWARD -o eth0:1 -p tcp -m tcp -s 192.168.1.0/24 -d 192.168.1.0/24 --dport 3306 -m state --state NEW -j Out_RULE_0 $IPTABLES -A Out_RULE_0 -j LOG --log-level info --log-prefix "RULE 0 -- ACCEPT " $IPTABLES -A Out_RULE_0 -j ACCEPT