Yêu cầu và cấu hình proxy

Một phần của tài liệu tìm hiểu và cài đặt hệ thống firewall kết hợp với proxy để bảo vệ hệ thống mạng bên trong (Trang 114)

Squid sử dụng cơ chế chứng thực HTTP Digest để chứng thực người dùng trong mạng. Đây là kiểu chứng thực có mức độ bảo mật cao hơn kiểu chứng thực Basic.

# Mail server

$IPT -A remote-tcp-int -p tcp --dport 25 \ -d $INTMAIL -m state --state NEW -j ACCEPT # Web server access (public web)

$IPT -A remote-tcp-int -p tcp -m multiport \ --dport 80,443 -d $INTWEB -m state \ --state NEW -j ACCEPT

# Redirect internal web access to proxy

$IPT –t nat –A PREROUTING –i $LANIF –p tcp -m multiport \ -–dport 80,443 –j REDIRECT –to-port $SQUIDPORT

Trang 114

Phân quyền truy cập vào một số địa chỉ không an toàn đối với người dùng.

Chỉ cho phép người dùng trong mạng truy cập web vào khoảng thời gian làm hành chính trong ngày. Đồng thời trong khoảng thời gian này, người dùng chỉ được phép truy cập vào một số trang web và không được phép truy cập vào một số trang web khác.

Vì Squid là server proxy duy nhất trong mạng nên mọi truy cập đến những server proxy khác là không được phép. Vì thế mọi cấu hình giao tiếp với proxy khác sẽ không được đề cập trong mô hình thử nghiệm này.

Ngoài ra Squid có thể cho phép cấu hình thành một transparent proxy. Ta biết rằng chức năng chứng thực sẽ không thực hiện được khi cấu hình Squid thành một transparent proxy, vì thế ta cần phải chỉ có thể chọn một trong hai. Nếu lựa chọn cấu hình Squid là một transaprent proxy thì cần phải loại bỏ những chỉ thị cấu hình chứng thực và ngược lại. Squid sẽ đưa ra cảnh báo nếu kiểm tra file squid.conf và thấy nội dung không phù hợp.

Người dùng trong mạng không những bị giới hạn về một số trang web truy cập bằng ACL mà còn cấm truy cập ở những trang web được cấu hình bởi bộ chuyển hướng. Trong mô hình thử nghiệm này tôi đã sử dụng bộ chuyển hướng SquidGuard là một bộ chuyển hướng được sử dụng rất nhiều khi kết

http_port 3128 transparent

acl NotWorkSite dstdomain "etc/squid3/etc/notworksites" acl WorkingHours time D 08:00-17:30

http_access deny !WorkingHours NotWorkSite acl PornSites url_regex "/etc/squid3/pornlist" http_access deny PornSites

auth_param digest program /usr/lib/squid3/digest_pw_auth \ -c /etc/squid3/zdigestpass

auth_param digest children 5

auth_param digest realm Squid proxy-caching web server auth_param digest nonce_garbage_interval 5 minutes auth_param digest nonce_max_duration 30 minutes auth_param digest nonce_max_count 50

Trang 115

hợp với proxy Squid. Việc cấu hình cho SquidGuard sẽ không được đề cập ở đây. Như vậy trong tập tin cấu hình squid.conf cần thêm vào chỉ thị sau:

4.4. Chia sẽ tập tin và máy in

Để thử nghiệm chia sẽ file bằng Samba server giữa người dùng Window và Linux, tôi đã tổ chức lại mô hình như sau:

Hình 4.3 Mô hình chia sẽ tập tin và máy in

4.4.1. Phân quyền chia sẽ tập tin bằng Samba

Trong mô hình trên, ta giả sử có những yêu cầu đối với hệ thống mạng như sau. Mỗi người dùng trong mạng đều có một thư mục riêng trên server chia sẽ. Khi người dùng login vào thì người dùng đó sẽ có một thư mục tên private sẽ lưu những nội dung riêng tư của người dùng đó. Trong những thư mục này không được lưu trữ những tập tin thực thi (.exe). Ngoài ra, mỗi người dùng là thành viên của một trong ba nhóm: root, accounting, marketing. Trong đó, nhóm accounting và marketing có hai thư mục cho người dùng trong nhóm dùng chung. Người dùng trong nhóm root sẽ toàn quyền quản lý và truy cập

url_redirect_program /usr/bin/squidGuard \ –c /etc/squid/squidGuard.conf

Trang 116

