我有此命令仅允许从一个 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.