banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Squid - Access Control  XML
  [Article]   Squid - Access Control 02/08/2007 03:44:30 (+0700) | #1 | 75833
[Avatar]
Vickizw
Member

[Minus]    0    [Plus]
Joined: 06/07/2006 19:55:29
Messages: 339
Location: ColTech
Offline
[Profile] [PM] [WWW]
Do trình độ có hạn nên bài viết còn sơ sài , mong mọi người góp ý.

Squid có khoảng 25 loại ACL khác nhau, một số trong chúng được sử dụng khá phổ biến.

File cấu hình chính của Squid là squid.conf ( /etc/squid/squid.conf ) , mọi thay đổi ở file này bạn cần restart lại squid để có hiệu lực.

1.Hạn chế truy cập web theo thời gian:

Code:
acl home_network src 192.168.1.0/24
acl allow_hours time M T W H F 9:00-17:00
acl RestrictedHost src 192.168.1.23

http_access deny RestrictedHost
http_access allow home_network allow_hours


Nếu bạn có các dòng trên trong file squid.conf thì các máy trong mạng nội bộ chỉ truy cập được vào mạng vào các ngày thứ 3 đến thứ 6 và trong thời gian 9h đến 17h.
Trừ máy 192.168.1.23, vì bị cấm tất cả.

M, T, W, H, F là viết tắt các ngày trong tuần ( chủ nhật : S, thứ bảy : A)
Có thể dùng D để thay bằng các ngày trong tuần ( M - F )

2.Hạn chế truy cập các website được ấn định trước :

Đầu tiên tạo 2 file ở trong thư mục /etc/squid là allowed-sites.squid và restricted-sites.squid để chứa tên các domain cho phép truy cập và cấm truy cập.

Code:
# File: /squid/allowed-sites.squid
www.hvaonline.net
fotech.org

# File: /etc/squid/restricted-sites.squid
www.sex.com
xxx.net


Nếu bạn muốn trong thời gian làm việc, cấm vào một số site và cho phép vào một số site nó thì :

Code:
acl home_network src 192.168.1.0/24
acl work_hours time M T W H F 9:00-17:00
acl GoodSites dstdomain "/etc/squid/allowed-sites.squid"
acl BadSites  dstdomain "/etc/squid/restricted-sites.squid"

http_access deny BadSites
http_access allow home_network work_hours GoodSites


Bạn có thể dùng url_regex để hạn chế vào các domain name được ấn định:
Code:
acl domainname url_regex -i ^http://www
http_access deny domainname


3.Hạn chế truy cập web theo địa chỉ ip :

Bạn có thể tạo một access control list để hạn chế truy cập web trên một mạng nào đó.

Code:
acl home_network src 192.168.1.0/255.255.255.0
http_access allow home_network

acl localhost dst 127.0.0.0/8
http_access allow localhost


4.Hạn chế nội dung các file download:

Tạo một file chứ nội dung các phần đuôi của các tập tin mà bạn muốn hạn chế là blocks.files.acl nằm trong /etc/squid
Code:
\.[Ee][Xx][Ee]$
\.[Aa][Vv][Ii]$
\.[Mm][Pp][Gg]$
\.[Mm][Pp][Ee][Gg]$
\.[Mm][Pp]3$


Thêm vào squid.conf dòng

Code:
acl blockfiles urlpath_regex “/etc/squid/blocks.files.acl”
http_access deny blockfiles


5.Hạn chế truy cập theo cổng :

vd
Code:
acl httpports port 80 8000-8010 8080
http_access allow httpports


Các bạn nên duy trì và allow một số cổng. Dưới đây là một số cổng được cho là an toàn ( mặc định tỏng file squid.conf )
Code:
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 480 # gss-http
acl safe_ports port 591 # filemaker
acl safe_ports port 777 # multiling http

http_access deny !safe_ports


6.Hạn chế truy cập thep giao thức :

Code:
acl FTP proto FTP
http_access deny FTP


7.Dùng NCSA kiểm định password:

đầu tiên tạo một file password,vd /etc/squid/squid_passwd
Code:
touch /etc/squid/squid_passwd
chmod o+r /etc/squid/squid_passwd

Dùng htpasswd để add user vào pass vào file squid_passwd đó
Code:
htpasswd /etc/squid/squid_passwd vicki
New password:
Re-type new password:
Adding password for user vicki


