IPtables 仅允许从一个 IP 和一个端口到一个端口的流量

IPtables 仅允许从一个 IP 和一个端口到一个端口的流量

我有此命令仅允许从一个 IP 向一个端口传输流量:

iptables -I INPUT ! -s $BUNGEE_IP -p tcp --dport $PORT -j DROP

但我只想允许“$BUNGEE_IP”一个端口,像这样,但是不起作用:

iptables -I INPUT ! -s $BUNGEE_IP:$PORT -p tcp --dport $PORT -j DROP

我怎样才能做到这一点?

答案1

我认为这应该可以满足您的要求,其中 192.168.0.12 代表您要允许的 IP,端口 80 代表您要允许的该 IP 的端口:

#!/bin/sh
#
# 1110080_firewall 2019.01.05 Ver:0.01
#       Most basic iptables firewall.
#       Currently for this question:
#       https://askubuntu.com/questions/1110080/iptables-allow-traffic-from-only-an-ip-and-one-port-to-one-port
#

# The location of the iptables program
#
IPTABLES=/sbin/iptables

#Set some stuff
#
EXTIF="ens5"
UNIVERSE="0.0.0.0/0"

echo 1110080_firewall $FWVER begin.

#Clearing any previous configuration
#
$IPTABLES -P INPUT DROP
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
#$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
#$IPTABLES -t nat -F

# Reset all IPTABLES counters
$IPTABLES -Z

# loopback interfaces are valid.
#
$IPTABLES -A INPUT -i lo -s $UNIVERSE -d $UNIVERSE -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A INPUT -i $EXTIF -s 192.168.0.12 -p tcp --sport 80 --dport 80 -j ACCEPT

#$IPTABLES -A INPUT -j DROP

echo 1110080_firewall $FWVER done.

相关内容