- Tổng đài 24/7: 1800 646 881
- Đăng nhập
- 3
Iptables là một tiện ích tường lửa linh hoạt dành cho Linux với những công dụng ưu việt nhất hiện nay. Các loại chuỗi phổ biến của iptables là gì và chúng có những tính năng như thế nào? Hay các kết nối của iptables có những quy tắc gì? Hãy cùng BKHOST tìm hiểu ngay trong bài viết dưới đây.
Iptables là một tiện ích tường lửa dành cho hệ điều hành Linux, có khả năng tự thiết lập các quy tắc kết nối trên hệ thống hỗ trợ kiểm soát truy cập.
Sử dụng cách truy xuất gói sau để cài đặt và cập nhật iptables trên Linux:
{{EJS0}}
Firestarter có thể được sử dụng thay thế GUI với các dòng lệnh khá đơn giản. Tuy nhiên, có một số lưu ý khi định cấu hình các quy tắc iptables cần chú ý. Chẳng hạn như hãy khóa máy chủ SSH nếu đang mở cổng. Ví dụ về một trường hợp lỗi đó là nếu SSH vào một máy chủ bằng một lệnh sai thì hệ thống sẽ bị khóa vĩnh viễn cho đến khi nó được sửa đổi và khắc phục hoàn toàn.
Iptables gồm có ba chuỗi chính đó là input, forward, và output.
Để kiểm tra hệ thống có đang sử dụng hay yêu cầu chuỗi chuyển tiếp hay không hãy sử dụng lệnh:
{{EJS1}}
Trên đây là hình ảnh của một máy chủ đang hoạt động không hạn chế với các kết nối đến và đi. Trong đó, Input đã xử lý 11GB gói, Output đã xử lý 17GB gói và Forward không thực hiện bất kỳ công việc xử lý gói nào. Điều này là do máy chủ không thực hiện bất kỳ loại chuyển tiếp hoặc đang được sử dụng giống như một thiết bị truyền qua.
Lưu ý: Khi ping một máy chủ bên ngoài không chỉ sử dụng đến Input mà còn cần đến Output để trả về các dữ liệu cần thiết. Hoặc nếu sử dụng iptables để khoá hệ thống máy chủ cần chú ý tới các giao thức hoạt động hai chiều liên quan tới I / O như SSH.
Trước khi đi vào và định cấu hình các quy tắc cụ thể, bạn sẽ muốn quyết định hành vi mặc định của ba chuỗi là gì. Nói cách khác, bạn muốn iptables làm gì nếu kết nối không khớp với bất kỳ quy tắc hiện có nào.
Để kiểm tra các chuỗi chính sách có đang được định cấu hình khớp với lưu lượng truy cập hay không hãy chạy lệnh:
{{EJS2}}
Sử dụng lệnh grep
để cung cấp một Output sạch hơn và các chuỗi này đều chấp nhận lưu lượng truy cập trên hệ thống. Nếu muốn hệ thống chấp nhận các kết nối mặc định hãy sử dụng các lệnh sau:
{{EJS3}}
Sau khi đã chấp nhận các quy tắc mặc định hãy sử dụng iptables để từ chối các địa chỉ IP hoặc một số cổng để nhận các lệnh mới.
Nếu chỉ cho phép các kết nối mong muốn hãy thay đổi chính sách mặc định của chuỗi để bỏ qua các thao tác không cần thiết. Tuy nhiên, hành động này chỉ dành cho các máy chủ có chứa các thông tin quan trọng và sử dụng một địa chỉ IP duy nhất:
{{EJS4}}
Sau khi đã định cấu hình xong các chính sách chuỗi mặc định trên hệ thống có thể thêm các quy tắc vào iptables. Điều này cho phép xác định nhiệm vụ của các kết nối từ hoặc đến một địa IP/cổng cụ thể. Dưới đây là ba phản hồi cơ bản và phổ biến nhất hiện nay:
Để phân biệt 3 quy tắc này hãy sử dụng PC để ping một máy chủ Linux thông qua iptables đã được cấu hình sẵn.
Accept:
Drop:
Reject:
Sau khi chuỗi chính sách đã được định cấu hình thành công. Tiếp theo có thể định cấu hình iptables nhằm kiểm soát các kết nối như cho phép, chặn địa chỉ, dải địa chỉ và cổng cụ thể.
Tùy vào nhu cầu và cách định cấu hình chuỗi chính sách mà các kết nối được đặt là DROP và có thể chuyển thành ACCEPT hoặc REJECT
Có thể sử dụng iptables -A
để xâu chuỗi các quy tắc lại với nhau và sử dụng một danh sách hiện tại để kiểm tra và tìm ra quy tắc phù hợp nhất. Để chèn một quy tắc bất kỳ hãy sử dụng lệnh iptables -I [chain] [number]
để chỉ định số mà nó phải có trong danh sách.
Để chặn tất cả các kết nối từ địa chỉ IP 10.10.10.10 hãy chạy lệnh:
{{EJS5}}
Để chặn tất cả các địa chỉ IP trong phạm vi mạng 10.10.10.0/24 hãy sử dụng netmask hoặc ký hiệu gạch chéo tiêu chuẩn để chỉ định dải địa chỉ IP.
{{EJS6}}
hoặc
{{EJS7}}
Để chặn kết nối SSH từ 10.10.10.10 hãy sử dụng lệnh:
{{EJS8}}
Có thể thay thế SSH bằng các giao thức hoặc cổng bất kỳ khác. Phần -p tcp
của mã cho iptables biết loại kết nối mà giao thức đang sử dụng. Chẳng hạn như nếu chặn một giao thức sử dụng UDP thay vì TCP thì -p udp
sẽ được sử dụng để thay thế cần thiết.
Để chặn kết nối SSH từ các địa chỉ IP sử dụng mã lệnh:
{{EJS9}}
Hầu hết các giao thức sẽ yêu cầu giao tiếp hai chiều, chẳng hạn như muốn cho phép kết nối SSH trên hệ thống sẽ yêu cầu tới các quy tắc của Input và Output. Với trường hợp SSH chỉ được cho phép kết nối vào hệ thống cụ thể thì chúng cung cấp khả năng cho phép giao tiếp hai chiều. Tuy nhiên, chúng chỉ có thể được thiết lập kết nối một chiều.
Chẳng hạn như với vị trí cho phép kết nối SSH từ 10.10.10.10 sẽ không cho phép kết nối với TO 10.10.10.10. Đồng thời, hệ thống sẽ gửi lại thông tin qua SSH đã được thiết lập trước đó hỗ trợ cho việc giao tiếp giữa hai máy chủ được khả thi hơn.
{{EJS10}}
Các thay đổi được thực hiện với các quy tắc iptables sẽ bị loại bỏ trong lần khởi động dịch vụ tiếp theo. Nếu muốn lưu lại các thay đổi này hãy thực hiện các lệnh với các bản phân phối như:
{{EJS11}}
Red Hat / CentOS:
{{EJS12}}
Hoặc:
{{EJS13}}
Liệt kê các quy tắc iptables hiện đang được cấu hình bằng lệnh:
{{EJS14}}
Bằng cách thêm – hostnames
, giao thức hay mạng để thực hiện các tác vụ cần thiết. Chẳng hạn như thêm tuỳ chọn -v
để cung cấp các thông tin về gói và byte hoặc thêm -n
để liệt kê các thông tin ở dạng số.
Để xóa tất cả các quy tắc hiện được định cấu hình, sử dụng lệnh:
{{EJS15}}
Trên đây là những thông tin về Iptables và các chuỗi chính sách phổ biến nhất của iptables mà chúng tôi muốn chia sẻ tới bạn.
Nếu bạn bất cứ câu hỏi nào liên quan đến iptables, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.
Mua Hosting WordPress tại BKHOST
Giảm giá cực sâu, chất lượng hàng đầu. Đăng ký ngay hôm nay: