duongcopi
Junior Member
Chuyển tiếp cổng (Port Forwards) là quá trình chuyển hướng các yêu cầu đến một cổng cụ thể đến máy chủ, mạng hoặc cổng khác. Do quá trình này thay đổi đích đến của gói dữ liệu đang truyền, nó được xem xét là một dạng hoạt động NAT (Network Address Translation).
Đối với CentOS, Fedora hoặc RHEL, hãy sử dụng:
-L liệt kê các quy tắc, -v hiển thị thông tin chi tiết hơn và -n hiển thị địa chỉ IP và số cổng dưới dạng số trong lệnh iptables.
Chỉnh sửa tệp /etc/sysctl.conf :
Thêm hoặc bỏ ghi chú dòng sau:
Để áp dụng các thay đổi, hãy chạy:
Lệnh đầu tiên trong danh sách xóa tất cả các quy tắc, lệnh -t nat -F xóa bảng nat, -t mangle -F xóa bảng mangle và lệnh cuối cùng -X xóa tất cả các chuỗi.
Tiếp theo, chúng ta chuyển sang thiết lập các quy tắc, các lệnh này có thể được chạy từng dòng trong bash hoặc thông qua tệp lệnh.
Tiếp theo bạn cần kiểm tra thiết bị của bạn đã bật giao thức chuyển tiếp.
Mã này sẽ trả về 0 là tắt hoặc 1 là bật.
Để thiết lập bật giao thức chuyển tiếp chạy lệnh này:
Để tắt chạy lệnh này:
Các cài đặt trên sẽ có hiệu lực ngay lập tức mà không cần khởi động lại.
Cài đặt Iptables
Đối với Debian và Ubuntu, hãy sử dụng lệnh sau:
Bash:
sudo apt update
sudo apt install iptables
Đối với CentOS, Fedora hoặc RHEL, hãy sử dụng:
Bash:
sudo dnf install iptables
Kiểm tra các quy tắc hiện có
Trước khi bắt đầu sửa đổi các quy tắc iptables của mình, bạn nên xem xét các quy tắc hiện tại.
Bash:
sudo iptables -L -v -n
-L liệt kê các quy tắc, -v hiển thị thông tin chi tiết hơn và -n hiển thị địa chỉ IP và số cổng dưới dạng số trong lệnh iptables.
Kích hoạt chuyển tiếp IP
Để cho phép chuyển tiếp ở cấp kernel, chúng ta cần kích hoạt chuyển tiếp IP.Chỉnh sửa tệp /etc/sysctl.conf :
Bash:
sudo nano /etc/sysctl.conf
Thêm hoặc bỏ ghi chú dòng sau:
Bash:
net.ipv4.ip_forward=1
Để áp dụng các thay đổi, hãy chạy:
Bash:
sudo sysctl -p
Cấu hình quy tắc chuyển tiếp
Để chuyển tiếp không bị gián đoạn bạn cần xoá tất cả các quy tắc đã cài đặt trước đó. (Việc này tốt cho cài đặt chuyển tiếp nhưng không tốt cho các ứng dụng đã cài quy tắc trước đó)
Bash:
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
Lệnh đầu tiên trong danh sách xóa tất cả các quy tắc, lệnh -t nat -F xóa bảng nat, -t mangle -F xóa bảng mangle và lệnh cuối cùng -X xóa tất cả các chuỗi.
Tiếp theo, chúng ta chuyển sang thiết lập các quy tắc, các lệnh này có thể được chạy từng dòng trong bash hoặc thông qua tệp lệnh.
Bash:
IF=eth0
PORT_FROM=80
PORT_TO=80
DEST=192.168.1.175
iptables -t nat -A PREROUTING -i $IF -p tcp — dport $PORT_FROM -j DNAT — to $DEST:$PORT_TO
iptables -t nat -A POSTROUTING -p tcp -d $DEST — dport $PORT_TO -j MASQUERADE
- IF= Chọn giao diện muốn định tuyến lưu lượng truy cập.
- PORT_FROM= Đặt cổng xuất.
- PORT_TO= Đặt cổng đích.
- DEST= Xác định địa chỉ IP của máy chủ web mà lưu lượng truy cập sẽ được định tuyến, có thể là trên môi trường ảo (VM).
Bash:
IF=eth0
PORT_FROM=51820
PORT_TO=51820
DEST=192.168.1.20
iptables -t nat -A PREROUTING -i $IF -p udp - dport $PORT_FROM -j DNAT - to $DEST:$PORT_TO
iptables -t nat -A POSTROUTING -p udp -d $DEST - dport $PORT_TO -j MASQUERADE
Tiếp theo bạn cần kiểm tra thiết bị của bạn đã bật giao thức chuyển tiếp.
Bash:
cat /proc/sys/net/ipv4/ip_forward
Mã này sẽ trả về 0 là tắt hoặc 1 là bật.
Để thiết lập bật giao thức chuyển tiếp chạy lệnh này:
Bash:
sudo sysctl -w net.ipv4.ip_forward=1
Để tắt chạy lệnh này:
Bash:
sudo sysctl -w net.ipv4.ip_forward=0
Các cài đặt trên sẽ có hiệu lực ngay lập tức mà không cần khởi động lại.