Возможно ли, что мы можем заблокировать любой порт для доступа, скажем, 8080, чтобы заблокировать его из внешнего мира, кроме нашего определенного IP-адреса? Я знаю, как заблокировать IP-адрес с помощью
listen ...
...
acl bad_ip src XXX.XXX.XXX.XXX #Any Bad IP
use_backend block_ip if bad_ip
...
backend block_ip
mode http
errorfile 403 /etc/haproxy/errors/403.http
но я застрял в блокировке порта.
Вам нужно специально обслуживать http 403? Простое правило iptables действительно блокирует нежелательный трафик.
например:
iptables -p tcp -m tcp --dport 8080 -s ! $TRUSTED_IP_ADDRESS -j DROP
Что касается haproxy acl, вам понадобится dst_port
вариант, соответствующий локальному порту, к которому подключен клиент.
acl secure_port dst_port 8080
acl trusted_ip src 10.0.0.1
use_backend block_ip if secure_port !trusted_ip
Таблицы IP-адресов будут считаться «правильным» инструментом для использования, даже если haproxy может помочь.