Tin tức và phân tích của tất cả các thiết bị di động

Hướng dẫn từng bước cách định cấu hình Iptables trong Linux 2023

IPTables là tên của một hệ thống tường lửa hoạt động thông qua dòng lệnh trên Linux. Chương trình này chủ yếu có sẵn dưới dạng tiện ích mặc định trên Ubuntu. Quản trị viên thường sử dụng tường lửa IPTables để cho phép hoặc chặn lưu lượng truy cập vào mạng của họ. Nếu bạn chưa quen với IPTables thì một trong những điều đầu tiên bạn cần làm là cập nhật hoặc cài đặt nó bằng cách sử dụng lệnh sau:

$ sudo apt-get install iptables

Mặc dù những người dùng mới làm quen với giao diện dòng lệnh nhận thấy có một đường cong học tập gắn liền với IPTables, nhưng bản thân tiện ích này đủ đơn giản để sử dụng. Có một loạt các lệnh cốt lõi đóng vai trò quan trọng trong việc kiểm soát lưu lượng truy cập. Nói như vậy, bạn cần phải hết sức cẩn thận khi thực hiện các thay đổi đối với quy tắc IPTables. Nhập sai lệnh có thể khóa hoàn toàn IPTables của bạn cho đến khi bạn giải quyết được sự cố trong máy vật lý.

Trong bài viết này, chúng tôi sẽ cung cấp cho bạn hướng dẫn cơ bản về IPTables và giới thiệu cho bạn những kiến ​​thức cơ bản. Trước khi chúng ta đi vào trọng tâm của IPTables, bạn cần đảm bảo rằng bạn có một VPA chạy Ubuntu 16.04 và một máy cục bộ có máy khách SSH. Nếu bạn đã có những thứ này thì đã đến lúc bắt đầu.

Hướng dẫn về IPTables: Chuỗi

Một trong những khái niệm cơ bản cần nắm bắt trong IPTables là khái niệm về chuỗi. Một chuỗi về cơ bản là một quy tắc. Các bảng của bộ lọc có ba chuỗi bạn sẽ gặp trên IPTables; ĐẦU VÀO, PHÍA TRƯỚCĐẦU RA.

    • ĐẦU VÀO – Chuỗi INPUT là quy tắc kiểm soát các gói tin đến. Tại đây bạn có thể chặn hoặc cho phép các kết nối mới. Bạn có thể thực hiện việc này dựa trên cổng, giao thức và địa chỉ IP nguồn.
  • PHÍA TRƯỚC – Chuỗi FORWARD lọc các gói đến đang được chuyển tiếp đến một vị trí cuối khác. Bạn khó có thể sử dụng chuỗi này trừ khi bạn định tuyến hoặc tìm kiếm chuyển tiếp cụ thể.
  • ĐẦU RA – Chuỗi OUTPUT được sử dụng để quản lý các gói và kết nối gửi đi. Điều quan trọng cần lưu ý là nếu bạn ping một máy chủ bên ngoài thì chuỗi đầu vào sẽ được sử dụng để trả lại dữ liệu cho bạn.

Hành vi chuỗi mặc định

Bạn có thể muốn chuyển ngay sang việc định cấu hình các quy tắc cụ thể khi bắt đầu nhưng trước tiên bạn cần lùi lại một bước để xác định hành vi mặc định. Để xác định hành vi mặc định của chuỗi là gì, bạn cần chạy lệnh:

$ sudo iptables -L command 

Điều này sẽ hiển thị như sau:

user@ubuntu:~$ sudo iptables -L -v
Chain INPUT  (policy ACCEPT) 
Chain FORWARD (policy ACCEPT) 
Chain OUTPUT (policy ACCEPT) 
user@ubuntu:~$

Thông tin này cho bạn biết chính xác chuỗi của bạn được cấu hình để làm gì. Trong ví dụ, chuỗi đầu vào, chuyển tiếp và đầu ra đã được cấu hình để chấp nhận lưu lượng truy cập. Các cài đặt này là điểm khởi đầu tốt vì chúng không chặn bất kỳ kết nối nào bạn muốn.

Tuy nhiên, nếu bạn nhận thấy chính sách của mình không chấp nhận kết nối thì bạn có thể nhập từng lệnh sau để chấp nhận tất cả kết nối:

$ sudo iptables —policy INPUT ACCEPT
$ sudo iptables —policy OUTPUT ACCEPT
$ sudo iptables —policy FORWARD ACCEPT

