Hãy Quy tắc đầu tiên của bạn
Chúng ta sẽ bắt đầu xây dựng các chính sách tường lửa của chúng tôi. Như chúng tôi đã nói ở trên, chúng ta sẽ được làm việc với các chuỗi INPUT vì đó là kênh đã lưu lượng gửi đến sẽ được gửi qua. Chúng ta sẽ bắt đầu với những quy tắc mà chúng tôi đã nói chuyện về một chút ở trên:. Các quy tắc mà chấp nhận một cách rõ ràng kết nối SSH hiện tại của bạn
Các quy tắc đầy đủ, chúng ta cần là:
sudo iptables -A VÀO -m conntrack --ctstate ESTABLISHED, RELATED -j ACCEPT
này có thể trông vô cùng phức tạp, nhưng hầu hết nó sẽ có ý nghĩa khi chúng tôi đi qua các thành phần:
Input -A: cờ -A gắn thêm một quy tắc để kết thúc một chuỗi. Đây là một phần của lệnh mà nói với iptables mà chúng tôi muốn thêm một quy tắc mới, mà chúng tôi muốn rằng quy định thêm vào phần cuối của chuỗi, và chuỗi chúng ta muốn hoạt động trên là chuỗi INPUT.
-m Conntrack: iptables có một tập hợp các chức năng cốt lõi, nhưng cũng có một bộ mở rộng hoặc mô-đun cung cấp khả năng thêm.
trong phần này của lệnh, chúng ta nói rằng chúng ta muốn có quyền truy cập vào các chức năng được cung cấp bởi các module conntrack. Module này cho phép truy cập vào các lệnh có thể được sử dụng để đưa ra quyết định dựa trên mối quan hệ của gói tin để kết nối trước đó.
--ctstate: Đây là một trong các lệnh được thực hiện bằng cách gọi các module conntrack. Lệnh này cho phép chúng tôi kết hợp các gói tin dựa trên cách họ có liên quan đến các gói tin chúng tôi đã thấy trước đây.
Chúng tôi vượt qua nó giá trị thành lập để cho phép gói tin là một phần của kết nối hiện tại. Chúng tôi vượt qua nó giá trị của LIÊN QUAN để cho phép các gói tin có liên quan đến một kết nối được thiết lập. Đây là một phần của quy tắc phù hợp với phiên SSH hiện tại của chúng tôi.
-j ACCEPT: Chỉ định mục tiêu của gói tin phù hợp. Ở đây, chúng tôi nói với iptables rằng các gói tin phù hợp với các tiêu chuẩn trước nên được chấp nhận và cho phép thông qua.
Chúng tôi đặt quy tắc này ngay từ đầu vì chúng tôi muốn chắc chắn các kết nối, chúng tôi đã sử dụng được kết hợp, chấp nhận, và kéo ra khỏi chuỗi trước . đạt được bất kỳ quy tắc thả
chúng ta có thể thấy những thay đổi nếu chúng tôi danh sách các quy tắc:
sudo iptables -L
Output:
Chain INPUT (chính sách ACCEPT)
Prot mục tiêu chọn điểm đến nguồn
ACCEPT tất cả - bất cứ nơi nào bất cứ nơi nào ctstate LIÊN QUAN, thành lập
chuỗi Forward (chính sách ACCEPT)
mục tiêu Prot lựa chọn điểm đến nguồn
chuỗi OUTPUT (chính sách ACCEPT)
Prot mục tiêu chọn điểm đến nguồn
Bây giờ bạn biết cú pháp chung, chúng ta hãy tiếp tục bằng cách thêm một số trường hợp nhiều hơn, nơi chúng tôi muốn chấp nhận các kết nối.
chấp nhận kết nối cần thiết khác
chúng tôi đã nói với iptables để giữ mở bất kỳ kết nối đã được mở và cho phép kết nối mới liên quan đến những kết nối. Tuy nhiên, chúng ta cần phải tạo ra một số quy tắc để thiết lập khi chúng tôi muốn chấp nhận các kết nối mới mà không đáp ứng được những tiêu chí.
Chúng tôi muốn giữ hai cổng mở cụ thể. Chúng tôi muốn giữ cổng SSH của chúng tôi mở (chúng ta sẽ giả định trong hướng dẫn này rằng đây là mặc định 22. Nếu bạn đã thay đổi này trong cấu hình SSH của bạn, thay đổi giá trị của bạn ở đây). Chúng tôi cũng sẽ cho rằng máy tính này đang chạy một máy chủ web trên cổng mặc định 80. Nếu điều này không phải là trường hợp của bạn, bạn không cần phải thêm quy tắc đó.
Hai dòng chúng ta sẽ sử dụng để thêm những quy định là:
sudo iptables -A vÀO -p tcp --dport 22 -j ACCEPT
sudo iptables -A vÀO -p tcp --dport 80 -j ACCEPT
Như bạn có thể thấy, đây là những rất giống với nguyên tắc đầu tiên của chúng tôi, nhưng có lẽ đơn giản hơn. Những tùy chọn mới là:
-p tcp: Tùy chọn này phù hợp với các gói tin nếu giao thức được sử dụng là TCP. Đây là một giao thức kết nối dựa trên sẽ được sử dụng bởi hầu hết các ứng dụng bởi vì nó cho phép truyền thông tin cậy.
--dport: Tùy chọn này có sẵn nếu cờ -p tcp được đưa ra. Nó đưa ra một yêu cầu tiếp tục phù hợp với các cổng đích cho các gói tin phù hợp. Nguyên tắc đầu tiên phù hợp cho các gói tin TCP định cho cổng 22, trong khi quy tắc thứ hai phù hợp với lưu lượng TCP chỉ về phía cổng 80.
Có thêm một chấp nhận quy tắc mà chúng ta cần phải đảm bảo rằng máy chủ của chúng tôi có thể hoạt động một cách chính xác. Thông thường, các dịch vụ trên máy tính giao tiếp với nhau bằng cách gửi các gói dữ liệu mạng với nhau. Họ làm điều này bằng cách sử dụng một giao diện mạng giả gọi là thiết bị loopback, trong đó chỉ đạo giao lại cho chính nó chứ không phải là các máy tính khác.
Vì vậy, nếu một trong những dịch vụ muốn giao tiếp với một dịch vụ mà là lắng nghe cho các kết nối trên cổng 4555, nó có thể gửi một gói tin đến cổng 4555 của thiết bị loopback. . Chúng tôi muốn loại hành vi được cho phép, bởi vì nó là điều cần thiết cho các hoạt động chính xác của nhiều chương trình
Các quy tắc chúng ta cần thêm là:
sudo iptables -I INPUT 1 -i lo -j ACCEPT
này trông hơi khác so với chúng tôi các lệnh khác. Hãy đi qua những gì nó đang làm:
-I INPUT 1: Lá cờ -Tôi nói với iptables để chèn một quy tắc. Điều này khác hơn -A flag đó gắn thêm một quy tắc đến cùng. Lá cờ -Tôi có một chuỗi và vị trí quy tắc mà bạn muốn chèn các quy tắc mới.
Trong trường hợp này, chúng tôi đang thêm thi
đang được dịch, vui lòng đợi..
