Trình bày được khái niệm và các đặc điểm của hệ thống
proxy.
Giải thích được các thông số cấu hình của squid.
Cấu hình được squid hoạt động ở chế độ cache và
transparent.
Nhận biết hệ thống firewall dùng iptables.
Giải thích các thông số của iptables.
Cấu trúc lệnh của iptables.
Triển khai firewall dùng iptables.
38 trang |
Chia sẻ: lylyngoc | Lượt xem: 1855 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài 7: Bảo mật hệ thống Linux, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
MH/MĐ: QUẢN TRỊ MẠNG LINUX
Bài 1: TRIỂN KHAI VÀ QUẢN TRỊ HỆ ĐIỀU HÀNH LINUX
Bài 2: QUẢN TRỊ TÀI KHOẢN NGƯỜI DÙNG VÀ LẬP TRÌNH
SHELL
Bài 3: TRIỂN KHAI DỊCH VỤ DNS VÀ DHCP
Bài 4: TRIỂN KHAI DỊCH VỤ SAMBA VÀ NFS
Bài 5: TRIỂN KHAI DỊCH VỤ WEB VÀ FTP
Bài 6: TRIỂN KHAI DỊCH VỤ MAIL
Bài 7: BẢO MẬT HỆ THỐNG LINUX
ÔN TẬP
BÁO CÁO ĐỒ ÁN
THI
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Bài 7: BẢO MẬT HỆ THỐNG LINUX
Bảo mật hệ thống mạng bằng Squid Proxy
Bảo mật cho hệ thống Linux bằng Iptables
Bảo mật hệ thống bằng squid proxy và iptables
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
MỤC TIÊU BÀI HỌC
Trình bày được khái niệm và các đặc điểm của hệ thống
proxy.
Giải thích được các thông số cấu hình của squid.
Cấu hình được squid hoạt động ở chế độ cache và
transparent.
Nhận biết hệ thống firewall dùng iptables.
Giải thích các thông số của iptables.
Cấu trúc lệnh của iptables.
Triển khai firewall dùng iptables.
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Tầm quan trọng của cache Proxy
Chia sẻ và cân bằng tải.
Sử dụng lại các object đã được lưu trữ trong cache.
Giảm tải truy xuất trên đường truyền.
Cài đặt, cấu hình squid proxy
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Yêu cầu hệ thống cho cache proxy Server
Tốc độ truy xuất đĩa nhanh
Yêu cầu dung lượng RAM lớn
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Giới thiệu Squid proxy
Squid là chương trình Internet proxy-caching có vai trò tiếp
nhận các yêu cầu từ client và truy vấn đến các Internet
Server thích hợp.
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Giao thức được hỗ trợ trên Squid
Squid hỗ trợ những giao thức sau:
HTTP
FTP
Secure Socket Layer
…
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Cơ chế cache của Squid
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Cài đặt Squid Proxy
Cài đặt squid từ package rpm
Cài đặt từ package squid-version.i386.rpm trong CDROM.
Cài đặt từ lệnh yum: #yum install squid
Cấu trúc thư mục mặc định của Squid
/usr/sbin: Lưu những thư viện của Squid .
/etc/squid: Lưu các tập tin cấu hình squid
(/etc/squid/squid.conf).
/var/log/squid: Lưu các tập tin log của squid
/var/spool/squid: lưu trữ squid cache.
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Cấu hình squid proxy
visible_hostname: Nếu không gán hostname khi đó việc khởi
động squid sẽ thất bại.
visible_hostname bigboy
http_port: cấu hình cổng mà Squid sẽ lắng nghe những yêu cầu
được gởi đến.
http_port 3128
cache_dir: chỉ định nơi cache data được lưu trữ
cache_dir ufs /var/spool/squid 100 16 256
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Cấu hình squid proxy(tt)
Tuỳ chọn Giải thích
cache_dir Định nghĩa những giá trị của thư mục cache được dùng
cho Squid.
ufs Unix file system (ufs) Squid cho biết rằng hệ thống đang
chạy trên Linux
/var/spool/squid Thư mục lưu trữ cache /var/spool/squid.
100 Tổng dung lượng của thư mục cache
16 Số thư mục con được tạo trong thư mục cache
256 Số thư mục con cấp 2 được tạo trong thư mục cache
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Access List
Định nghĩa access list dùng acl Tag:
acl aclname acltype string1 ..
acl aclname acltype "file" ...
Các acl phổ biến:
acl aclname src ip-address/netmask
acl aclname src addr1-addr2/netmask
acl aclname dst ip-address/netmask
acl aclname srcdomain .foo.com
acl aclname dstdomain .foo.com
acl aclname url_regex [-i] ^http://
acl aclname urlpath_regex [-i] \.gif$
acl aclname port 80 70 21
acl aclname port 0-1024
acl aclname proto HTTP FTP ...
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Access List(tt)
acl aclname method GET POST ...
acl aclname time [day] [h1:m1-h2:m2]
day:
S - Sunday
M - Monday
T - Tuesday
W - Wednesday
H - Thursday
F - Friday
A - Saturday
h1:m1 must be less than h2:m2
Ví dụ:
acl home_network src 192.168.1.0/24
acl business_hours time M T W H F 9:00-17:00
http_access allow/deny home_network bussiness_hours
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Access List(tt)
http_access: điều khiển việc truy cập đến Squid
Cú pháp: http_access allow|deny [!]aclname [aclname] ...
icp_port: dùng queries các cache khác
Mặc định: icp_port 8082
cache_peer: chỉ định cache khác theo sự phân cấp
Cú pháp: cache_peer hostname type http_port icp_port
cache_peer proxy2.ispace.edu.vn parent 8080 8082
cache_peer proxy.kcntt.ispace.edu.vn sibling 8080 8082
type :
‘parent’ : proxy cha ở cấp cao hơn
‘sibling’: proxy ngang hàng
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Cấu hình tối thiểu cho squid server
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Cấu hình tối thiểu cho squid server(tt)
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM
YOUR CLIENTS
For example:
http_access allow home_network business_hours
http_access allow localhost
http_access deny all
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Theo dõi truy xuất internet thông qua Squid
tail –f /var/log/squid/access_log
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Khởi động Squid
Để khởi động Squid ta dùng lệnh sau:
#/etc/init.d/squid start|stop|restart
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Bảo mật Linux
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Log file
Log file: File log để ghi nhận lại các sự kiện, một số file log chính
trong hệ thống
/var/log/messages
/var/log/secure
/var/log/wtmp
/var/log/utmp
Triển khai bảo mật cơ bản trên Linux
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security
Cho phép thực thi chức năng lọc gói tin (packet filtering)
thông qua iptables
Triển khai hệ thống firewall trên Linux dùng iptables
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
Giới thiệu iptables: Iptables do tổ chức Netfilter cung cấp để tăng
tính năng bảo mật trên hệ thống Linux.
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 kỹ thuật NAT.
…
Cài đặt iptables: iptables được cài đặt mặc định trong hệ thống
Linux.
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
Cơ chế và chức năng hoạt động của 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ự entry đầu
tiên đến entry cuối cùng.
Có 3 loại bảng trong iptables:
Mangle: 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 (Small Office/Home Office).
Filter: 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 những gói tin đi qua hệ thống (đi vào
một hệ thống khác).
Input chain: lọc những gói tin đi vào hệ thống.
Output chain : lọc những gói tin đi ra từ hệ thống.
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
NAT: thực thi chức năng NAT (Network Address
Translation), cung cấp hai loại built-in chains sau:
Pre-routing: sửa địa chỉ đích của gói tin trước khi nó
được routing bởi bảng routing của hệ thống (destination
NAT hay DNAT).
Post-routing: ngược lại với Pre-routing, nó sửa địa chỉ
nguồn của gói tin sau khi gói tin đã được routing bởi hệ
thống (SNAT).
Chú ý: Mỗi rule mà bạn tạo ra phải tương ứng với một chain, table
nào đấy. Nếu bạn không xác định tables nào thì iptables coi mặc
định là cho bảng FILTER.
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
Sơ đồ sử lý gói tin:
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
Targets và Jumps:
Target 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 thao tác khác.
Một số built-in Targets:
ACCEPT: iptables chấp nhận gói tin, đưa nó qua hệ thống mà
không tiếp tục kiểm tra nó nữa.
DROP: iptables loại bỏ gói tin, không tiếp tục xử lý nó nữa.
LOG: thông tin của gói tin sẽ được ghi lại bởi syslog hệ thống,
iptables tiếp tục xử lý gói tin bằng những rules tiếp theo.
REJECT: chức năng của nó cũng giống như DROP tuy nhiên nó
sẽ gửi một error message tới host đã gửi gói tin.
DNAT: dùng để sửa lại địa chỉ đích của gói tin.
SNAT: dùng để sửa lại địa chỉ nguồn của gói tin
MASQUERADE: cũng là một kiểu dùng để sửa địa chỉ nguồn của
gói tin.
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
Các tuỳ chọn của iptables:
-t : chỉ ra tên của bảng mà rule của bạn sẽ được ghi vào (mặc
định là FILTER ).
-j : nhẩy đến một kiểu xử lý (target) tương ứng như đã định
nghĩa ở trên nếu điều kiện so sánh thoả mãn.
- A : ghi nối tiếp rule vào đuôi một chain
- p : so sánh protocol gói tin.
- s : so sánh địa chỉ nguồn của gói tin.
- d : so sánh địa chỉ đích của gói tin
- i : so sánh tên card mạng mà gói tin đi vào hệ thống.
- o : so sánh tên card mạng mà gói tin từ hệ thống đi ra.
-p tcp --sport : xác định port nguồn của gói tin TCP.
-p tcp --dport : xác định port đích của gói tin TCP
-p udp --sport : xác định port nguồn của gói tin UDP
-p udp --dport : xác định port đích của gói tin UDP
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
--syn: xác định gói tin có phải là một yêu cầu tạo một kết nối
TCP mới không.
--icmp-type: xác định loại gói icmp (echo-reply hay echo-
request).
-m multiport --sport : xác định các giá trị port
nguồn
-m multiport --dport : xác định các giá trị port
đích.
-m multiport --port : xác định các giá trị port (
không phân biệt nguồn hay đích ).
-m --state : xác định trạng thái kết nối mà gói tin thể
hiện gồm:
ESTABLISHED: gói tin thuộc một kết nối đã được thiết lập.
NEW: gói tin thể hiện một yêu cầu kết nối.
RELATED : gói tin thể hiện một yêu cầu kết nối thứ hai (có liên
quan đến kết nối thứ nhất, thường xuất hiện ở những giao
thức FPT hay ICMP)
INVALID : thể hiện một gói tin không hợp lệ
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
Cấu trúc lệnh của iptables:
#iptables [-t ]
: Cho phép chọn table khác table mặc định là Filter.
: Xác định hành động sẽ thực hiện, như appending
hoặc deleting rule được chỉ định bởi .
: định nghĩa một cặp thông số xác định điều gì sẽ
xảy ra khi các packet thoả các rule.
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
Tạo rules firewall
# iptables --append CHAIN selection-criteria --jump
{DROP|ACCEPT|REJECT}
# iptables -A CHAIN selection-criteria -j
{DROP|ACCEPT|REJECT}
Ví dụ:
# iptables -A INPUT -p tcp --dport 25 -j ACCEPT
# iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
Sử dụng chain tự định nghĩa
Xoá những rule mặc định:
# iptables -F INPUT
# iptables -F OUTPUT
# iptables -F FORWARD
Set default policy (-P or --policy)
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP
Tạo firewall rule
# iptables --append CHAIN selection-criteria --jump
{DROP|ACCEPT|REJECT}
# iptables -A CHAIN selection-criteria -j {DROP|ACCEPT|REJECT}
Mở và đóng một port
# iptables -A INPUT -p tcp --dport 25 -j ACCEPT
# iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
Dùng địa chỉ IP nguồn và đích
# iptables -A INPUT -s 172.24.0.0/16 -j DROP
# iptables -A OUTPUT -d 172.24.0.0/16 -j DROP
Lọc bởi interface
# iptables -A INPUT -s 192.168.9.0/24 -i eth0 -j DROP
# iptables -A FORWARD -s 192.168.9.0/24 -i eth0 -j DROP
# iptables -A FORWARD -s !192.168.9.0/24 -i eth1 -j DROP
# iptables -A OUTPUT -s !192.168.9.0/24 -i eth1 -j DROP
Trạng thái thực hiện
# iptables -A INPUT -m state -p tcp --dport 80 \
--state NEW,ESTABLISHED,RELATED -j ACCEPT
# iptables -A OUTPUT -m state -p tcp --sport 80 \
--state ESTABLISHED,RELATED -j ACCEPT
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
Để lưu giữ cấu hình iptables vào trong file
/etc/sysconfig/iptables ta dùng lệnh sau:
#service iptables save
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
Load kernel module cần cho iptables
Module ip_conntrack
Module ip_conntrack_ftp
Module iptable_nat
Module ip_nat_ftp
Có thể mô tả trong file /etc/rc.local
Modprobe ip_conntrack
Modprobe ip_conntrack_ftp
Modprobe iptable_nat
Modprobe ip_nat_ftp
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
Bảo vệ HDH:
Thay đổi trong file /etc/sysctl.conf
Net/ipv4/conf/all/rp_filter = 1
Net/ipv4/conf/all/log_martians = 1
Net/ipv4/conf/all/send_redirects = 0
Net/ipv4/conf/all/accept_source_route = 0
Net/ipv4/conf/all/accept_redirects = 0
Net/ipv4/tcp_syncookies = 1
Net/ipv4/icmp_echo_ignore_broadcasts = 1
Net/ipv4/ip_forward = 1
Sau đó dùng “sysctl -p” để cập nhật lại
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Port Based Security(tt)
Khắc phục sự cố trên iptables:
Firewall logs được ghi nhận vào file /var/log/message
Để cho phép iptables ghi log vào file /var/log/message ta định
nghĩa chain cho iptables như sau:
iptables -A OUTPUT -j LOG
iptables -A INPUT -j LOG
iptables -A FORWARD -j LOG
iptables -A OUTPUT -j DROP
iptables -A INPUT -j DROP
iptables -A FORWARD -j DROP
Chú ý: Khi ta thay đổi cấu hình trên iptables thì ta dùng lệnh
#service iptables save để save lại thay đổi và khởi động lại iptables
#service iptables restart
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
Câu hỏi ôn tập
Trình bày các đặc điểm chính của squid proxy.
Giải thích các thông số cấu hình squid proxy.
Phân biệt cơ chế cache và transparent
Triển khai và cấu hình dịch vụ proxy.
Giải thích các thông số cấu hình iptables.
Các bước triển khai và cấu hình iptables.
Viết các rule cho các dịch vụ thông dụng: www,ftp,smtp,…
TRƯỜNG TRUNG CẤP VIỆT KHOA Website:
HỎI - ĐÁP