Nu știu multe despre servere web sau HAProxy, dar pot să vă dau câteva sfaturi IPtables și apoi să vă răspund la întrebare.
- IPtables citește regulile de sus în jos și nu mai citește regulile când ajunge la DROP, REJECT sau ACCEPT.
- IPtables ține cont de majuscule și minuscule.
Accept
nu este la fel ca ACCEPT
- Politica IPtables
-P
este utilizat atunci când nicio altă regulă din tabel nu se aplică unui pachet dat.
- Asigurați-vă că, atunci când adăugați noi reguli IPtables, le ștergeți pe cele vechi introducând
iptables -t filtru -F
și apoi iptables -t filtru -X
. Aceste două comenzi vor șterge tabelul de filtrare (tabelul implicit) și, de asemenea, vor șterge orice sublanțuri din tabel.
- Asigurați-vă că regulile privind clienții se reflectă asupra gazdei și asigurați-vă că regulile despre gazdă se reflectă asupra clienților.
Pentru a-ți răspunde la întrebare...
Mai întâi, încercați să vă spălați complet firewall-ul rulând aceste comenzi pentru a șterge toate tabelele din IPtables:
iptables -t brut -F
iptables -t mangle -F
iptables -t nat -F
iptables -t filtru -F
iptables -t brut -X
iptables -t mangle -X
iptables -t nat -X
iptables -t filtru -X
Apoi asigurați-vă că nu rulează niciun alt firewall.
CentOS/Fedora/Rhel:
systemctl opri firewalld
Debian/Ubuntu:
systemctl stop ufw
Apoi, fă niște teste. Funcționează HAProxy? Dacă funcționează, problema ta este firewall-ul. Dacă o face nu funcționează, atunci trebuie să revizuiți regulile IPtables.Poate începeți prin a vă face regulile IPtables cât mai nespecifice posibil și apoi deveniți din ce în ce mai specifice. Iată recomandările mele pentru a începe:
Asigurați-vă că traficul loopback este activat pe server. Traficul loopback nu părăsește niciodată serverul:
iptables -t filter -A INPUT -i lo -j ACCEPT
Încercați să adăugați pe lista albă IP-ul serverului HAProxy în loc de portul:
iptables -t filter -A INPUT -s ${HAPROXY_IP} -j ACCEPT
Permite STABILIT
și LEGATE DE
conexiuni:
iptables -t filter -A INPUT -m conntrack --ctstate RELATED,STABLISHED -j ACCEPT