vào tất cả các thư mục khác kể cả thư mục private của những người dùng khác. Cuối cùng, mọi người dùng trong mạng đều có thể truy cập một thư mục chung cho toàn mạng là public.

User Login-ID Password Directory Group

Root root 123 /data root

Alan Meany alan 123 /data/alan accounting

Peter Pan peter 123 /data/peter acounting

Dale Roland dale 123 /data/dale marketing

Russell Lewis russell 123 /data/russell marketing Bảng 4.1 Người dùng trong mạng thử nghiệm

Để đáp ứng yêu cầu trên ta thực hiện những công việc sau:

 Thêm mới 2 nhóm là acounting, và marketing bằng lệnh groupadd.

 Tạo một thư mục /data thuộc quyền sở hữu của người dùng root. Trong thư mục này, tạo những thư mục con trùng với tên người dùng (xem bảng 25).

 Tạo 2 thư mục con là accounting, marketing trong thư mục /data thuộc quyền sở hữu của nhóm tương ứng. Ngoài ra còn tạo thêm một thư mục chia sẽ chung là public cũng trong thư mục này và thuộc quyền sở hữu của nhóm nogroup, người dùng là nobody.

root# mkdir /data

root# mkdir /data/{public,accounting,marketing} root# for i in alan peter dale russll

>do

> mkdir –p /data/$i > chown $i /data/$i >done

root@zserver-desktop:~# groupadd accounting root@zserver-desktop:~# groupadd marketing

Trang 117

 Gán quyền truy xuất tập tin và thư mục cho người dùng và nhóm. Những người dùng không thuộc nhóm sẽ không thể truy xuất được. Riêng với thư mục public, nhằm cho phép mọi người đều sử dụng ta cũng cho phép mọi người dùng của nhóm khác cũng được phép truy xuất.

 Thực hiện cấu hình tập tin smb.conf như sau:

root# chmod –R ug+rxws,o-r+x /data root# chmod –R ugo+rxws /data/public

root# mkdir /data/{public,accounting,marketing}

root# chgrp accounting /data/accounting root# chgrp marketing /data/marketing

root# chgrp nogroup /data/public root# chowm nobody /data/public

Trang 118

4.4.2. Phân quyền chia sẽ máy in

Trong mô hình thử nghiệm, ngoài yêu cầu chia sẽ tập tin, người dùng còn chia sẽ máy in. Mọi máy in trong hệ thống mạng đều được quản lý bởi một chương trình. CUPS là một server quản lý được sử dụng rất phổ biến và được tích match sẵn trong hệ điều hành Ubuntu. Trình quản lý này có thể quản lý máy in được đặt tại một địa chỉ IP hay đang kết nối vào máy server bằng một giao tiếp nào đó. Ngoài ra, CUPS còn cho phép nhóm nhiều máy in cùng mục đích thành một class. Như vậy, những yêu cầu gởi đến một class sẽ được server chọn ra máy in còn rỗi trong class để thực hiện công việc.

[global]

workgroup = WORKGROUP

username map = /etc/samba/smbusers wins support = Yes

[accounting]

comment = Accounting Files path = /data/accounting

valid users = @accounting root force group = accounting

read only = No

[marketing]

comment = Marketing Files path = /data/marketing

valid users = @marketing root force group = marketing

read only = No

[master]

comment = Administrator directory path = /data

valid users = root read only = No

[public]

comment = Share for all users path = /data/public

guest ok = Yes read only = No

[private]

comment = Your private folder path = /data/%U

valid users = %U veto files = *.exe read only = No

Trang 119

Để quản lý máy in bằng CUPS ta có thể dùng trình quản lý bằng giao diện trong Ubuntu bằng cách vào System->Administration->Printing hoặc bằng dòng lệnh sudo system-config-printer. Ngoài ra ta có thể quản lý máy in bằng lệnh lpadmin. Chẳng hạn, để thêm mới một máy in tại địa chỉ 10.10.10.190 và một máy in kết nối trực tiếp với máy chủ thông qua cổng song song lp0 ta dùng lệnh sau:

Để thực hiện phân quyền chỉ có cho người dùng alan và peter được phép sử dụng máy in PRIQ như sau:

Người dùng Linux và Window đều sử dụng được những máy in được chia sẽ thông qua server CUPS. Đối với người dùng Window, để kết nối để một máy in tại một server CUPS ta sẽ thêm một máy in tại địa chỉ http://zserver- desktop:631/printers/PRIQ. Trong đó zserver-desktop là tên máy chủ chạy CUPS và PRIQ là tên máy in.

