1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu về firewall (iptable, csf fail2ban, shorewall)

10 388 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 291 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Có thể kết hợp Firewall và một bộ định tuyến trên cùng một hệ thống phần cứng và sử dụng hệ thống này để bảo vệ cho toàn bộ mạng.. – Hoạt động ở tầng cao hơn Firewall cứng tầng ứng dụng

Trang 1

Chương 14: Firewall

14.1 Định nghĩa

Tường lửa là một thiết bị phần cứng và/hoặc một phần mềm hoạt động trong một môi trường máy tính nối mạng để ngăn chặn một số liên lạc bị cấm bởi chính sách an ninh của

cá nhân hay tổ chức

Nhiệm vụ cơ bản của tường lửa là kiểm soát giao thông dữ liệu giữa hai vùng có độ tin cậy khác nhau Các vùng tin cậy (zone of trust) điển hình bao gồm: mạng Internet (vùng không đáng tin cậy) và mạng nội bộ (một vùng có độ tin cậy cao) Mục đích cuối cùng là cung cấp kết nối có kiểm soát giữa các vùng với độ tin cậy khác nhau thông qua việc áp dụng một chính sách an ninh và mô hình kết nối dựa trên nguyên tắc quyền tối thiểu (principle of least privilege)

14.2 Phân loại

Firewall được chia làm 2 loại, gồm Firewall cứng và Firewall mềm:

Firewall cứng: Là những firewall được tích hợp trên Router, Firewall phần cứng cung

cấp mức độ bảo vệ cao hơn so với Firewall phần mềm và dễ bảo trì hơn Firewall phần cứng cũng có một ưu điểm khác là không chiếm dụng tài nguyên hệ thống trên máy tính như Firewall phần mềm Firewall phần cứng là một lựa chọn rất tốt đối với các doanh nghiệp nhỏ, đặc biệt cho những công ty có chia sẻ kết nối Internet

Có thể kết hợp Firewall và một bộ định tuyến trên cùng một hệ thống phần cứng và

sử dụng hệ thống này để bảo vệ cho toàn bộ mạng Firewall phần cứng có thể là một lựa chọn đỡ tốn chi phí hơn so với Firewall phần mềm thường phải cài trên mọi máy tính cá nhân trong mạng Trong số các công ty cung cấp Firewall phần cứng có thể kể tới Linksys, NetGear, Cisco Tính năng Firewall phần cứng do các công ty này cung cấp thường được tích hợp sẵn trong các bộ định tuyến dùng cho mạng của các doanh nghiệp nhỏ và mạng gia đình

Đặc điểm của Firewall cứng:

Trang 2

– Không linh hoạt: Không thể thêm chức năng, thêm quy tắc

– Hoạt động ở tầng thấp: Tầng Network và tầng Transport

– Không thể kiểm tra được nột dung của gói tin

Firewall mềm: Là những Firewall được cài đặt trên Server

Đặc điểm của Firewall mềm:

– Tính linh hoạt cao: Có thể thêm, bớt các quy tắc, các chức năng

– Hoạt động ở tầng cao hơn Firewall cứng (tầng ứng dụng)

– Có thể kiểm tra được nội dung của gói tin (thông qua các từ khóa)

14.3 Sử dụng tường lửa

Một máy tính khi kết nối với internet mà không có firewall, các trao đổi ra vào cổng mạng đều tự do và không hề được lọc bởi một hệ thống nào, điều đó có nghĩa là những phần mềm độc hại, mã độc sẽ dễ dàng xâm nhập vào máy tính và thực thi các scripts gây hại cho máy tính như xóa các thư mục quan trọng, gây treo máy, xóa dữ liệu quan trọng …

14.4 IPtable

Iptables là Firewall được cấu hình và hoạt động trên nền console rất nhỏ và tiện dụng Iptables cung cấp các tính năng sau:

– Tích hợp tốt với kernel của Linux

– Có khả năng phân tích package hiệu quả

– Lọc package dựa vào MAC và một số cờ hiệu trong TCP Header

– Cung cấp chi tiết các tùy chọn để ghi nhận sự kiện hệ thống

