Hướng dẫn giảng dạy
BÀI 17 Linux Security
Tóm tắt
Lý thuyết: 10 tiết - Thực hành: 10 tiết.
Mục tiêu Các mục chính Bài tập bắt buộc Bài tập làm thêm
I. Log File
II. Giới hạn user Bài tập 7.1 (Linux security)
III. Network security
Trang 224/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
Bài học giới thiệu các công cụ hỗ trợ cách thiết lập Firewall trên môi trường Linux như: iptables, tcp_wrappers. Sử dụng iptables để thực thi các kỹ thuật NAT, Routing.
Hướng dẫn giảng dạy
Log File
I. Một số file log chính trong hệ thống: - File /var/log/messages: Chứa các thông tin log của hệ thống được daemon syslogd ghi nhận.
- File /var/log/secure : chứa các thông tin về login fail, add user,…
- File /var/log/wtmp lưu các log về logon/reboot thành công vào hệ thống(ta có thể sử dụng last tool để xem thông tin này).
- File /var/run/utmp lưu các session hiện tại đang logon vào hệ thống(ta có thể dùng lệnh who, w để xem thông tin này).
II. Giới hạn user Thông qua tập tin /etc/nologin, ta có thể ngăn chặn việc login của user trong hệ thống trừ user root.
Thư mục /etc/security/ cho phép người quản trị có thể giới hạn user CPU time, kích thước tối đa của file, số kết nối vào hệ thống(file /etc/security/limits.conf).
/etc/security/access.conf để giới hạn việc login của user và nhóm từ 1 vị trí cụ thể nào đó.
Tham khảo về cú pháp của file /etc/security/limits.conf
Trong đó:
III. Network security Linux phân chia Network security thành hai loại chính:
- Loại 1: host based security
- Loại 2: port based security
III.1. Host Based security
Tcp_wrappers cung cấp host based access control list cho nhiều loại network services như: xinetd, sshd, portmap,…
Tcp_wrappers cung cấp hai file cấu hình /etc/hosts.allow và /etc/hosts.deny để ngăn chặn hoặc cho phép các host request đến các dịch vụ trong hệ thống. Cú pháp của 2 file này như sau:
Service : hosts [EXCEPT] hosts
Ví dụ:
Trang 225/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
ALL: ALL EXCEPT .domain.com
Hướng dẫn giảng dạy
III.2. Port based security
Linux kernel cho phép thực thi chức năng packet filtering trong hệ thống thông qua công cụ iptables, ipchains.
III.2.1 Giới thiệu về iptables
Iptables do Netfilter organization viết ra để tăng tính năng bảo mật trên hệ thống Linux. 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 tuỳ 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 từ chối dịch vụ(denial of service (DoS) attacks)
III.2.2 Cài đặt iptables
Iptables được cài đặt mặc định trong hệ thống Linux, package của Iptables là iptables-1.2.9- 1.0.i386.rpm, ta có thể dung lệnh rpm để cài đặt package này:
Rpm –ivh iptables-1.2.9-1.0.i386.rpm
Khởi động iptables và xác định trạng thái của iptables
Cho phép iptables start vào thời điểm hệ thống khởi động:
#chkconfig iptables on
start/stop/restart dịch vụ DNS:
#service iptables restart
Xác định trạng thái của iptables
#service iptables status
III.2.3 Cơ chế xử lý package trong iptables
Iptables sẽ kiểm tra tất cả các package khi nó đi qua iptables host, quá trình kiểm tra này được thực hiện một cách tuần tự từ entries đầu tiên đến entry cuối cùng.
Có ba loại bảng trong iptables:
- Mangle table: chịu trách nhiệm biến đổi quality of service bits trong TCP header. Thông thường loại table này được ứng dụng trong SOHO.
- Filter queue: chịu trách nhiệm thiết lập bộ lọc packet(packet filtering), có ba loại built-in chains được mô tả để thực hiện các chính sách về firewall (firewall policy rules).
+ Forward chain: Lọc packets đi qua firewall.
Input chain: Lọc packets đi vào firewall. +
+ Output chain: Lọc packets đi ra firewall.
Trang 226/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
- NAT queue: thực thi chức năng NAT, cung cấp hai loại build-in chains sau đây:
Hướng dẫn giảng dạy
+ Pre-routing chain: NATs packets khi destination address của packet cần thay đổi (NAT từ ngoài vào trong nội bộ).
+ Post-routing chain: NATs packets khi source address của packet cần thay đổi(NAT trừ trong ra ngoài)
năng của Chain(Chain hàng đợi Chức Function) Loại (Queue Chức năng của hàng đợi (Queue Type) Function) Thay đổi packet trong hàng đợi (Packet transformation chain in Queue)
Filter Packet filtering FORWARD
Cho phép packet chuyển qua firewall (Filters packets to servers accessible by another NIC on the firewall)
INPUT Filters packets cho những gói tin đi vào firewall (destined to the firewall)
OUTPUT firewall from Filters packets cho những gói tin đi ra the (originating firewall)
Nat Network Address Translation
PREROUTING Quá trình NAT sẽ thực hiện trước khi thực thi cơ chế routing. Điều này thuật lợi trong việc thay đổi địa chỉ đích(NAT trong ra ngoài) để địa chỉ đích cơ thể tương thích với bảng định tuyến của firewall, khi cấu hình ta có thể dùng từ khoá DNAT để mô tả cho kỹ thuật này.
Trang 227/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
POSTROUTING Quá trình NAT sẽ thực hiện sau quá trình định tuyến. quá trình này ngụ ý rằng ta không cần thay đổi địa chỉ đích của packet, ta chỉ cần thay đổi địa chỉ nguồn của packet. Kỹ thuật này được gọi là NAT one-to-one hoặc many-to-one. (được gọi là source NAT, hoặc SNAT)
Hướng dẫn giảng dạy
năng của Chain(Chain hàng đợi Chức Function) Loại (Queue Chức năng của hàng đợi (Queue Type) Function) Thay đổi packet trong hàng đợi (Packet transformation chain in Queue)
OUTPUT Trong loại này firewall thực hiện quá trình NAT
Mangle Thay đổi quality of service bits của TCP Header. Thay đổi TCP header
Trang 228/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
PREROUTING POSTROUTING OUTPUT INPUT FORWARD
Hướng dẫn giảng dạy
Sơ đồ lưu chuyển packet trong iptables
III.2.4 Targets và Jumps
Targets là cơ chế hoạt động trong iptables dùng để nhận diện và kiểm tra packet.
Jump là cơ chế chuyển một packet đến một target nào đó để xử lý thêm một số thao tác khác. Danh sách các target được xây dựng sẳn trong iptables:
Target Mô tả Những tuỳ chọn thông dụng
ACCEPT iptables chấp nhận chuyển data đến đích.
Trang 229/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
DROP Iptables block packet.
Hướng dẫn giảng dạy
Target Mô tả Những tuỳ chọn thông dụng
--log-prefix "string" LOG Thông tin của packet sẽ gởi vào syslog daemon
iptables tiếp tục xử lý luật tiếp theo trong bảng mô tả luật.
(iptables sẽ ghi nhận lại những messages bắt đầu bằng chuỗi “string”). Nếu luật cuối cùng không match thì sẽ drop packet.
REJECT --reject-with qualifier Ngăn chặn packet và gởi thông báo cho sender.
loại
(qualifier chỉ định reject message sẽ được gởi lại cho người gởi. các loại Qualifiers sau:
icmp-port-unreachable (default)
icmp-net-unreachable
icmp-host-unreachable
icmp-proto-unreachable
icmp-net-prohibited
icmp-host-prohibited
tcp-reset
echo-reply
--to-destination ipaddress DNAT destination the Thay đổi địa chỉ đích của packet IP (rewriting address of the packet)
(iptables sẽ thay thế địa chỉ đích bằng địa chỉ ipaddress)
SNAT Thay đổi địa chỉ nguồn của packet
[- --to-source ][:Trang 230/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
(Chỉ định địa chỉ nguồn và port nguồn sẽ được sử dụng)
Hướng dẫn giảng dạy
Target Mô tả Những tuỳ chọn thông dụng
[--to-ports
Được sử dụng để thực hiện kỹ thuật NAT ( giả mạo địa chỉ nguồn với địa chỉ của firewall's interface)
(Chỉ định dãy port nguồn ánh xạ với dãy port ban đầu)
III.2.5 Thực thi lệnh trong iptables
Bảng mô tả về iptables command:
Iptables command Mô tả(Description)
Switch
-t