-2

Я пытаюсь сделать шлюз iptables. Я заказал 3 выделенных сервера у моей хостинговой компании с двойной сетью. Один сервер получил все IP-адреса и подключен напрямую к Интернету, а другой сервер подключен к коммутатору, к которому подключены и другие серверы. Я хочу настроить iptables, чтобы, например, IP-адрес 50.0.2.4 зашел на мой сервер шлюза и перенаправил весь трафик на частный IP-адрес, используя второй ник. Таким образом, второй игрок может делать то, что ему когда-либо нужно, и также может ответить. Я также хочу настроить его так, чтобы, если любому из других серверов нужно было что-либо загружать через инернет, он мог это сделать, используя тот же IP-адрес, который используется для входящего трафика.

Наконец, я хотел бы иметь возможность настроить DNS и другие необходимые сетевые вещи, о которых я, возможно, не думаю.

1 ответ1

1

Я использую firewall builder, чтобы собрать шаблон iptables с NAT для вас.

Шлюзовая машина

  • Внешний интерфейс: eth0 (IP: 50.0.2.4)
  • Внутренний интерфейс: eth1 (IP: 192.168.1.1

  • Службы пересылки на 192.168.1.10: imap, imaps, pop, pops, smtp, smtps

  • Услуги пересылать на 192.168.1.20: http, https

Внутренняя машина 1

  • Интерфейс: eth0 (IP: 192.168.1.10)

Внутренняя машина 2

  • Интерфейс: eth0 (IP: 192.168.1.20)
    IPTABLES="/sbin/iptables"

    # ================ Table 'filter', automatic rules
    # accept established sessions
    $IPTABLES -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT 
    $IPTABLES -A OUTPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT 
    $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


    # ================ Table 'nat',  rule set NAT
    # 
    # Rule 0 (NAT)
    # 
    echo "Rule 0 (NAT)"
    # 
    $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -m multiport   -d 50.0.2.4  --dports 143,993,110,995,25,465 -j DNAT --to-destination 192.168.1.10
    # 
    # Rule 1 (NAT)
    # 
    echo "Rule 1 (NAT)"
    # 
    $IPTABLES -t nat -A PREROUTING -p tcp -m tcp -m multiport   -d 50.0.2.4  --dports 80,443 -j DNAT --to-destination 192.168.1.20
    # 
    # Rule 2 (NAT)
    # 
    echo "Rule 2 (NAT)"
    # 
    $IPTABLES -t nat -A POSTROUTING -o eth0   -s 192.168.1.0/24  -j SNAT --to-source 50.0.2.4



    # ================ Table 'filter', rule set Policy
    # 
    # Rule 0 (eth0)
    # 
    echo "Rule 0 (eth0)"
    # 
    # anti spoofing rule
    $IPTABLES -N In_RULE_0
    $IPTABLES -A INPUT -i eth0   -s 50.0.2.4   -j In_RULE_0
    $IPTABLES -A INPUT -i eth0   -s 192.168.1.1   -j In_RULE_0
    $IPTABLES -A INPUT -i eth0   -s 192.168.1.0/24   -j In_RULE_0
    $IPTABLES -A FORWARD -i eth0   -s 50.0.2.4   -j In_RULE_0
    $IPTABLES -A FORWARD -i eth0   -s 192.168.1.1   -j In_RULE_0
    $IPTABLES -A FORWARD -i eth0   -s 192.168.1.0/24   -j In_RULE_0
    $IPTABLES -A In_RULE_0  -j LOG  --log-level info --log-prefix "RULE 0 -- DENY "
    $IPTABLES -A In_RULE_0  -j DROP
    # 
    # Rule 1 (lo)
    # 
    echo "Rule 1 (lo)"
    # 
    $IPTABLES -A INPUT -i lo   -m state --state NEW  -j ACCEPT
    $IPTABLES -A OUTPUT -o lo   -m state --state NEW  -j ACCEPT
    # 
    # Rule 2 (global)
    # 
    echo "Rule 2 (global)"
    # 
    # SSH Access to firewall is permitted
    $IPTABLES -N Cid4216X2697.0
    $IPTABLES -A OUTPUT -p tcp -m tcp  -m multiport  --dports 80,443,143,993,110,995,25,465,22  -m state --state NEW  -j Cid4216X2697.0
    $IPTABLES -A Cid4216X2697.0  -d 50.0.2.4   -j ACCEPT
    $IPTABLES -A Cid4216X2697.0  -d 192.168.1.1   -j ACCEPT
    $IPTABLES -A INPUT -p tcp -m tcp  -m multiport  --dports 80,443,143,993,110,995,25,465,22  -m state --state NEW  -j ACCEPT
    # 
    # Rule 3 (global)
    # 
    echo "Rule 3 (global)"
    # 
    # Firewall can connect to anything
    $IPTABLES -A INPUT  -s 50.0.2.4   -m state --state NEW  -j ACCEPT
    $IPTABLES -A INPUT  -s 192.168.1.1   -m state --state NEW  -j ACCEPT
    $IPTABLES -A OUTPUT  -m state --state NEW  -j ACCEPT
    # 
    # Rule 4 (global)
    # 
    echo "Rule 4 (global)"
    # 
    # All other attempts to connect to
    # the firewall are denied and logged
    $IPTABLES -N RULE_4
    $IPTABLES -A OUTPUT  -d 50.0.2.4   -j RULE_4
    $IPTABLES -A OUTPUT  -d 192.168.1.1   -j RULE_4
    $IPTABLES -A INPUT  -j RULE_4
    $IPTABLES -A RULE_4  -j LOG  --log-level info --log-prefix "RULE 4 -- DENY "
    $IPTABLES -A RULE_4  -j DROP
    # 
    # Rule 5 (global)
    # 
    echo "Rule 5 (global)"
    # 
    $IPTABLES -A INPUT  -s 192.168.1.0/24   -m state --state NEW  -j ACCEPT
    $IPTABLES -A OUTPUT  -s 192.168.1.0/24   -m state --state NEW  -j ACCEPT
    $IPTABLES -A FORWARD  -s 192.168.1.0/24   -m state --state NEW  -j ACCEPT
    # 
    # Rule 6 (global)
    # 
    echo "Rule 6 (global)"
    # 
    $IPTABLES -N RULE_6
    $IPTABLES -A OUTPUT  -j RULE_6
    $IPTABLES -A INPUT  -j RULE_6
    $IPTABLES -A FORWARD  -j RULE_6
    $IPTABLES -A RULE_6  -j LOG  --log-level info --log-prefix "RULE 6 -- DENY "
    $IPTABLES -A RULE_6  -j DROP

    echo 1 > /proc/sys/net/ipv4/ip_forward

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .