Chặn tất cả trừ lưu lượng http trên giao diện mạng


2

Tôi đã có hai giao diện mạng trên một máy Ubuntu đi ra hai mạng khác nhau nhưng cả hai đều có cổng internet.

Tôi cần phải hạn chế nó để bất kỳ hướng ngoaị http yêu cầu nó thực hiện (tức là thông qua wget) chỉ đi qua eth0 và tất cả các lưu lượng khác đi qua eth1.

Tôi dám nói giải pháp có thể liên quan đến iptables nhưng tôi không có kinh nghiệm với nó nên sẽ đánh giá cao tất cả sự giúp đỡ.


Điều này sẽ phù hợp hơn với Server Fault?
Aren B

2
Không thực sự, đây không phải là một câu hỏi máy chủ.
Daisetsu

@Daisetsu: mhh .. không chắc chắn. Tôi đã thấy các câu hỏi cho việc chia sẻ băng thông và cân bằng tải băng thông trên serverfault.com.
akira

@
akira

akira: Không có sự khác biệt nào cả. Lý do duy nhất tôi chỉ định wget là vì máy tính là một máy chủ không đầu. Một số tập lệnh nhất định thực hiện các yêu cầu đến các máy chủ khác thông qua wget và về cơ bản tôi cần hạn chế giao diện mà nó sử dụng cho các công việc bên ngoài nhất định.
Oli

Câu trả lời:


2

Bạn có thể làm điều này với IPTables. Bạn cần chỉ định quy tắc mở đầu (hoặc là chuyển tiếp) cho biết mọi thứ trên cổng 80 nên được định tuyến đến eth0, và sau đó trong quy tắc định tuyến thông thường mặc định là eth1.

Đã được một thời gian kể từ khi tôi xây dựng các quy tắc IPTables vì ​​vậy tôi không thể đưa ra các quy tắc chính xác.


nó có thể nhưng tôi nghĩ rằng phong cách xấu của nó. bảng định tuyến là cách để đi.
matthias krull

1

Nếu nó đủ để chỉ lưu lượng truy cập vào giao diện khác, bạn có thể làm điều này:

Đầu tiên, tìm hiểu về bảng định tuyến và nhiều tuyến mặc định: http://lartc.org/howto/lartc.rpdb.mult Môn-links.html

Thiết lập mạng của bạn để bảng định tuyến mặc định đặt lưu lượng truy cập qua eth1. Sau đó thêm một quy tắc rằng lưu lượng truy cập bắt nguồn từ địa chỉ ip eth0 sử dụng bảng định tuyến cho eth0. Sau đó sử dụng tùy chọn wget - địa chỉ liên kết để liên kết với địa chỉ ip eth0.

Nếu bạn không sử dụng wget có thể chỉ định địa chỉ liên kết, một cách khác là thiết lập proxy www và liên kết (chỉ) với địa chỉ eth0, sau đó sử dụng proxy đó.


-1

Tôi sẽ nói chỉnh sửa Apache, để "lắng nghe" một địa chỉ IP cụ thể. Theo mặc định, Apache lắng nghe tất cả các Địa chỉ IP mà máy của bạn có thể có.
Nhìn vào /etc/apache2/sites-enabled/xxx và kiểm tra Listen Chỉ thị. Tôi sợ rằng tôi không sử dụng Ubuntu, vì vậy hãy xem

grep -r -i "listen" /etc/apache2/

Tìm tệp và thay đổi nó thành:

# Listen <IP ADDRESS>:<PORT>  
Listen 10.2.3.4:80

1
Tôi đang nói về lưu lượng truy cập đi (tức là máy tính đang đề nghị gửi yêu cầu đến máy chủ khác). Bạn có thể nghĩ về nó như một máy tính để bàn nếu bạn muốn. Không có gì để làm với Apache hoặc bất kỳ httpd nào khác.
Oli

-2

Nhìn vào bờ biển. Tài liệu cho tập tin masq dường như bao gồm những gì bạn muốn. Bạn sẽ cần đảm bảo rằng bạn không định tuyến giữa hai giao diện.


Xin lỗi, đó là DNS và không có gì để làm với định tuyến lưu lượng truy cập đi.
Oli

Shorewall không phải là DNS và tất cả về iptables. Bạn cần đảm bảo yêu cầu được giải quyết từ giao diện thích hợp, đó là điều Shorewall có thể làm cho bạn khá dễ dàng.
BillThor
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.