Trang chủ » làm thế nào để » Sử dụng Iptables trên Linux

    Sử dụng Iptables trên Linux

    Hướng dẫn này sẽ cố gắng giải thích cách sử dụng iptables trên linux bằng ngôn ngữ dễ hiểu.

    Nội dung

    [ẩn giấu]

    • 1. Sơ lượt
    • 2 Cách sử dụng
      • 2.1 Chặn một địa chỉ IP
      • 2.2 Cho phép tất cả lưu lượng truy cập từ một địa chỉ IP
      • 2.3 Chặn một cổng từ tất cả các địa chỉ
      • 2.4 Cho phép một cổng đơn từ một IP
      • 2.5 Xem các quy tắc hiện tại
      • 2.6 Xóa các quy tắc hiện tại
    • 3 Phân phối cụ thể
      • 3,1

    Tổng quan

    Iptables là một tường lửa dựa trên quy tắc, nó sẽ xử lý từng quy tắc theo thứ tự cho đến khi tìm thấy một quy tắc phù hợp.

    Todo: bao gồm ví dụ ở đây

    Sử dụng

    Tiện ích iptables thường được cài đặt sẵn trên bản phân phối linux của bạn, nhưng thực tế không chạy bất kỳ quy tắc nào. Bạn sẽ tìm thấy tiện ích ở đây trên hầu hết các bản phân phối:

    / sbin / iptables

    Chặn một địa chỉ IP

    Bạn có thể chặn IP bằng cách sử dụng tham số -s, thay thế 10.10.10.10 bằng địa chỉ mà bạn đang cố chặn. Bạn sẽ lưu ý trong ví dụ này rằng chúng tôi đã sử dụng tham số -I (hoặc -insert cũng hoạt động) thay vì nối thêm, bởi vì chúng tôi muốn đảm bảo quy tắc này xuất hiện trước, trước bất kỳ quy tắc cho phép nào.

    / sbin / iptables -I INPUT -s 10.10.10.10 -j DROP

    Cho phép tất cả lưu lượng truy cập từ một địa chỉ IP

    Bạn có thể luân phiên cho phép tất cả lưu lượng truy cập từ một địa chỉ IP bằng cách sử dụng cùng một lệnh như trên, nhưng thay thế DROP bằng ACCEPT. Bạn cần đảm bảo rằng quy tắc này xuất hiện trước, trước bất kỳ quy tắc DROP nào.

    / sbin / iptables -A INPUT -s 10.10.10.10 -j CHẤP NHẬN

    Chặn một cổng từ tất cả các địa chỉ

    Bạn có thể chặn hoàn toàn một cổng khỏi bị truy cập qua mạng bằng cách sử dụng khóa chuyển -dport và thêm cổng của dịch vụ bạn muốn chặn. Trong ví dụ này, chúng tôi sẽ chặn cổng mysql:

    / sbin / iptables -A INPUT -p tcp --dport 3306 -j DROP

    Cho phép một cổng từ một IP duy nhất

    Bạn có thể thêm lệnh -s cùng với lệnh -dport để tiếp tục giới hạn quy tắc cho một cổng cụ thể:

    / sbin / iptables -A INPUT -p tcp -s 10.10.10.10 --dport 3306 -j CHẤP NHẬN

    Xem các quy tắc hiện tại

    Bạn có thể xem các quy tắc hiện tại bằng cách sử dụng lệnh sau:

    / sbin / iptables -L

    Điều này sẽ cung cấp cho bạn một đầu ra tương tự như sau:

    Chuỗi INPUT (ACCEPT chính sách) đích đích chọn nguồn tham gia CHẤP NHẬN tất cả - 192.168.1.1/24 bất cứ nơi nào CHẤP NHẬN tất cả - 10.10.10.0/24 bất cứ nơi nào DROP tcp - mọi nơi mọi nơi tcp dpt: ssh DROP tcp - mọi nơi mys

    Đầu ra thực tế sẽ dài hơn một chút, tất nhiên.

    Xóa các quy tắc hiện tại

    Bạn có thể xóa tất cả các quy tắc hiện tại bằng cách sử dụng tham số tuôn ra. Điều này rất hữu ích nếu bạn cần đặt các quy tắc theo đúng thứ tự hoặc khi bạn đang kiểm tra.

    / sbin / iptables - tràn ngập

    Phân phối cụ thể

    Trong khi hầu hết các bản phân phối Linux bao gồm một dạng iptables, một số trong số chúng cũng bao gồm các trình bao bọc giúp việc quản lý dễ dàng hơn một chút. Thông thường, các addons này, có dạng các tập lệnh init, đảm nhiệm việc khởi tạo iptables khi khởi động, mặc dù một số bản phân phối cũng bao gồm các ứng dụng trình bao bọc đầy đủ cố gắng đơn giản hóa trường hợp phổ biến.

    Gentoo

    Các iptables init script trên Gentoo có khả năng xử lý nhiều tình huống phổ biến. Đối với người mới bắt đầu, nó cho phép bạn định cấu hình iptables để tải khi khởi động (thường là những gì bạn muốn):

    RC-update thêm iptables mặc định

    Sử dụng tập lệnh init, có thể tải và xóa tường lửa bằng lệnh dễ nhớ:

    /etc/init.d/iptables bắt đầu /etc/init.d/iptables dừng

    Tập lệnh init xử lý các chi tiết về việc duy trì cấu hình tường lửa hiện tại của bạn khi bắt đầu / dừng. Do đó, tường lửa của bạn luôn ở trong trạng thái bạn rời khỏi nó. Nếu bạn cần lưu thủ công một quy tắc mới, tập lệnh init cũng có thể xử lý điều này:

    /etc/init.d/iptables lưu

    Ngoài ra, bạn có thể khôi phục tường lửa của mình về trạng thái đã lưu trước đó (đối với trường hợp bạn đang thử nghiệm các quy tắc và bây giờ muốn khôi phục cấu hình làm việc trước đó):

    /etc/init.d/iptables tải lại

    Cuối cùng, tập lệnh init có thể đưa iptables vào chế độ hoảng loạn của người dùng, trong đó tất cả lưu lượng truy cập đến và đi đều bị chặn. Tôi không chắc tại sao chế độ này hữu ích, nhưng tất cả các tường lửa Linux dường như có nó.

    /etc/init.d/iptables hoảng loạn

    Cảnh báo: Đừng bắt đầu chế độ hoảng loạn nếu bạn được kết nối với máy chủ của mình qua SSH; bạn sẽ bị ngắt kết nối! Lần duy nhất bạn nên đặt iptables vào chế độ hoảng loạn là trong khi bạn thể chất trước máy tính.