– Cung cấp kỹ thuật NAT Có khả năng ngăn chặn một số cơ chế tấn công theo kiểu DoS

Iptable định nghĩa các bảng (table) chứa các chuỗi (chain), luật (rules) áp dụng cho gói tin Mỗi bảng tương ứng với một loại của quy trình gói tin Các gói tin được xử lý nối tiếp qua từng luật trong chuỗi Một luật trong một chuỗi có thể đổi hướng hay nhảy đến một chuỗi khác, và quá trình này tiếp diễn đến khi vòng lặp kết thúc Mọi gói tin được xử

lý đều phải thông qua ít nhất mỗi chuỗi luật

Trang 3

Cơ chế lọc gói tin của Iptable được xây dựng dựa trên 3 thành phần cơ bản đó là table, chain và target Tất cả các gói dữ liệu đều được kiểm tra bởi iptable bằng cách sử dụng các bảng tuần tự được xây dựng sẵn (queues) Có 3 loại bảng gồm:

• Magle: Chịu trách nhiệm thay đổi các bít dữ liệu dịch vụ trong TCP header như TOS ( type of service) TTL (time to live), MARK

• Filter: Chịu trách nhiệm lọc gói tin, nó gồm 3 quy tắc nhỏ (chain) để người dùng thiết lập các quy tắc lọc gói gồm:

• NAT: gồm có 2 loại

• Raw Table: Theo mặc định, iptables sẽ lưu lại trạng thái kết nối của các gói tin, tính năng này cho phép iptables xem các gói tin rời rạc là một kết nối, một session chung

để dễ dàng quản lý Tính năng theo dõi này được sử dụng ngay từ khi gói tin được gởi tới hệ thống trong bảng raw Với bảng raw, ta có thể bật/tắt tính năng theo dõi

Trang 4

này đối với một số gói tin nhất định, các gói tin được đánh dấu NOTRACK sẽ không được ghi lại trong bảng connection tracking nữa

• Security Table: Bảng security dùng để đánh dấu policy của SELinux lên các gói tin, các dấu này sẽ ảnh hưởng đến cách thức xử lý của SELinux hoặc của các máy khác trong hệ thống có áp dụng SELinux Bảng này có thể đánh dấu theo từng gói tin hoặc theo từng kết nối

Các chain trong table

Mỗi một table đều có một số chain của riêng mình, sau đây là bảng cho biết các chain thuộc mỗi table

– Forward chain: lọc gói khi đi đến các server khác

– Input chain: lọc gói khi đi vào server

– Output chain: lọc gói khi đi ra khỏi server

– Pre-routing chain: thay đổi địa chỉ đích của gói dữ liệu khi cần thiết

– Post-routing chain: thay đổi địa chỉ nguồn của gói dữ liệu khi cần thiết

Mặc định thì các chain này sẽ không chứa bất kỳ một rule nào, tuy nhiên mỗi chain đều có một policy mặc định nằm ở cuối chain, policy này có thể là ACCEPT hoặc DROP, chỉ khi gói tin đã đi qua hết tất cả các rule ở trên thì gói tin mới gặp phải policy này

Ngoài ra, thứ tự gói tin di chuyển giữa các chain sẽ có hơi khác tùy vào tình huống: – Gói tin được gởi đến máy chủ: PREROUTING => INPUT

Trang 5

– Gói tin được forward đến một máy chủ khác: PREROUTING => FORWARD

=> POSTROUTING

– Gói tin được máy chủ hiện tại gởi ra ngoài: OUTPUT => POSTROUTING

Các rule trong chain:

Các rule là tập điều kiện và hành động tương ứng để xử lý gói tin Mỗi chain sẽ chứa rất nhiều rule, gói tin được xử lý trong một chain sẽ được so với lần lượt từng rule trong chain này

Cơ chế kiểm tra gói tin dựa trên rule vô cùng linh hoạt và có thể dễ dàng mở rộng thêm nhờ các extension của IPtables có sẵn trên hệ thống Rule có thể dựa trên protocol, địa chỉ nguồn/đích, port nguồn/đích, card mạng, header gói tin, trạng thái kết nối… Dựa trên những điều kiện này có thể tạo ra một tập rule phức tạp để kiểm soát luồng dữ liệu ra vào hệ thống