Ngoài ra CUPS còn có thể tích match vào Samba để chia sẽ cho người dùng trong mạng. Với cấu hình sau, người dùng trong nhóm accounting sẽ được phép sử dụng máy in Canon-PIXMA-iP8500.

4.4.3. Phân tích log của Squid bằng Webalizer

Sau một thời gian sử dụng Squid, quản trị viên có thể thống kê hoạt động của Squid như như thế nào. Có rất nhiều chương trình bổ trợ có thể thực hiện

[global]

printcap name = CUPS

show add printer wizard = No printing = CUPS

[Canon-PIXMA-iP8500]

comment = Canon Printer for accounting group printable = Yes

printer = Canon-PIXMA-iP8500 path = /var/tmp

valid users = @accounting

root# lpadmin -p PRIQ –u allow:alan, peter

root# lpadmin -p PRIQ -v socket://10.10.10.190:9100 –E root# lpadmin -p hplj -v parallel:/dev/lp0 -E

Trang 120

việc này. Webalizer là một trong số các chương trình đó. Webalizer hoạt động bằng cách dựa vào tập tin log, cụ thể là access.log để phân tích xem quá trình hoạt động của Squid như thế nào. Webalizer cung cấp một số chức năng sau:

 Căn cứ vào thông tin trong file log để tạo thành các thống kê dạng HTML.

 Thống kê tình hình sử dụng được thể hiện theo các chu kì hàng năm, tháng, ngày, giờ.

 Thống kê tình hình truy cập các site, URL, dung lượng truy xuất, …. Trong quá trình thực tập, tôi đã thống kê được một số kết quả như sau: 1. Thông tin tổng kết lưu lượng truy xuất dạng biểu đồ cột theo từng tháng

Hình 4.4 Thống kê dạng biểu đồ cột theo từng tháng

2. Thông tin tổng kết lưu lượng truy xuất dạng bảng theo từng tháng

Trang 121 3. Thống kê trong một tháng

Hình 4.6 Thống kê chi tiết trong tháng

4. Thống kê theo các ngày sử dụng trong tháng

Trang 122 5. Thống kê theo URL

Hình 4.8 Thống kê top url

Webalizer còn cung cấp một số thống kê khác, khóa luận này xin không đề cập ở đây. Ngoài Webalizer còn có nhiều chương trình khác cũng có thể phân tích file log của Squid.

Trang 123

Chƣơng 5

TỔNG KẾT

5.1. Kết quả đạt đƣợc

Theo yêu cầu đặt ra ban đầu là tìm hiểu Firewall iptables trên linux kết match với proxy squid nhằm bảo vệ tốt hơn cho mạng bên trong, đồng thời cũng tìm hiểu việc trao đôi thông tin giữa người dùng Window và Linux, cho đến thời điểm hiện tại tôi đã thu được một số kết quả sau:

 Tìm hiểu được các mô hình Firewall.

 Tìm hiểu Firewall iptables.

 Cấu trúc module của iptables.

 Các bảng và chain trong iptables.

 Quy trình các gói tin đi qua các chain của các bảng

 Cú pháp viết luật cho iptables.

 Tìm hiểu được và biết được proxy là gì. Mục đích cũng như ứng dụng của nó.

 Tìm hiểu về proxy Squid.

 Một số loại luật trong Squid.

 Chứng thực người dùng.

 Kết match với iptables để tạo thành một transparent proxy.

 Tìm hiểu hệ điều hành Ubuntu Linux.

 Tìm hiểu Samba server và cách chia sẽ file với người dùng Window, đồng thời phân quyền chia sẽ.

 Tìm hiểu CUPS và chia sẽ máy in. Kết match CUPS và Samba để chia sẽ máy in.

 Tìm hiểu cơ chế hoạt động mạng của phần mềm máy ảo VMware.

Trang 124

Mặc dù tôi đã cố gắng hết sức để hoàn thành đề tài nhưng với khoảng thời gian nghiên cứu không được lâu và sự thiếu hụt về mặc thiết bị, không có điều kiện tốt để làm thí nghiệm nên vẫn tồn tại những hạn chế sau:

 Chưa thực hiện được mô hình lab trên máy thực mà chỉ sử dụng mô hình ảo hóa bằng công cụ máy ảo VMware.

 Một số chức năng chứng thực trong Squid chưa được thử nghiệm. Nhất là những trình hỗ trợ chứng thực có liên quan đến miền Window.

 Chưa có điều kiện tổ chức mô hình mạng nhiều proxy Squid với cấu trúc phân cấp và thử nghiệm sự giao tiếp giữa các proxy này.

 Chưa có điều kiện cho phép người dùng Linux tham gia vào miền do hệ điều hành Window quản lý.