Khi các giá trị mặc định của bạn được căn chỉnh để chấp nhận tất cả các kết nối, bạn có thể kiểm soát quyền truy cập vào IPTables bằng cách chặn địa chỉ IP và số cổng. Điều này cho phép bạn chỉ định những kết nối nào bạn muốn chặn thay vì chặn mọi thứ theo mặc định.

Nếu bạn đang làm việc với thông tin đặc biệt nhạy cảm thì bạn có thể định cấu hình mặc định của mình để tự động chặn tất cả các kết nối. Bằng cách này, bạn có thể sử dụng IPTables để chọn các địa chỉ IP riêng lẻ mà bạn muốn cho phép. Để làm điều này, bạn cần nhập lệnh sau:

$ sudo iptables —policy INPUT DROP
$ sudo iptables —policy OUTPUT DROP
$ sudo iptables —policy FORWARD DROP

Tốt hơn hết là phần lớn người dùng nên chấp nhận tất cả các kết nối nhưng điều đáng ghi nhớ là nếu bạn đang làm việc trên một máy chủ có độ bảo mật cao.

Định cấu hình các kết nối riêng lẻ

Khi bạn đã định cấu hình hành vi chuỗi mặc định của mình, đã đến lúc định cấu hình các kết nối riêng lẻ. Đây là điểm mà bạn định cấu hình những gì được gọi là phản hồi dành riêng cho kết nối. Về cơ bản, điều này cho IPTables biết cách tương tác khi được kết nối với địa chỉ IP hoặc cổng. Những phản hồi này như sau; CHẤP NHẬN, LÀM RƠI, TỪ CHỐI.
Như bạn có thể thấy trong hình trên, người dùng đã xác định các quy tắc chuỗi để cho phép, loại bỏ hoặc từ chối kết nối dựa trên yêu cầu. Dưới đây là mô tả về nội dung của từng phản hồi:

  • CHẤP NHẬN – Cấu hình này chỉ đơn giản là cho phép kết nối diễn ra.
  • LÀM RƠI – Thả chặn kết nối mà không tương tác với nguồn dưới bất kỳ hình thức nào.
  • TỪ CHỐI – Điều này chặn kết nối đã thử nhưng cũng gửi thông báo lỗi. Điều này thường là để thông báo cho nguồn rằng nỗ lực kết nối đã bị tường lửa của bạn chặn.

Cách cho phép hoặc chặn kết nối

Có nhiều cách khác nhau để chặn hoặc cho phép kết nối tùy thuộc vào cài đặt của bạn. Các ví dụ bên dưới đang sử dụng phương pháp chặn bí mật bằng cách sử dụng Làm rơi để hủy kết nối mà không có bất kỳ tương tác nào. iptables -A cho phép chúng tôi thêm các cảnh báo bổ sung vào các quy tắc được thiết lập bởi cài đặt chuỗi mặc định của chúng tôi. Bạn xem cách sử dụng lệnh này để chặn kết nối bên dưới:

Chặn một địa chỉ IP duy nhất:

$ sudo iptables -A INPUT -S 10.10.10.10 -j DROP

Trong ví dụ trên, bạn sẽ thay thế 10.10.10.10 bằng địa chỉ IP bạn muốn chặn.

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

$ sudo iptables -A INPUT -s 10.10.10.10.0/24 -j DROP    

hoặc

$ sudo iptables -A INPUT -s 10.10.10.0/255.255.255/.0 -j DROP

Chặn một cổng duy nhất:

$ sudo iptables -A INPUT -p tcp —dport ssh -s 10.10.10.10 -j DROP 

Note rằng ‘ssh có thể được thay thế bằng bất kỳ giao thức hoặc số cổng nào. Điều quan trọng cần lưu ý là phân đoạn -p tcp của mã được sử dụng để chỉ xem giao thức bạn muốn chặn đang sử dụng UDP hay TCP.

Nếu giao thức đang sử dụng UDP thì bạn sẽ nhập -p udp thay vì -p tcp. Bạn cũng có thể chặn tất cả các kết nối từ địa chỉ IP bằng cách nhập lệnh sau:

$ sudo iptables -A INPUT -p tcp —dport ssh -jDROP

Giao tiếp hai chiều: Hướng dẫn về các trạng thái kết nối IPTables