Mỗi rule sẽ đươc gắn một hành động để xử lý gói tin, hành động này có thể là: – ACCEPT: gói tin sẽ được chuyển tiếp sang bảng kế tiếp

– DROP: gói tin/kết nối sẽ bị hủy, hệ thống sẽ không thực thi bất kỳ lệnh nào khác – REJECT: gói tin sẽ bị hủy, hệ thống sẽ gởi lại 1 gói tin báo lỗi ICMP – Destination port unreachable

– LOG: gói tin khớp với rule sẽ được ghi log lại

– REDIRECT: chuyển hướng gói tin sang một proxy khác

– MIRROR: hoán đổi địa chỉ IP nguồn, đích của gói tin trước khi gởi gói tin này đi – QUEUE: chuyển gói tin tới chương trình của người dùng qua một module của kernel

14.5 Csf (Config Server Firewall)

CSF (ConfigServer & Firewall) là 1 gói ứng dụng hoạt động trên Linux như 1 Firewall được phát hành miễn phí để tăng tính bảo mật cho server (VPS và Dedicated) CSF hoạt động dựa trên iptables và tiến trình ldf để quyét các file log để phát hiện các dấu hiệu tấn công bất thường

– CSF sẽ giúp server của bạn:

– Chống DoS các loại

Trang 6

– Chống Scan Port

– Đưa ra các lời khuyên về việc cấu hình server (VD: Nên nâng cấp MySQL lên bản mới hơn)

– Chống BruteForce Attack vào ftp server, web server, mail

server,directadmin,cPanel…

– Chống Syn Flood

– Chống Ping Flood

– Cho phép ngăn chặn truy cập từ 1 quốc gia nào đó bằng cách chỉ định Country Code chuẫn ISO

– Hỗ trợ IPv6 và IPv4

– Cho phép khóa IP tạm thời và vĩnh viễn ở tầng mạng (An toàn hơn ở tầng ứng dụng ) nên webserver ko phải mệt nhọc xử lý yêu cầu từ các IP bị cấm nữa

– Cho phép bạn chuyến hướng yêu cầu từ các IP bị khóa sang 1 file html để thông báo cho người dùng biết IP của họ bị khóa

14.6 Fail2ban

Fail2ban là 1 chương trình được viết bằng python có nhiệm vụ chặn các ip kết nối đến server dựa vào các dấu hiệu nghi ngờ mà ip đó để lại trong file log của hệ thống hoặc dịch vụ Ví dụ như có quá nhiều lần sử dụng mật khẩu không hợp lệ, truy cập không hợp

lệ hoặc các dấu hiệu bất thường khác mà có thể nhận biết được

Mỗi luật trong fail2ban (jail) bao gồm 3 thành phần:

– luật lọc (filter)

– luật chặn (action)

– file log cần lọc

Fail2ban đếm số lần 1 ip vi phạm luật lọc(filter) trong 1 khoảng thời gian xác định, nếu số lần vi phạm vượt quá 1 ngưỡng cho trước thì ip đó sẽ bị chặn kêt nối đến server bởi luật chặn (action) Các thông số khoảng thời gian quét, ngưỡng giới hạn, thời gian chặn ip hay vị trí file log sẽ được cấu hình riêng cho từng jail

Trang 7

Chương trình Fail2ban chạy nền dịch vụ và quét log được chỉ định bởi người dùng hoặc sử dụng mẫu cấu hình mặc định, sau đó fail2ban sẽ sử dụng các khuôn mẫu mà nó quy định nhằm lọc và trích xuất thông tin cần thiết Sau đó xem xét và quyết định chặn hay không 1 ip đáng ngờ nào đó

