Linux iptables bị từ chối - Làm cách nào để tôi bật lại?


8

vì vậy tôi có một máy khách trong mạng được kết nối với bộ định tuyến thông qua máy tính của tôi với arpspoof. Khi tôi biết muốn dừng chuyển tiếp gói, tôi thực thi:

iptables -A FORWARD -j REJECT

đó là làm việc như tôi mong đợi Nhưng khi tôi cố gắng làm một cái gì đó như:

iptables -A FORWARD -j ACCEPT

Tôi không thể quản lý để làm cho các gói đi qua như lúc ban đầu.

Tôi đang làm gì đó sai hay có bất kỳ đối số nào khác mà tôi nên sử dụng khác với "CHẤP NHẬN" không?


4
Theo cách bạn đang sử dụng -A, có thể bạn muốn sử dụng -Pđể đặt P olicy (hành động mặc định khi không áp dụng quy tắc nào khác trong chuỗi). Ví dụ: iptables -P FORWARD DROP(không thể REJECT).
JoL

"Câu hỏi cần thể hiện kỹ năng quản lý hệ thống hợp lý" nghĩa là gì? :)
Marco

Câu trả lời:


35

IPtables có một danh sách các quy tắc và đối với mỗi gói, nó sẽ kiểm tra danh sách các quy tắc theo thứ tự. Khi một quy tắc được tìm thấy phù hợp với gói và chỉ định một chính sách (CHẤP NHẬN, DỰ ÁN, DROP), số phận của gói phù hợp được xác định; không có nhiều quy tắc được kiểm tra.

Điều này có nghĩa là thứ tự bạn chạy các lệnh là quan trọng. Khi bạn sử dụng iptables -A, bạn thêm một quy tắc vào cuối danh sách quy tắc, do đó bạn sẽ kết thúc với một danh sách quy tắc trông như thế này:

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited
ACCEPT     all  --  anywhere             anywhere

Kể từ khi REJECTquy tắc đến trước khi các ACCEPTquy tắc, nó được kích hoạt đầu tiên, và do đó chuyển tiếp sẽ không xảy ra.

Do đó, bạn sẽ cần xóa REJECTquy tắc thay vì thêm ACCEPTquy tắc. Để xóa quy tắc DỰ ÁN, hãy chạy

iptables -D FORWARD -j REJECT 

Để biết thêm thông tin, hãy đọc trang web iptables.


18

Các -Alá cờ nói với iptables để nối thêm các quy tắc để chuỗi, có nghĩa là nó kết thúc lên dưới của bạn REJECTquy định, và kể từ khi trận đấu quy tắc đầu tiên, nó không bao giờ được sử dụng.

Bạn liệt kê các quy tắc của bạn với iptables -L FORWARDvà bạn sẽ thấy điều này chính mình. Để thoát khỏi quy tắc bạn đã thêm, hãy chạy

iptables -D FORWARD -j REJECT 

Cho đến khi không còn quy tắc như vậy trong chuỗi.


1

Điều gì sắp xảy ra khi kết thúc FORWARDquy tắc để nhảy vào chuỗi mới, trong đó sẽ chỉ có một quy tắc. Nó có thể ACCEPThoặc REJECT. Nói...

iptables -N accept-chain
iptables -A accept-chain -j ACCEPT
iptables -A FORWARD -j accept-chain

Sau đó, bạn có thể thay đổi quy tắc này theo cách accept-chainnhư

iptables -R accept-chain 1 -j REJECT

để vô hiệu hóa hoặc -j ACCEPTđể kích hoạt.

Ngoài ra những gì abount để bật và tắt định tuyến bằng

echo "0" > /proc/sys/net/ipv4/ip_forward

để vô hiệu hóa chuyển tiếp gói và "1"- cho phép.


0

Vấn đề đặt hàng. Điều này sẽ chèn quy tắc của bạn ở đầu thay vì nối thêm.

iptables -I FORWARD 1 -j ACCEPT

-Tôi là để chèn và # 1 là vị trí

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.