Hầu hết các giao thức bạn gặp đều yêu cầu giao tiếp phải thực hiện cả hai chiều để quá trình truyền diễn ra. Điều này có nghĩa là việc chuyển tiền được tạo thành từ đầu vào và đầu ra. Những gì đi vào hệ thống của bạn cũng quan trọng như những gì đi ra. Trạng thái kết nối cho phép bạn trộn và kết hợp giữa kết nối hai chiều và kết nối một chiều. Trong ví dụ bên dưới, giao thức SSH đã chặn các kết nối SSH từ địa chỉ IP nhưng cho phép các kết nối đó đến địa chỉ IP:

$ sudo iptables -A INPUT -p tcp —dport ssh -s 10.10.10.10 -m state —state NEW, ESTABLISHED -j ACCEPT 

$ sudo iptables -A OUTPUT -p tcp —sport 22 -d 10.10.10.10. -m state —state ESTABLISHED -J ACCEPT 

Khi bạn đã nhập lệnh để thay đổi trạng thái kết nối, bạn cần lưu các thay đổi của mình. Nếu không thì khi bạn đóng tiện ích, cấu hình của bạn sẽ bị mất. Tùy thuộc vào hệ thống phân phối bạn đang sử dụng, có một số lệnh khác nhau bạn có thể sử dụng:

Ubuntu:

$ sudo /sbin/iptables-save

Mũ đỏ / CentOS –

$ sudo /sbin/service iptables save

HOẶC

$ sudo  /etc/init.d/iptables save 

Việc nhớ sử dụng các lệnh này là rất quan trọng vì nó sẽ loại bỏ rắc rối khi phải cấu hình mỗi khi bạn tải tiện ích lên.

Xóa một quy tắc

Cũng quan trọng như việc có thể lưu các quy tắc của bạn là có thể xóa chúng. Nếu bạn mắc lỗi hoặc chỉ muốn loại bỏ quy tắc cũ thì bạn có thể sử dụng tùy chọn –D yêu cầu. Lệnh này cần được kết hợp với số lượng quy tắc mà bạn nhập. Con số này cho IPTables biết quy tắc nào sẽ bị xóa. Ví dụ: nếu bạn nhập:

$ sudo iptables -D INPUT 10

Sau đó, quy tắc thứ 10 bạn đã định cấu hình sẽ bị xóa.

Nếu bạn muốn dọn dẹp nhà cửa và loại bỏ một loạt các quy tắc thì bạn có thể sử dụng Lệnh -F. Bạn có thể thực hiện việc này bằng cách nhập thông tin sau:

$ sudo iptables -F

Điều này sẽ xóa toàn bộ bộ quy tắc và xóa IPTable của bạn.

IPTables: Tìm hiểu quy tắc chuỗi!

Điều đó kết thúc hướng dẫn IPTables của chúng tôi. Như bạn có thể thấy IPTables là một công cụ linh hoạt để chặn và cho phép lưu lượng truy cập trên Linux phân phối. Sử dụng tiện ích này một cách hiệu quả bao gồm việc thiết lập cấu hình mặc định của bạn một cách hiệu quả và xây dựng các quy tắc bổ sung trên đó. Cấu hình mặc định sẽ cho phép bạn phác thảo ý định lưu lượng truy cập rộng rãi của mình để cho phép hoặc từ chối lưu lượng truy cập; các quy tắc sẽ cho phép bạn cấu trúc cách tiếp cận của mình liên quan đến địa chỉ IP, cổng và giao thức.

Chúng tôi chỉ mới bắt đầu với tiềm năng của IPTables và có rất nhiều lệnh khác nhau mà bạn có thể sử dụng để quyết định cách bạn trải nghiệm lưu lượng truy cập trên máy chủ của mình. Tuy nhiên, chúng tôi khuyên bạn nên tìm hiểu những điều cơ bản trước khi bắt đầu với các lệnh khác. Ví dụ: bạn sẽ muốn tìm hiểu các quy tắc cơ bản về chuỗi trước khi chuyển sang bất kỳ điều gì chuyên biệt hơn.

Sau khi đã quen với cách hoạt động của IPTables, bạn có thể bắt đầu kết hợp nhiều quy tắc hơn nữa để tùy chỉnh trải nghiệm của mình. Khi làm như vậy, bạn sẽ có thể chỉ định chính xác loại kết nối nào bạn sẽ cho phép với độ chính xác cao hơn bao giờ hết.

Cũng đọc