Bài đăng nổi bật

Hướng dẫn thay đổi thư mục root mặc định của Docker trên Linux

Hoàn cảnh: người viết gặp một trường hợp như này Được team hạ tầng cấp cho một máy chủ gồm 2 phân vùng lưu trữ, 1 phân vùng 20GB được gắn và...

03 tháng 1, 2017

Hướng dẫn sử dụng Iptables nâng cao

Trong bài viết trước tôi đã có giới thiệu các kiến thức cơ bản về iptables.
Trong bài này, tôi sẽ hướng dẫn cụ thể các bạn cách sử dụng iptables để bảo vệ hệ thống của mình.

Một lưu ý trước khi sử dụng iptables để tránh xảy ra các vấn đề không mong muốn:

  • Nên bắt đầu sử dụng Iptables với hướng tiếp cận Accept từ mọi nguồn hoặc Drop từ mọi nguồn (Cái này bạn cần xác định xem nhu cầu của mình là số lượng cổng mở nhiều hơn hay số lượng cổng muốn đóng là nhiều hơn - tương ứng với Accept all và Drop all)
  • Nên cho một địa chỉ nguồn nằm trong danh sách Accept all để tránh việc sau khi chạy iptable ta không thể remote hệ thống.
  • Mức độ ưu tiên sẽ là từ trên xuống và nếu gặp một luật khớp thì các luật phía sau sẽ bị bỏ qua.
Dưới đây là một số tùy chọn thường dùng:
  • A: nối tiếp luật vào một bảng luật có sẵn. Ví dụ nếu ta dùng:
    iptables -A INPUT -s 1.2.3.4 -j DROP
    Có nghĩa là thêm một luật vào cuối cùng của bảng INPUT.
  • I: chèn luật lên đầu một bảng luật có sẵn.
  • s: ip máy chủ sẽ được áp dụng luật.
  • j: luật sẽ áp dụng là gì.
    ACCEPT: cho phép thông luồng
    DROP: cấm luồng và không thông báo gì cho máy kết nối
    REJECT: cấm luồng và thông báo cho máy kết nối
    LOG: thông luồng nhưng có ghi lại log.
  • dport: cổng áp dụng là gì.
  • m -conntrack: áp dụng luật với trạng thái của kết nối (thường đi với tùy chọn --ctstate)
  • ctstate: định nghĩ các trạng thái sẽ áp dụng luật, bao gồm:
    NEW: là các kết nối mới mà hệ thống chưa gặp bao giờ.
    RELATED: là kết nối mới nhưng có liên quan tới kết nối đã được cho phép.
    ESTABLISHED: là kết nối đã được thiết lập.
    INVALID: là kết nối mà hệ thống không thể nhận diện.
  • p: giao thức của kết nối, có thể là TCP hoặc UDP
  • i: giao diện kết nối.
  • d: đích kết nối.
Dưới đây là một số thủ thuật khi sử dụng Iptables:
  • Với tham số "d", Ip có thể có định dạng a.b.c.d/x.y.z.w, hoặc a.b.c.d/x. Trong đó a.b.c.d là địa chỉ IP còn x.y.z.w hoặc x là IP mask.
  • Với tham số "i", đầu vào có thể sử dụng thêm tùy chọn:
    • ! - nghĩa là áp dụng trừ giao diện này.
    • + - nghĩa là chỉ áp dụng giao diện này.
  • Với tham số dport: có thể chỉ ra dải cổng cần tác động theo cấu trúc a:b, là cổng tác động bắt đầu từ a tới b.

Tham khảo: