CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết blog CFSDN hướng dẫn giới thiệu tường lửa Linux iptables này được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.
1. Về iptables.
iptables là một công cụ tường lửa dựa trên dòng lệnh sử dụng chuỗi quy tắc để cho phép/chặn lưu lượng mạng. Khi một kết nối mạng được cố gắng thiết lập trên hệ thống của bạn, iptables sẽ tìm kiếm các quy tắc phù hợp. Nếu không tìm thấy, iptables sẽ thực hiện hành động mặc định đối với nó. Hầu như tất cả các bản phân phối Linux đều được cài đặt sẵn iptables. Lệnh cập nhật/cài đặt iptables trong ubuntu/debian là:
Sao chép mã Mã này như sau:
sudo apt-get cài đặt iptables
Một số phần mềm giao diện đồ họa hiện có cũng có thể thay thế iptables, chẳng hạn như firestarter. Nhưng iptables không khó sử dụng. Hãy đặc biệt cẩn thận khi định cấu hình các quy tắc iptables, đặc biệt là khi bạn đăng nhập vào máy chủ từ xa. Vì lỗi lúc này có thể khiến bạn mất kết nối vĩnh viễn với máy chủ và bạn phải vào máy chủ để giải quyết. 2. Loại chuỗi quy tắc iptables.
。
Chuỗi quy tắc của iptables được chia thành ba loại: đầu vào, chuyển tiếp và đầu ra. 1. Đầu vào - Chuỗi này được sử dụng để lọc các kết nối có địa chỉ đích là máy cục bộ. Ví dụ: nếu người dùng cố gắng đăng nhập vào PC/máy chủ của bạn bằng SSH, trước tiên iptables sẽ khớp địa chỉ IP và cổng của họ với quy tắc chuỗi đầu vào iptables.
2. Chuyển tiếp - Chuỗi này được sử dụng để lọc các kết nối trong đó cả địa chỉ đích và địa chỉ nguồn đều không phải là địa chỉ cục bộ. Ví dụ: phần lớn dữ liệu mà bộ định tuyến nhận được cần được chuyển tiếp đến các máy chủ khác. Nếu hệ thống của bạn không kích hoạt các chức năng giống như bộ định tuyến, chẳng hạn như nating, bạn không cần sử dụng chuỗi này. Có một cách an toàn và đáng tin cậy để phát hiện xem hệ thống của bạn có yêu cầu chuỗi chuyển tiếp hay không:
Sao chép mã Mã này như sau:
iptables -l -v
Hình trên là ảnh chụp màn hình của một máy chủ đã chạy được vài tuần. Máy chủ này không đặt ra bất kỳ hạn chế nào đối với đầu vào và đầu ra. Có thể thấy, chuỗi đầu vào và chuỗi đầu ra đã xử lý lần lượt 11gb và 17gb dữ liệu, trong khi chuỗi chuyển tiếp chưa xử lý bất kỳ dữ liệu nào. Điều này là do máy chủ này không bật chức năng chuyển tiếp giống như bộ định tuyến. 3. Đầu ra - Chuỗi này được sử dụng để lọc các kết nối có địa chỉ nguồn là máy cục bộ. Ví dụ: khi bạn cố gắng ping HOWtogeek.com, iptables sẽ kiểm tra chuỗi đầu ra để tìm các quy tắc liên quan đến ping và Howtogeek.com, sau đó quyết định xem nên cho phép hay từ chối yêu cầu kết nối của bạn. Lưu ý: Khi ping máy chủ bên ngoài, có vẻ như chỉ có chuỗi đầu ra có hiệu lực. Nhưng hãy nhớ, dữ liệu được máy chủ bên ngoài trả về cần được lọc qua chuỗi đầu vào. Khi định cấu hình quy tắc iptables, hãy nhớ rằng nhiều giao thức yêu cầu giao tiếp hai chiều, vì vậy bạn cần định cấu hình cả chuỗi đầu vào và chuỗi đầu ra. Khi mọi người định cấu hình ssh, họ thường quên định cấu hình nó trên cả chuỗi đầu vào và đầu ra. 3. Hành vi mặc định của chuỗi.
。
Trước khi định cấu hình các quy tắc cụ thể, bạn có thể muốn định cấu hình hành vi mặc định của các chuỗi này. Nói cách khác, bạn muốn iptables làm gì khi nó không thể khớp với quy tắc hiện có? Bạn có thể chạy lệnh sau để hiển thị hành động mặc định của iptables hiện tại cho các kết nối chưa từng có:
Sao chép mã Mã này như sau:
iptables -l
。

Như đã trình bày ở trên, chúng ta có thể sử dụng grep để làm cho kết quả đầu ra ngắn gọn hơn. Trong ảnh chụp màn hình ở trên, tất cả các chuỗi đều chấp nhận tất cả các kết nối theo mặc định. Thông thường, bạn sẽ muốn hệ thống của mình nhận tất cả dữ liệu mạng theo mặc định. Cài đặt này cũng là cấu hình mặc định của iptables. Lệnh cấu hình để nhận kết nối mạng là:
。
Sao chép mã Mã này như sau:
iptables --policy chấp nhận đầu vào
iptables --policy chấp nhận đầu ra
iptables --policy chuyển tiếp chấp nhận
。
Bạn cũng có thể thêm một số lệnh để lọc các địa chỉ IP hoặc số cổng cụ thể trong khi sử dụng cấu hình mặc định. Chúng tôi giới thiệu các lệnh này sau trong bài viết này. Nếu bạn muốn từ chối tất cả các kết nối mạng theo mặc định và sau đó thêm các địa chỉ IP hoặc số cổng được phép lên trên đó, bạn có thể thay đổi chấp nhận trong cấu hình mặc định thành thả, như minh họa trong hình bên dưới. Điều này cực kỳ hữu ích cho các máy chủ chứa dữ liệu nhạy cảm. Thông thường các máy chủ này chỉ cho phép các địa chỉ IP cụ thể truy cập chúng.
。
Sao chép mã Mã này như sau:
iptables --policy đầu vào thả
iptables --policy đầu ra giảm
iptables --policy chuyển tiếp thả
。
。
4. Định cấu hình một kết nối cụ thể. Hãy xem cách đặt địa chỉ IP hoặc cổng cụ thể. Bài viết này chủ yếu giới thiệu ba cài đặt cơ bản và phổ biến nhất. chấp nhận – chấp nhận tất cả dữ liệu. thả - loại bỏ dữ liệu. Kịch bản ứng dụng: Khi bạn không muốn địa chỉ nguồn của dữ liệu biết về sự tồn tại của hệ thống của bạn (cách tốt nhất để xử lý dữ liệu đó). từ chối - không cho phép thiết lập kết nối nhưng trả về phản hồi lỗi. Kịch bản ứng dụng: Khi bạn không muốn một địa chỉ IP nhất định truy cập vào hệ thống của mình nhưng bạn muốn họ biết rằng tường lửa của bạn chặn quyền truy cập của họ. Để phân biệt trực quan ba tình huống trên, chúng tôi sử dụng PC để ping máy tính Linux được định cấu hình bằng iptables: Cho phép truy cập.
Bỏ quyền truy cập.
truy cập bị từ chối.
5. Cho phép hoặc chặn các kết nối cụ thể.
Sau khi định cấu hình chuỗi quy tắc cơ bản, bạn có thể định cấu hình iptables để cho phép hoặc chặn các địa chỉ IP hoặc cổng cụ thể. Lưu ý: Trong những ví dụ này, chúng tôi sử dụng iptables -a để thêm các quy tắc bổ sung vào chuỗi hiện có. Khi iptables thực hiện khớp, nó sẽ tìm kiếm từ đầu danh sách. Bạn có thể sử dụng iptables -i [chuỗi] [số] để chèn quy tắc mới vào danh sách tại một vị trí được chỉ định.
Kết nối từ cùng một địa chỉ IP Ví dụ sau đây cho thấy cách chặn tất cả các kết nối từ địa chỉ IP 10.10.10.10.
Sao chép mã Mã này như sau:
iptables -a đầu vào -s 10.10.10.10 -j thả
Kết nối từ một nhóm địa chỉ IP Ví dụ sau đây cho thấy cách chặn kết nối từ bất kỳ địa chỉ IP nào trong mạng con 10.10.10.0/24. Bạn có thể sử dụng mặt nạ mạng con hoặc ký hiệu / tiêu chuẩn để xác định mạng con:
Sao chép mã Mã này như sau:
iptables -a đầu vào -s 10.10.10.0/24 -j thả
hoặc.
Sao chép mã Mã này như sau:
iptables -a đầu vào -s 10.10.10.0/255.255.255.0 -j thả
Kết nối với các cổng cụ thể Ví dụ này cho thấy cách chặn kết nối ssh từ 10.10.10.10.
Sao chép mã Mã này như sau:
iptables -a đầu vào -p tcp --dport ssh -s 10.10.10.10 -j thả
Bạn có thể thay thế "ssh" bằng bất kỳ giao thức hoặc số cổng nào khác. -p tcp trong lệnh trên cho iptables biết kết nối đang sử dụng giao thức nào. Ví dụ sau đây cho thấy cách chặn kết nối ssh từ bất kỳ địa chỉ IP nào.
Sao chép mã Mã này như sau:
iptables -a đầu vào -p tcp --dport ssh -j thả
6. Trạng thái kết nối.
。
Chúng tôi đã đề cập trước đó rằng nhiều giao thức yêu cầu giao tiếp hai chiều. Ví dụ: nếu bạn dự định cho phép kết nối ssh, bạn phải định cấu hình cả chuỗi đầu vào và đầu ra. Nhưng nếu bạn chỉ muốn cho phép các yêu cầu ssh từ bên ngoài thì sao? Ví dụ sau đây cho thấy cách cho phép địa chỉ IP nguồn 10.10.10.10 trong khi chặn kết nối SSH địa chỉ đích 10.10.10.10:
Sao chép mã Mã này như sau:
iptables -a đầu vào -p tcp --dport ssh -s 10.10.10.10 -m trạng thái --trạng thái mới, thành lập -j chấp nhận
iptables -a đầu ra -p tcp --sport 22 -d 10.10.10.10 -m trạng thái --trạng thái đã thiết lập -j chấp nhận
7. Lưu các thay đổi được thực hiện đối với quy tắc iptables bằng phương pháp trên chỉ là tạm thời. Nếu bạn muốn lưu những thay đổi này vĩnh viễn, bạn cần chạy các lệnh bổ sung (các lệnh lưu sẽ khác nhau trong các bản phân phối Linux khác nhau): ubuntu
Sao chép mã Mã này như sau:
sudo /sbin/iptables-lưu
mũ đỏ / centos
Sao chép mã Mã này như sau:
/sbin/dịch vụ iptables lưu
hoặc.
Sao chép mã Mã này như sau:
/etc/init.d/iptables lưu
。
。
8. Các lệnh khác.
。
Liệt kê cấu hình hiện tại của iptables:
Sao chép mã Mã này như sau:
iptables -l
Sử dụng tùy chọn -v sẽ hiển thị thông tin gói và byte; sử dụng tùy chọn -n sẽ liệt kê thông tin ở dạng số, nghĩa là địa chỉ IP sẽ không được phân giải thành tên miền. Nói cách khác, tên máy chủ, giao thức và mạng được liệt kê bằng số. Xóa tất cả các quy tắc cấu hình hiện tại:
Sao chép mã Mã này như sau:
iptables -f
Cuối cùng, bài viết về hướng dẫn giới thiệu tường lửa Linux iptables kết thúc ở đây. Nếu bạn muốn biết thêm về hướng dẫn giới thiệu tường lửa Linux iptables, vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai. ! .
Tôi là một lập trình viên xuất sắc, rất giỏi!