giờ thêm vào file squid.conf
Code:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users


Như vậy phải dùng user và pass được add vào file squid_passwd mới có thể truy cập vào internet được.
Cũng có thể kết hợp thời gian để bắt kiểm định pass vào mốc thời gian nhất định ( tham khảo đầu bài )


Nếu bạn muốn mọi deny đều có một thông báo cho người dùng biết thì :
Tạo một file deny.php với nội dung tùy bạn, đặt vào /var/www chẳng hạn.
Code:
acl blacklist url_regex yahoo\.com vietnamnet\.vn
http_access deny blacklist
deny_info domain/deny.php blacklist


Bài viết chỉ lấy VD ở mỗi phần, bạn có thể tùy cơ ứng biến.
Tham khảo thêm nội dung file squid.conf mặc định để hiểu thêm.

Vickizw
[Up] [Print Copy]
  [Question]   Squid - Access Control 02/08/2007 04:06:08 (+0700) | #2 | 75838
[Avatar]
qhoa83
Member

[Minus]    0    [Plus]
Joined: 08/01/2007 04:28:10
Messages: 149
Offline
[Profile] [PM] [Yahoo!]
Bài viết rất chi tiết và dễ hiểu . Thanks for share
[Up] [Print Copy]
  [Question]   Squid - Access Control 02/08/2007 08:42:07 (+0700) | #3 | 75930
[Avatar]
nora
Elite Member

[Minus]    0    [Plus]
Joined: 20/09/2006 00:08:43
Messages: 360
Location: UK
Offline
[Profile] [PM]
Bài của bạn rất khá, chẳng biết bạn dịch từ đâu, nhưng nên để nguyên comments nếu có.

ví dụ phần Htpasswd auth:

bạn nên để comment như sau:
Code:
#
# Add this to the auth_param section of squid.conf
#
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
 
#
# Add this to the bottom of the ACL section of squid.conf
#
acl ncsa_users proxy_auth REQUIRED
 
#
# Add this at the top of the http_access section of squid.conf
#
http_access allow ncsa_users


như vậy user sẽ biết cần phải đặt code ở đâu trong file squid.conf
không thể cứ copy code rùi phang thẳng vào squid.conf, như vậy sẽ ko hoạt động được.

[Up] [Print Copy]
  [Question]   Squid - Access Control 02/08/2007 08:51:26 (+0700) | #4 | 75933
[Avatar]
Vickizw
Member

[Minus]    0    [Plus]
Joined: 06/07/2006 19:55:29
Messages: 339
Location: ColTech
Offline
[Profile] [PM] [WWW]

nora wrote:
Bài của bạn rất khá, chẳng biết bạn dịch từ đâu, nhưng nên để nguyên comments nếu có.

ví dụ phần Htpasswd auth:

bạn nên để comment như sau:
Code:
#
# Add this to the auth_param section of squid.conf
#
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
 
#
# Add this to the bottom of the ACL section of squid.conf
#
acl ncsa_users proxy_auth REQUIRED
 
#
# Add this at the top of the http_access section of squid.conf
#
http_access allow ncsa_users


như vậy user sẽ biết cần phải đặt code ở đâu trong file squid.conf
không thể cứ copy code rùi phang thẳng vào squid.conf, như vậy sẽ ko hoạt động được.

 

Chào nora.
Cám ơn bạn đã quan tâm và góp ý.
Mình không dịch từ đâu cả, dựa vào những kiến thức đọc được và đã test qua mới viết bài này. Cho nên không viết comment được.
Nếu một người hiểu được bài viết này thì cũng có thể biết nên đặt code ở đâu và đặt như thế nào để nó có thể hoạt động.
[Up] [Print Copy]
  [Question]   Re:Squid - Access Control 02/08/2007 09:06:47 (+0700) | #5 | 75937
[Avatar]
nora
Elite Member

[Minus]    0    [Plus]
Joined: 20/09/2006 00:08:43
Messages: 360
Location: UK
Offline
[Profile] [PM]
sorry, vậy bạn nên chỉ ra những chỗ cần lưu ý khi đưa code vào squid.conf thì hơn, theo tôi nếu bạn đã test thì ít nhiều cũng gặp trục trặc smilie
[Up] [Print Copy]
  [Question]   Re:Squid - Access Control 02/08/2007 12:00:03 (+0700) | #6 | 76015
