Lỗi cổng chuyển tiếp iptables - Không có chuỗi / mục tiêu / kết hợp theo tên đó


11

Tôi đang cố gắng định cấu hình iptables trên máy chủ Ubuntu 12.04 LTS của mình để chuyển tiếp cổng 443 đến 8443.

Nhưng khi tôi chạy lệnh này:

sudo iptables -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443

Tôi nhận được lỗi sau đây:

iptables: No chain/target/match by that name.

Cấu hình hiện tại của iptables của tôi:

$ sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
DROP       tcp  --  anywhere             anywhere             tcp dpt:http

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

Tôi đang thiếu gì hoặc làm gì sai?

Câu trả lời:


18

PREROUTINGchuỗi thuộc về NATbảng chứ không phải FILTERbảng. Nếu bạn không đề cập bất kỳ bảng rõ ràng theo -ttùy chọn, thì FILTERđược giả định.

Vì vậy, bạn cần đề cập đến loại bảng với -t nat:

sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443

Lưu ý rằng, MANGLERAWcác bảng cũng có PREROUTINGchuỗi nhưng vì bạn chỉ chuyển hướng các cổng, nên có lẽ bạn đang tìm NATbảng.


Nó vẫn cho tôi cùng một lỗi. Câu trả lời này có còn hiệu lực không?
Piepi

@piepi Vâng. Nên hợp lệ. Có lẽ bạn nên hỏi một câu hỏi mới với vấn đề của bạn một cách chi tiết.
heemayl

Upvoting và có lẽ bạn có thể trả lời này tương tự: askubuntu.com/questions/1140644/...
WinEunuuchs2Unix

3

Chuỗi PREROUTING chỉ có sẵn cho nat, mangle và bảng thô.
iptables giả định bảng bộ lọc, vì vậy bạn phải chỉ định một trong số này, ví dụ.iptables -t nat ...


3

Tôi gặp lỗi tương tự khi chạy lệnh docker

docker run -d -p 8084:8080 knockdata/zeppelin-highcharts


d9c5d34f500d621585470b0e70b915395fcb6b3437859e0f610dbb58d51faf25
docker: Error response from daemon: driver failed programming external connectivity on endpoint elegant_jang  
(7ca0f5ad689f5443ce7533f66b4a86c34d2dbd9d076bac4812288dd3f6a76698):  
iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8084 -j DNAT --to-destination 172.17.0.2:8080 
! -i docker0: iptables: No chain/target/match by that name.
(exit status 1).

Tôi đã có thể sửa nó bằng cách cài đặt lại docker-engine

apt-get remove docker-engine
apt-get install docker-engine

0

Bạn có thể cài đặt (Cấu hình máy chủ bảo mật & tường lửa) và sử dụng các cài đặt sau.

nano /etc/csf/csf.conf
SYNFLOOD = "" => SYNFLOOD = "1"
CONNLIMIT = "" => CONNLIMIT = "80;75,443;75,21;50”
PORTFLOOD = "" => PORTFLOOD = "80;tcp;5;250"
SYSLOG = “0” => SYSLOG = "1"
DOCKER = “0” => DOCKER = "1"

nano /etc/csf/csfpost.sh

#!/bin/sh

echo "[DOCKER] Setting up FW rules."

iptables -N DOCKER

iptables -t nat -N DOCKER

iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER

iptables -t nat -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER

# Masquerade outbound connections from containers
iptables -t nat -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE

# Accept established connections to the docker containers
iptables -t filter -N DOCKER
iptables -t filter -A FORWARD -o docker0 -j DOCKER
iptables -t filter -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j 
ACCEPT

# Allow docker containers to communicate with themselves & outside world
iptables -t filter -A FORWARD -i docker0 ! -o docker0 -j ACCEPT
iptables -t filter -A FORWARD -i docker0 -o docker0 -j ACCEPT

echo "[DOCKER] Done."

Lưu ý: Cấu hình này cũng ngăn bạn khỏi cuộc tấn công DDOS cơ bản.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.