Filter : /etc/fail2ban/filter.d/*

Mỗi file filter chứa 1 đoạn mã regex có nhiệm vụ lọc ra các ip vị phạm luật trong file log hệ thống

failregex = ^%( prefix_line)s(?:error: PAM: )?[aA]uthentication (?:failure|error) for * from ( via \S+)?\s*$

ignoreregex =

Vi dụ đoạn regex trong file sshd.conf lọc ra các ip ssh đến server với xác thực không hợp lệ trong file log hệ thống: auth.log

Action: /etc/fail2ban/action.d/*

Mỗi luật acction được cấu hình bao gồm những lệnh iptables sau:

– actionstart : Gọi ra khi khởi chạy dịch vụ fail2ban có nhiệm vụ tạo mới 1 bảng trong iptable để dễ quản lý các ip đã chặn theo từng luật jail

– actionstop: Gọi ra khi kết thúc dịch vụ fail2ban nhằm xóa bỏ những luật iptables được thêm vào trong qua trình fail2ban chạy

– actioncheck: kiểm tra xem 1 ip đã bị chặn với luât jail hay chưa Tức là kiểm tra trong bảng chain của luật jạil đã có ip đó hay chưa

– actionban: lệnh iptables để chặn 1 ip

– actionunban: lệnh iptables xóa bỏ luật chặn 1 ip sau khi hết thời gian chặn

Jail: /etc/fail2ban/jail.conf

File jail.conf là file cấu hình tất cả các luật jail trong fail2ban Thông số cấu hình cho

1 jail bao gồm:

– Bantime: thời gian ip bị chặn nếu vi phạm luật jail

Trang 8

– Findtime: khoảng thời gian quét cho 1 luật jail

– Maxretry: ngưỡng vị phạm trong khoảng thời gian findtime

– Banaction: Luật action (tên file action.conf)

– Port: cổng chặn kết nối đến server

– Filter: tên file cấu hình luật filter

– Logpath: đường dẫn đến file log hệ thống,ứng dụng

– Action: lựa chọn 1 trong 3 chế độ: chỉ chặn ip, chặn ip và gửi mail thông báo, chăn ip, gửi mail thông báo và ghi ra log

14.7 Shorewall

Shorewall là công cụ cao cấp để cấu hình Netfilter Người dùng có thể mô tả tường

lửa/port bằng cách sử dụng các dòng trong file cấu hình Shorewal đọc file cấu hình đó cùng với sự kết hợp của iptable , iptable-restore, IP và tc, Shorewall cấu hình Netfilter và

hệ thống mạng phù hợp với yêu cầu của người dùng Shorewall có thể đuwọc sử dụng như một tường lửa chuyên dụng

File cấu hình của Shorewall nằm trong thư mục /etc/shorewall, thư mục chứa các file cấu hình đơn giản, người dùng chỉ cần cấu hình vài dòng trong nó Shorewall định dạng một network dưới dạng zones Các zones được khai báo và định dạng trong file /etc/shorewall/zones có định dạng như sau:

Cách đơn giản nhất để định nghĩa một host trong zone đó là liên kết zone đó với port

sử dụng file /etc/shorewall/interfaces

Trang 9

Tập quy tắc về lưu lượng truy cập cho phép và lưu lượng truy cập từ chối được thể hiện trong zone

• Chính sách mặc định cho các kết nối từ một zone này đến zone khác trong tệp / etc / shorewall / policy Các lựa chọn cơ bản cho chính sách là:

- ACCEPT - Chấp nhận kết nối

- DROP - Bỏ qua yêu cầu kết nối

- REJECT - Trả về một lỗi thích hợp cho yêu cầu kết nối

Người dùng có thể liệt kê luật ngoại lệ vào chính sách mặc định tại file

/etc/shorewall/rule

Đối với mỗi yêu cầu kết nôi tới mạng thông qua tường lửa, gói tin sẽ được kiểm tra yêu cầu kết nối có trùng với quy tắc trong tệp /etc/shorewall/rule Nếu không có quy tắc nào trong tệp trùng khớp với yêu cầu kết nối của gói tin thì chính sách đầu tiên trong file /etc/shorewall/policy khớp với yêu cầu kết nối được áp dụng Nếu có polily default được cấu hình trong file shorewall.conf thì policy sẽ được thi hành trước tin Các policy sẽ có những hành động như, drop, reject, hoặc accept gói tin

File /etc/shorewall/policy:

Ngày đăng: 18/11/2018, 22:44

TỪ KHÓA LIÊN QUAN

w