[Avatar]
Vickizw
Member

[Minus]    0    [Plus]
Joined: 06/07/2006 19:55:29
Messages: 339
Location: ColTech
Offline
[Profile] [PM] [WWW]

nora wrote:
sorry, vậy bạn nên chỉ ra những chỗ cần lưu ý khi đưa code vào squid.conf thì hơn, theo tôi nếu bạn đã test thì ít nhiều cũng gặp trục trặc smilie 

Ừ, để nói qua nhé.
Khi sửa file squid.conf .
VD thêm đoạn này vào file squid.conf
Code:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd


tìm trong file squid.conf với từ auth_param, và chèn đoạn code trên ngay dưới phần comment của nó.

Rất mong mọi sự góp ý của mọi người.
[Up] [Print Copy]
  [Question]   Squid - Access Control 04/08/2007 20:52:09 (+0700) | #7 | 76759
[Avatar]
nora
Elite Member

[Minus]    0    [Plus]
Joined: 20/09/2006 00:08:43
Messages: 360
Location: UK
Offline
[Profile] [PM]
vậy nếu file squid.conf ko có sẵn auth_param thì chèn vào đâu nhỉ? và tìm ở chỗ nào vậy?
[Up] [Print Copy]
  [Question]   Squid - Access Control 05/08/2007 00:35:18 (+0700) | #8 | 76832
[Avatar]
Vickizw
Member

[Minus]    0    [Plus]
Joined: 06/07/2006 19:55:29
Messages: 339
Location: ColTech
Offline
[Profile] [PM] [WWW]

nora wrote:
vậy nếu file squid.conf ko có sẵn auth_param thì chèn vào đâu nhỉ? và tìm ở chỗ nào vậy? 

File squid.conf mặc định đều có đầy đủ các comment và example của tất cả các access list.
Còn file squid.conf không phải là mặc định nữa ( được loại bỏ comment ) thi tùy cơ ứng biến thôi, lúc đó thì nội dung squid.conf cũng không dài lắm đâu.
[Up] [Print Copy]
  [Question]   Re: Squid - Access Control 01/01/2008 14:49:04 (+0700) | #9 | 107524
ngocxdy
Member

[Minus]    0    [Plus]
Joined: 29/12/2006 01:08:35
Messages: 133
Offline
[Profile] [PM]
Code:
acl abdc src	192.168.1.1/24
	acl work_hours time M T W H F 9:00-17:00
	acl GoodSites dstdomain "/etc/squid/allowed-sites.squid"
	acl BadSites dstdomain "/etc/squid/restricted-sites.squid"	
	
	http_access deny BadSites
	http_access allow  abdc work_hours GoodSites

Cho em hỏi trong file cấu hình trên em có đoạn acl work_hours time M T W H F 9:00-17:00 , em ấn định chỉ cho phép kết nối ra ngoài vào các ngày thứ 2,3,4,5,6 thì vẫn kết nối được những trang cho phép, còn khi kết nối đến những trang cấm thi không ra di ra ngoài được bởi những site có trong nội dung restricted-site.squid, => work_hours không có tác dụng.

Mong các anh chỉ giúm !!!
[Up] [Print Copy]
  [Article]   Squid - Access Control 15/05/2014 10:36:49 (+0700) | #10 | 280661
[Avatar]
startbkhn
Member

[Minus]    0    [Plus]
Joined: 25/09/2012 00:52:46
Messages: 57
Offline
[Profile] [PM]
Em đang cấu hình squid trên máy ảo.
Máy server em dùng CentOS, em để card mạng eth0 mặc định là NAT. Máy clent ubuntu để test, có eth0 là NAT. 2 máy này thông nhau rồi.
Em thêm 1 card mạng để thông trực tiếp tới máy thật, là bridge (replicate....). Sau đó vào chỉnh sửa ở thư mục /etc/sysconfig/network-scripts/
Thêm 1 file ifcfg-eth1 có nội dung:
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
Em reboot rồi và nó vẫn không nhận card mạng này. Liệu em có làm sai ở đâu không? Ai có kinh nghiệm chỉ em phần này với. Em cảm ơn ạ!
Lương tâm trong sạch là mục đích theo đuổi cuối cùng
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|