5.3. Hƣớng nghiên cứu

Mã nguồn mở là một hướng phát triển mà nhiều người quan tâm. Để mở rộng hơn nữa tính thực tiễn của đề tài, cần phải nghiên cứu thêm và thực hiện được mô hình mạng doanh nghiệp vừa và nhỏ. Cần phải đưa thêm các dịch vụ mạng cần thiết khác như email, quản lý người dùng, dịch vụ thư mục, và những dịch vụ khác cũng như yêu cầu bảo mật khác.

Hiện nay, những phần mềm nguồn mở và hệ điều hành mạng nguồn mở đã có thể đủ sức để thực hiện quản lý một mạng hoàn thiện. Người dùng có thể lựa chọn nhiều phát hành dựa trên nhân Linux để sử dụng. Bằng cách sử dụng phần mềm nguồn mở, các công ty, tổ chức có thể tiết kiệm được một khoảng đầu tư khá lớn cho vấn đề bản quyền phần mềm.

Cùng với sự phát hành phiên bản 4.0 của Samba server và hệ điều hành Ubuntu Linux 9.10, người dùng Linux đã có thể thực hiện xây dựng được máy quản lý miền cũng như sử dụng máy tính với giao diện thân thiện và thoải mái hơn. Người dùng hoàn toàn có thể dùng Linux thay thế cho Window. Những phần mềm nguồn mở hiện nay rất phong phú và cũng ngày càng dể sử dụng hơn.

Trang 125

TÀI LIỆU THAM KHẢO Sách tham khảo

[1]. Stain Reimer, Orin Thomas

MCSA/MCSE Self-Paced Training Kit (Exam 70-350): Implementing Microsoft Internet Security and Acceleration Server 2004, Microsoft Press, 2005

[2]. Christopher Negus

Linux® Bible 2008 Edition: Boot Up to Ubuntu®, Fedora®, KNOPPIX, Debian®, openSUSE®, and 11 Other Distributions, Wiley Publishing, Inc, 2008

[3]. Michael Jang

Ubuntu ® Server Administration, McGraw-Hill, 11/2008 [4]. William von Hagen

Ubuntu® Linux® Bible, Wiley Publishing, Inc, 2007 [5]. Sander van Vugt

Beginning Ubuntu Server Administration From Novice to Professional, Apress, 2007

[6]. Keir Thomas, Andy Channelle, Jaime Sicam

Beginning Ubuntu Linux: From Novice to Professional, Fourth Edition, Apress, 2009

[7]. Steve Suehring, Robert Ziegler

Linux Firewalls, Third Edition, Sams Publishing, September 14, 2005 [8]. Roderick W. Smith

Advanced Linux Networking, Addison Wesley, June 11, 2002 [9]. John H. Terpstra

Samba-3 by Example: Practical Exercises to Successful Deployment, Second Edition, Prentice Hall PTR, August 08, 2005

Trang 126

Designing and Implementing Linux Firewalls and QoS using netflter, iproute2, NAT, and L7-flter, Packt Publishing, 2006

[11].Duane Wessels

Web Caching, O'Reilly & Associates, Inc, 2001 [12].Duane Wessels

Squid: The Definitive Guide, O'Reilly, January 2004

Websites [1]. http://squid-cache.org [2]. http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_ Ch14_:_Linux_Firewalls_Using_iptables [3]. http://iptables-tutorial.frozentux.net/iptables-tutorial.html [4]. http://www.kmasecurity.net/xforce/showthread.php?t=4877 [5]. http://www.linuxlinks.com/article/20080429140249467/Security.html [6]. http://www.asianuxvietnam.vn/forum/viewtopic.php?f=23&p=47 [7]. http://www.cyberciti.biz/tips/linux-unix-squid-proxy-server- authentication.html [8]. http://patchlog.com/security/squid-digest-authentication/

Một phần của tài liệu tìm hiểu và cài đặt hệ thống firewall kết hợp với proxy để bảo vệ hệ thống mạng bên trong (Trang 114)

Tải bản đầy đủ (PDF)

(127 trang)