導航:首頁 > 知識產權 > squid版權修改

squid版權修改

發布時間:2021-06-21 07:33:09

1. ubuntu安裝了squid,怎麼本地測試

一、安裝squid3 命令:sudo apt-get install squid 二、修改配置文件 文件位置:/etc/squid3/squid.conf 將「http_access deny all」改成「http_access allow all」 三、重啟squid3 命令:sudo service squid3 restart 四、那內網不能上網的機器配置...

2. linux squid怎樣修改3128埠

1.你先不要管客戶端,首先在本機看telnet IP 8080,能否連接,如果可以,說明你的防火牆阻擋了8080埠,而3128埠沒有問題。如果不行,那麼說明你的配置更改有問題.可能與其他服務埠沖突,你可以再改其他埠。
http_port 192.168.0.1:3128
最好用作透明代理
httpd_accel_port 80
httpd_accel_wirh_proxy_on
httpd_accel_user_host_header_on

在linux防火牆,將對web的80埠訪問直接指向3128即可。

2。域名解析通常是在服務商提供的界面,將IP直接指向你的域名,過一段時間,同步以後,全球生效了。如果要在本地,直接將自己的DNS伺服器加入IP和域名的對應,所有客戶端DNS指向該DNS伺服器即可。

3. squid 怎樣配置https透明代理

squid是所有服務裡面最簡單的我覺得
以RHEL7為例,它分成了正向代理和反向代理,正向代理里又分「標准正向代理」,「ACL訪問控制」以及「透明正向代理」。下面是標准正向代理

16.3 正向代理

16.3.1 標准正向代理

Squid服務程序軟體包在正確安裝並啟動後默認就已經可以為用戶提供標准正向代理模式服務了,而不需要單獨再去修改配置文件或者其他操作,咱們可以立即在Windows7系統的客戶端主機上面打開任意一款瀏覽器,然後點擊Internet選項標簽,如圖16-4所示:
[root@linuxprobe ~]# systemctl restart squid
[root@linuxprobe ~]# systemctl enable squid
ln -s '/usr/lib/systemd/system/squid.service' '/etc/systemd/system/multi-user.target.wants/squid.service'
用戶要想使用Squid服務程序提供的標准正向代理模式服務就必須在瀏覽器中填寫伺服器的IP地址以及埠號信息,因此咱們還需要依次點擊連接標簽後點擊區域網設置選項,如圖16-5與圖16-6所示填寫伺服器信息後保存退出配置向導。

用戶只需要在瀏覽器中簡單的填寫配置信息就可以開始享用Squid服務程序提供的代理服務了,此時作為一個網卡為僅主機模式(Hostonly)的虛擬機,開始也奇跡般的能夠上網瀏覽了,這一切都是托代理伺服器轉發的功勞哦~

如此公開而沒有密碼驗證的代理服務終歸覺得不放心,萬一有其他人也來「蹭網」咱們的代理服務怎麼辦呢?Squid服務程序默認的會佔用3128、3401與4827等埠號,咱們可以將默認佔用的埠號修改成其他值,這樣應該能起到一定的保護作用吧~同學們都知道在Linux系統配置服務程序就是在修改該服務的配置文件,因此直接在/etc目錄中找到和squid服務程序同名目錄中的配置文件,把其中http_port參數後面原有3128修改為10000,這樣即是將Squid服務程序的代理服務埠修改成了新值,當然最後不要忘記再重啟下服務程序哦~:
[root@linuxprobe ~]# vim /etc/squid/squid.conf
………………省略部分輸出信息………………
45 #
46 # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
47 #
48
49 # Example rule allowing access from your local networks.
50 # Adapt localnet in the ACL section to list your (internal) IP networks
51 # from where browsing should be allowed
52 http_access allow localnet
53 http_access allow localhost
54
55 # And finally deny all other access to this proxy
56 http_access deny all
57
58 # Squid normally listens to port 3128
59 http_port 10000
60
http_port 10000
………………省略部分輸出信息………………
[root@linuxprobe ~]# systemctl restart squid
[root@linuxprobe ~]# systemctl enable squid
ln -s '/usr/lib/systemd/system/squid.service' '/etc/systemd/system/multi-user.target.wants/squid.service'

同學們有沒有突然覺得這一幕似曾相識?在前面的第十章10.5.3小節咱們學習過基於埠號來部署httpd服務程序的虛擬主機功能,當時在編輯完配置文件後重啟服務程序時被直接提示報錯了,雖然現在重啟服務程序並沒有直接報錯,但其實客戶並不能使用代理服務呢,SElinux安全子系統認為Squid服務程序使用3128埠號是理所應當的,默認策略規則中也是允許的,但現在卻在嘗試使用新的10000埠號,這是原本並不屬於Squid服務程序應該使用的系統資源,因此咱們需要手動把新的埠號添加到squid服務程序在SElinux域的允許列表中即可:
[root@linuxprobe ~]# semanage port -l | grep -w -i squid_port_t
squid_port_t tcp 3128, 3401, 4827
squid_port_t udp 3401, 4827
[root@linuxprobe ~]# semanage port -a -t squid_port_t -p tcp 10000
[root@linuxprobe ~]# semanage port -l | grep -w -i squid_port_t
squid_port_t tcp 10000, 3128, 3401, 4827
squid_port_t udp 3401, 4827

更多的圖文信息以及透明代理方式的實驗你可以看下網頁鏈接,講的非常詳細,相信能解決你的問題

4. ubuntu安裝了squid,怎麼使用squid

squid的使用是最簡單的。。。
它有正向代理和反向代理,正向代理又有標准正向代理、ACL訪問控制、透明正向代理。
舉個標准正向代理的配置使用如下:

16.3.1 標准正向代理

Squid服務程序軟體包在正確安裝並啟動後默認就已經可以為用戶提供標准正向代理模式服務了,而不需要單獨再去修改配置文件或者其他操作,咱們可以立即在Windows7系統的客戶端主機上面打開任意一款瀏覽器,然後點擊Internet選項標簽,如圖16-4所示:
[root@linuxprobe ~]# systemctl restart squid
[root@linuxprobe ~]# systemctl enable squid
ln -s '/usr/lib/systemd/system/squid.service' '/etc/systemd/system/multi-user.target.wants/squid.service'

用戶要想使用Squid服務程序提供的標准正向代理模式服務就必須在瀏覽器中填寫伺服器的IP地址以及埠號信息,因此咱們還需要依次點擊連接標簽後點擊區域網設置選項,如圖16-5與圖16-6所示填寫伺服器信息後保存退出配置向導。
用戶只需要在瀏覽器中簡單的填寫配置信息就可以開始享用Squid服務程序提供的代理服務了,此時作為一個網卡為僅主機模式(Hostonly)的虛擬機,開始也奇跡般的能夠上網瀏覽了,這一切都是托代理伺服器轉發的功勞哦
如此公開而沒有密碼驗證的代理服務終歸覺得不放心,萬一有其他人也來「蹭網」咱們的代理服務怎麼辦呢?Squid服務程序默認的會佔用3128、3401與4827等埠號,咱們可以將默認佔用的埠號修改成其他值,這樣應該能起到一定的保護作用吧~同學們都知道在Linux系統配置服務程序就是在修改該服務的配置文件,因此直接在/etc目錄中找到和squid服務程序同名目錄中的配置文件,把其中http_port參數後面原有3128修改為10000,這樣即是將Squid服務程序的代理服務埠修改成了新值,當然最後不要忘記再重啟下服務程序哦~:
[root@linuxprobe ~]# vim /etc/squid/squid.conf
………………省略部分輸出信息………………
45 #
46 # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
47 #
48
49 # Example rule allowing access from your local networks.
50 # Adapt localnet in the ACL section to list your (internal) IP networks
51 # from where browsing should be allowed
52 http_access allow localnet
53 http_access allow localhost
54
55 # And finally deny all other access to this proxy
56 http_access deny all
57
58 # Squid normally listens to port 3128
59 http_port 10000
60
http_port 10000
………………省略部分輸出信息………………
[root@linuxprobe ~]# systemctl restart squid
[root@linuxprobe ~]# systemctl enable squid
ln -s '/usr/lib/systemd/system/squid.service' '/etc/systemd/system/multi-user.target.wants/squid.service'

同學們有沒有突然覺得這一幕似曾相識?在前面的第十章10.5.3小節咱們學習過基於埠號來部署httpd服務程序的虛擬主機功能,當時在編輯完配置文件後重啟服務程序時被直接提示報錯了,雖然現在重啟服務程序並沒有直接報錯,但其實客戶並不能使用代理服務呢,SElinux安全子系統認為Squid服務程序使用3128埠號是理所應當的,默認策略規則中也是允許的,但現在卻在嘗試使用新的10000埠號,這是原本並不屬於Squid服務程序應該使用的系統資源,因此咱們需要手動把新的埠號添加到squid服務程序在SElinux域的允許列表中即可:
[root@linuxprobe ~]# semanage port -l | grep -w -i squid_port_t
squid_port_t tcp 3128, 3401, 4827
squid_port_t udp 3401, 4827
[root@linuxprobe ~]# semanage port -a -t squid_port_t -p tcp 10000
[root@linuxprobe ~]# semanage port -l | grep -w -i squid_port_t
squid_port_t tcp 10000, 3128, 3401, 4827
squid_port_t udp 3401, 4827

不過我建議你查看下這篇文檔http://www.linuxprobe.com/chapter-16.html#1631,很詳細的講了所有squid的使用配置。肯定有你要的

5. 如何禁止用ip直接訪問squid

1.
安裝squid
使用root用戶進行操作。
先使用rpm檢測是否已經安裝了sqlid,如>> rpm –q squid
如未安裝,可使用>> yum –install squid進行安裝

2.
配置squid
Squid安裝後提供幾個設置的地方:
/etc/squid/squid.conf:這個是主要的設置文件,所有squid所需要的設置都放在這里
/etc/squid/mime.conf:這是squid所支持的internet上的mime格式列表,一般來說不需修改
/usr/sbin/squid:squid 的主程序
/var/spool/squid:預設的squid放置緩存的地方
/usr/lib64/squid/:squid 提共的控制組件,如密碼認證等

對/etc/squid/squid.conf進行配置:
只開通80埠的代理功能,把數據緩存關掉,通過限制IP訪問的方式使用代理,其它均不需要,設置如下:
[plain] view plain
# 定義授權組
acl localhost src 172.21.63.141

# 定義埠
acl Safe_ports port 80 # http

# 拒絕所有非定義的埠
http_access deny !Safe_ports

# 允許授權組
http_access allow localhost

# 拒絕其它所有未定義的
http_access deny all

# Squid 埠
http_port 3128

# 緩存設置
cache_dir ufs /var/spool/squid 100 16 256 read-only
cache_mem 0 MB
coremp_dir /var/spool/squid

設置授權用戶:
做好配置後,我們需要設置授權用戶(即上面設置的密碼文件):
>> htpasswd -c /etc/squid/squid_user.txt atco
此命令使用htpasswd進行密碼設置生成用戶atco,首次生成文件需要使用-c參數,如果無此命令則需使用指令>> yum install httpd,安裝httpd。

3.
啟動squid
>> /etc/init.d/squid start

4.
使用代理
Squid代理的使用方式與普通的代理使用方式一致,其埠為3128(可改),密碼加密方式為base64位加密,示例如下:

[java] view plain在CODE上查看代碼片派生到我的代碼片
try {
URL url = new URL("http://www..com");
// 創建代理伺服器
InetSocketAddress addr = new InetSocketAddress("172.21.63.136",3128);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); // http 代理
URLConnection conn = url.openConnection(proxy);

InputStream in = conn.getInputStream();
// InputStream in = url.openStream();
String s = IOUtils.toString(in, "utf-8");
System.out.println(s);
} catch (Exception e) {
e.printStackTrace();
}

6. ubuntu怎麼配置簡單的squid

一、安裝squid3
命令:sudo apt-get install squid

二、修改配置文件
文件位置:/etc/squid3/squid.conf
將「http_access deny all」改成「http_access allow all」

三、重啟squid3
命令:sudo service squid3 restart

四、那內網不能上網的機器配置如下:
export http_proxy=http://192.168.199.235:3128/
可以把這句寫到你的啟動.bashrc中
命令:cd ~

7. squid for windows的配置,怎樣修改配置文件才不會抱錯.或者自己怎樣寫才正確

從網上下載的Squid for windows的二進制文件是壓縮到zip文件里的,首先來解壓縮這個文件,加壓後會生成一個Squid的文件夾,將此文件夾拷貝到C:\,至此Squid for Windows算是被「安裝」到你的Windows計算機了。 (備注:Squid for windows的默認安裝是在C:\squid下,當然,可以把Squid放到其他的路徑,但是需要大量的配置squid配置文件中的路徑信息,那樣會比較麻煩) Unix Like的操作系統下的大部分軟體都是基於命令行的,使用文本文件進行配置,這樣雖說對一些用慣了Windows下軟體的朋友們會有些復雜的感覺,但是這樣的軟體還是有好處的,畢竟其沒有Gui會有更高的性能,配置文件的編寫更具靈活性,下面我們來看一下具體怎麼配置squid for windows。首先,單擊[開始],選擇「運行」,輸入 cmd 打開Windows的「命令提示符」 窗口,在命令提示符窗口內輸入以下命令: C:\>cd c:\squid\etc C:\squid\etc> squid.conf.default squid.conf **將Squid的默認配置文件復制一份並起名為squid.conf C:\squid\etc> mime.conf.default mime.conf **將mime.conf.default復制一份並起名為mime.conf 下面,我們可以使用任意文本編輯器對squid.conf(配置文件)進行編輯,修改squid的配置語句,文件中的#後的文本表示注釋。 首先,我們找到TAG: acl段,這里是定義訪問Squid的IP地址及其對應的名稱 我們在此段acl Safe_ports port 777 #multiling http後增加一個新行,寫「acl 名稱 src IP地址」 示例:acl name1 src 192.168.100.0 #定義所有來自192.168.100.*的機器對應的名稱為name1 然後我們找到TAG: http_access段,這里是定義允許訪問squid的列表 我們在此段http_access deny CONNECT !SSL_ports後增加一個新行,寫「http_access allow/deny 名稱」,allow表示允許訪問,deny表示拒絕訪問。 示例:http_access allow name1 #定義所有標識為name1(192.168.100.*)的機器允許訪問squid代理伺服器 並且在後面再增加一行 http_access deny all。 任何一個網路應用都會對應一個或N個埠,squid的默認埠是3128,如果要更改,找到 #http_port 3128 這里,刪掉前面的#號,並且修改後面的埠號。 示例:http_port 7777 #將squid的服務埠改為7777 由於Squid是基於Cache(緩存)的代理伺服器,所以設置緩存的大小對優化伺服器的性能是有必要的,下面來看一下如何設置cache的大小。 找到#cache_mem 8 MB這句 刪掉前面的#號 將默認的8修改到需要的大小,這里的數值應視具體的機器可用內存而定,應在內存允許的情況下盡量地設置的大一些以提高代理伺服器性能,但不能讓代理伺服器的緩存大小影響本機器的性能。 示例:cache_mem 200 MB #設置squid使用200MB的內存當做代理伺服器緩存 最後我們還要有一個步驟,否則在啟動squid服務的時候會報錯,那就是配置TAG: visible_hostname段,找到此段,再後面添加visible_hostname 機器名(隨便起) 這么一行,就搞定了。 示例:visible_hostname supersrv #將hostname設置為supersrv 至此,可以保存squid.conf並且退出文本編輯器了,簡單的Squid for Windows的配置已經完成。 下面我們回到命令行,輸入以下命令: c:\>cd c:\squid\sbin C:\squid\sbin>squid -i (注冊Squid為Windows的服務,默認的服務名為SquidNT,可以使用「管理工具」中的「服務」來啟動/停用服務) C:\squid\sbin>squid -z (生成高速緩存的目錄) C:\squid\sbin>squid (啟動squid服務,另一種比較好的方法是在「管理工具」,「服務」中選擇SquidNT,然後選擇啟動服務)

8. 如何讓Squid代理完全匿名

squid是所有服務裡面最簡單的我覺得
以RHEL7為例,它分成了正向代理和反向代理,正向代理里又分「標准正向代理」,「ACL訪問控制」以及「透明正向代理」。下面是標准正向代理

16.3 正向代理

16.3.1 標准正向代理

Squid服務程序軟體包在正確安裝並啟動後默認就已經可以為用戶提供標准正向代理模式服務了,而不需要單獨再去修改配置文件或者其他操作,咱們可以立即在Windows7系統的客戶端主機上面打開任意一款瀏覽器,然後點擊Internet選項標簽,如圖16-4所示:
[root@linuxprobe ~]# systemctl restart squid
[root@linuxprobe ~]# systemctl enable squid
ln -s '/usr/lib/systemd/system/squid.service' '/etc/systemd/system/multi-user.target.wants/squid.service'
用戶要想使用Squid服務程序提供的標准正向代理模式服務就必須在瀏覽器中填寫伺服器的IP地址以及埠號信息,因此咱們還需要依次點擊連接標簽後點擊區域網設置選項,如圖16-5與圖16-6所示填寫伺服器信息後保存退出配置向導。

用戶只需要在瀏覽器中簡單的填寫配置信息就可以開始享用Squid服務程序提供的代理服務了,此時作為一個網卡為僅主機模式(Hostonly)的虛擬機,開始也奇跡般的能夠上網瀏覽了,這一切都是托代理伺服器轉發的功勞哦~

如此公開而沒有密碼驗證的代理服務終歸覺得不放心,萬一有其他人也來「蹭網」咱們的代理服務怎麼辦呢?Squid服務程序默認的會佔用3128、3401與4827等埠號,咱們可以將默認佔用的埠號修改成其他值,這樣應該能起到一定的保護作用吧~同學們都知道在Linux系統配置服務程序就是在修改該服務的配置文件,因此直接在/etc目錄中找到和squid服務程序同名目錄中的配置文件,把其中http_port參數後面原有3128修改為10000,這樣即是將Squid服務程序的代理服務埠修改成了新值,當然最後不要忘記再重啟下服務程序哦~:
[root@linuxprobe ~]# vim /etc/squid/squid.conf
………………省略部分輸出信息………………
45 #
46 # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
47 #
48
49 # Example rule allowing access from your local networks.
50 # Adapt localnet in the ACL section to list your (internal) IP networks
51 # from where browsing should be allowed
52 http_access allow localnet
53 http_access allow localhost
54
55 # And finally deny all other access to this proxy
56 http_access deny all
57
58 # Squid normally listens to port 3128
59 http_port 10000
60
http_port 10000
………………省略部分輸出信息………………
[root@linuxprobe ~]# systemctl restart squid
[root@linuxprobe ~]# systemctl enable squid
ln -s '/usr/lib/systemd/system/squid.service' '/etc/systemd/system/multi-user.target.wants/squid.service'

同學們有沒有突然覺得這一幕似曾相識?在前面的第十章10.5.3小節咱們學習過基於埠號來部署httpd服務程序的虛擬主機功能,當時在編輯完配置文件後重啟服務程序時被直接提示報錯了,雖然現在重啟服務程序並沒有直接報錯,但其實客戶並不能使用代理服務呢,SElinux安全子系統認為Squid服務程序使用3128埠號是理所應當的,默認策略規則中也是允許的,但現在卻在嘗試使用新的10000埠號,這是原本並不屬於Squid服務程序應該使用的系統資源,因此咱們需要手動把新的埠號添加到squid服務程序在SElinux域的允許列表中即可:
[root@linuxprobe ~]# semanage port -l | grep -w -i squid_port_t
squid_port_t tcp 3128, 3401, 4827
squid_port_t udp 3401, 4827
[root@linuxprobe ~]# semanage port -a -t squid_port_t -p tcp 10000
[root@linuxprobe ~]# semanage port -l | grep -w -i squid_port_t
squid_port_t tcp 10000, 3128, 3401, 4827
squid_port_t udp 3401, 4827

更多的圖文信息以及其他的代理方式你可以看下http://www.linuxprobe.com/chapter-16.html#161這篇,講的非常詳細,相信能解決你的問題

9. linux squid怎樣修改3128埠

安裝完成後,可根據以下配置Proxy:

1.基本配置

安裝完成後,接下來要對Squid的運行進行配置。所有項目都在squid.conf中完成。Squid自帶的squid.conf包括非常詳盡的說明,相當於一篇用戶手冊,對配置有任何疑問都可以參照解決。

在這個例子中,代理伺服器同時也是網關,內部網路介面eth0的IP地址為192.168.0.1,外部網路介面eth1的IP地址為202.103.x.x。下面是一個基本的代理所需要配置選項:

http_port 192.168.0.1:3128

默認埠是3128,當然也可以是任何其它埠,只要不與其它服務發生沖突即可。為了安全起見,在前面加上IP地址,Squid就不會監聽外部的網路介面。

下面的配置選項是伺服器管理者的電子郵件,當錯誤發生時,該地址會顯示在錯誤頁面上,便於用戶聯系:

cache_mgr [email protected]

以下這些參數告訴Squid緩存的文件系統、位置和緩存策略:

cache_dir ufs /var/squid
cache_mem 32MB
cache_swap_low 90
cache_swap_high 95

在這里,Squid會將/var/squid目錄作為保存緩存數據的目錄,每次處理的緩存大小是32兆位元組,當緩存空間使用達到95%時,新的內容將取代舊的而不直接添加到目錄中,直到空間又下降到90%才停止這一活動。如果不想Squid緩存任何文件,如某些存儲空間有限的專有系統,可以使用null文件系統(這樣不需要那些緩存策略):

cache_dir null /tmp

下面的幾個關於緩存的策略配置中,較主要的是第一行,即用戶的訪問記錄,可以通過分析它來了解所有用戶訪問的詳盡地址:

cache_access_log /var/squid/access.log
cache_log /var/squid/cache.log
cache_store_log /var/squid/store.log

下面這行配置是在較新版本中出現的參數,告訴Squid在錯誤頁面中顯示的伺服器名稱:

visible_hostname No1.proxy

以下配置告訴Squid如何處理用戶,對每個請求的IP地址作為單獨地址處理:

client_mask 255.255.255.255

如果是普通代理伺服器,以上的配置已經足夠。但是很多Squid都被用來做透明代理。所謂透明代理,就是客戶端不知道有代理伺服器的存在,當然也不需要進行任何與代理有關的設置,從而大大方便了系統管理員。相關的選項有以下幾個:

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_user_host_header on

在Linux上,可以用iptables/ipchains直接將對Web埠80的請求直接轉發到Squid埠3128,由Squid接手,而用戶瀏覽器仍然認為它訪問的是對方的80埠。例如以下這條命令:

iptables -t nat -A PREROUTING -s 192.168.0.200/32 -p tcp --dport 80 -j REDIRECT 3128

就是將192.168.0.200的所有針對80埠的訪問重定向到3128埠。

所有設置完成後,關鍵且重要的任務是訪問控制。Squid支持的管理方式很多,使用起來也非常簡單(這也是有人寧願使用不做任何緩存的Squid,也不願意單獨使用iptables的原因)。Squid可以通過IP地址、主機名、MAC地址、用戶/密碼認證等識別用戶,也可以通過域名、域後綴、文件類型、IP地址、埠、URL匹配等控制用戶的訪問,還可以使用時間區間對用戶進行管理,所以訪問控制是Squid配置中的重點。Squid用ACL(Access Control List,訪問控制列表)對訪問類型進行劃分,用http_access deny 或allow進行控制。根據需求首先定義兩組用戶advance和normal,還有代表所有未指明的用戶組all及不允許上網的baser,配置代碼如下:

acl advance 192.168.0.2-192.168.0.10/32
acl normal src 192.168.0.11-192.168.0.200/32
acl baser src 192.168.0.100/32
acl baddst dst
acl all src 0.0.0.0/0

http_access deny baser
http_access allow advance
http_access allow normal

可以看出,ACL的基本格式如下:

acl 列表名稱 控制方式 控制目標

比如acl all src 0.0.0.0/0,其名稱是all,控制方式是src源IP地址,控制目標是0.0.0.0/0的IP地址,即所有未定義的用戶。出於安全考慮,總是在最後禁止這個列表。

下面這個列表代表高級用戶,包括IP地址從192.168.0.2到192.168.0.10的所有計算機:

acl advance 192.168.0.2-192.168.0.20/32

下面這個baser列表只包含一台計算機,其IP地址是192.168.0.100:

acl baser 192.168.0.100/32

ACL寫完後,接下來要對它們分別進行管理,代碼如下:

http_access deny baser
http_access allow advance
http_access allow normal

上面幾行代碼告訴Squid不允許baser組訪問Internet,但advance、normal組允許(此時還沒有指定詳細的許可權)。由於Squid是按照順序讀取規則,會首先禁止baser,然後允許normal。如果將兩條規則順序顛倒,由於baser在normal范圍中,Squid先允許了所有的normal,那麼再禁止baser就不會起作用。

特別要注意的是,Squid將使用allow-deny-allow-deny……這樣的順序套用規則。例如,當一個用戶訪問代理伺服器時,Squid會順序測試Squid中定義的所有規則列表,當所有規則都不匹配時,Squid會使用與最後一條相反的規則。就像上面這個例子,假設有一個用戶的IP地址是192.168.0.201,他試圖通過這台代理伺服器訪問Internet,會發生什麼情況呢?我們會發現,他能夠正常訪問,因為Squid找遍所有訪問列表也沒有和192.168.0.201有關的定義,便開始應用規則,而最後一條是deny,那麼Squid默認的下一條處理規則是allow,所以192.168.0.201反而能夠訪問Internet了,這顯然不是我們希望的。所以在所有squid.conf中,最後一條規則永遠是http_access deny all,而all就是前面定義的「src 0.0.0.0」。

2.高級控制

前面說過,Squid的控制功能非常強大,只要理解Squid的行為方式,基本上就能夠滿足所有的控制要求。下面就一步一步來了解Squid是如何進行控制管理的。

通過IP地址來識別用戶很不可靠,比IP地址更好的是網卡的MAC物理地址。要在Squid中使用MAC地址識別,必須在編譯時加上「--enable-arp-acl」選項,然後可以通過以下的語句來識別用戶:

acl advance arp 00:01:02:1f:2c:3e 00:01:02:3c:1a:8b ...

它直接使用用戶的MAC地址,而MAC地址一般是不易修改的,即使有普通用戶將自己的IP地址改為高級用戶也無法通過,所以這種方式比IP地址可靠得多。

假如不想讓用戶訪問某個網站應該怎麼做呢?可以分為兩種情況:一種是不允許訪問某個站點的某個主機,比如ok的主機是ok.sina.com.cn,而其它的新浪資源卻是允許訪問的,那麼ACL可以這樣寫:

acl sinapage dstdomain ok.sina.com.cn
... ...
http_access deny ok
... ...

由此可以看到,除了ok,其它如、news.sina.com.cn都可以正常訪問。

另一種情況是整個網站都不許訪問,那麼只需要寫出這個網站共有的域名即可,配置如下:

acl qq dstdomain .tcccent.com.cn

注意tcccent前面的「.」,正是它指出以此域名結尾的所有主機都不可訪問,否則就只有tcccent.com.cn這一台主機不能訪問。

如果想禁止對某個IP地址的訪問,如202.118.2.182,可以用dst來控制,代碼如下:

acl badaddr dst 202.118.2.182

當然,這個dst也可以是域名,由Squid查詢DNS伺服器將其轉換為IP。

還有一種比較廣泛的控制是文件類型。如果不希望普通用戶通過代理伺服器下載MP3、AVI等文件,完全可以對他們進行限制,代碼如下:

acl mmxfile urlpath_regex \.mp3$ \.avi$ \.exe$
http_access deny mmxfile

看到regex,很多讀者應該心領神會,因為這條語句使用了標準的規則表達式(又叫正則表達式)。它將匹配所有以.mp3、.avi等結尾的URL請求,還可以用-i參數忽略大小寫,例如以下代碼:

acl mmxfile urlpath_regex -i \.mp3$

這樣,無論是.mp3還是.MP3都會被拒絕。當然,-i參數適用於任何可能需要區分大小寫的地方,如前面的域名控制。

如果想讓普通用戶只在上班時間可以上網,而且是每周的工作日,用Squid應當如何處理呢?看看下面的ACL定義:

acl worktime time MTWHF 8:30-12:00 14:00-18:00
http_access deny !worktime

首先定義允許上網的時間是每周工作日(星期一至星期五)的上午和下午的固定時段,然後用http_access 定義所有不在這個時間段內的請求都是不允許的。

或者為了保證高級用戶的帶寬,希望每個用戶的並發連接不能太多,以免影響他人,也可以通過Squid控制,代碼如下:

acl conncount maxconn 3
http_access deny conncount normal
http_access allow normal

這樣,普通用戶在某個固定時刻只能同時發起三個連接,從第四個開始,連接將被拒絕。

總之,Squid的ACL配置非常靈活、強大,更多的控制方式可以參考squid.conf.default。

3.總結

下面把整個squid.conf總結一下:

# 伺服器配置
http_port 192.168.0.1:3128
cache_mgr [email protected]
cache_dir null /tmp
cache_access_log /var/squid/access.log
cache_log /var/squid/cache.log
cache_store_log /var/squid/store.log
visible_hostname No1.proxy
client_mask 255.255.255.255
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_user_host_header on

# 用戶分類
acl advance arp 00:01:02:1f:2c:3e 00:01:02:3c:1a:8b ...
acl normal proxy_auth REQUIED
acl all src 0.0.0.0

# 行為分類
acl mmxfile urlpath_regex \.mp3$ \.avi$ \.exe$
acl conncount maxconn 3
acl worktime time MTWHF 8:30-12:00 14:00-18:00
acl sinapage dstdomain ok.sina.com.cn
acl qq dstdomain .tcccent.com.cn

# 處理
http_access allow advance
http_access deny conncount normal
http_access deny !worktime
http_access deny mmxfile
http_access deny sinapage
http_access deny qq
http_access allow normal

配置後的狀況是,advance組可以不受任何限制地訪問Internet,而normal組則只能在工作時間上網,而且不能下載多媒體文件,不能訪問某些特定的站點,而且發送請求不能超過3個。

通過本文的介紹,它可以了解Squid的基本能力。當然,它的能力遠不止此,可以建立強大的代理伺服器陣列,可以幫助本地的Web伺服器提高性能,可以提高本地網路的安全性等。要想發揮它的功效,還需要進一步控制。

參考資料:

如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!

vae la

10. 如何配置squid是他直接訪問正式web伺服器

代理伺服器的功能是代理網路用戶取得網路信息,它是網路信息的中轉站。隨著代理伺服器的廣泛使用,隨之而來的是一系列的安全問題。由於沒有對代理伺服器的訪問控制策略作全面細致的配置,導致用戶可以隨意地通過代理伺服器訪問許多色情、反動的非法站點,而這些行為往往又很難追蹤,給管理工作帶來極大的不便。
Squid是Linux下一個緩存Internet數據的代理伺服器軟體,其接收用戶的下載申請,並自動處理所下載的數據。也就是說,當一個用戶想要下載一個主頁時,可以向Squid發出一個申請,要Squid代替其進行下載,然後Squid連接所申請網站並請求該主頁,接著把該主頁傳給用戶同時保留一個備份。當別的用戶申請同樣的頁面時,Squid把保存的備份立即傳給用戶,使用戶覺得速度相當快。目前,Squid可以代理HTTP、FTP、GOPHER、SSL和WAIS協議,暫不能代理POP3、NNTP等協議。Squid可以工作在很多操作系統中,如AIX、Digital、Unix、FreeBSD、HP-UX、Irix、Linux、NetBSD、Nextstep、SCO、Solaris、OS/2等。
安裝和配置Squid Server
通常說來,安裝Squid有兩種方法:一是從Red Hat Linux 9中獲取該軟體的RPM包進行;二是安裝從Squid的官方站點http://www.squid-cache.org/ 下載該軟體的源碼進行編譯後安裝。目前網上最新的穩定版本為squid-2.5.STABLE10,下面以此版本為例對兩種安裝方法進行介紹。
Squid伺服器工作原理示意圖
1. RPM包的安裝
首先,查看是否已經安裝了squid:
#rpm -qa | grep squid
Red Hat Linux9自帶了Squid安裝軟體包,將第一張安裝光碟放入光碟機後掛裝光碟分區:
#mount /mnt/cdrom
然後,進入/mnt/cdrom/Red Hat/RPMS目錄:
#cd /mnt/cdrom/Red Hat/RPMS
最後,執行安裝:
#rpm -ivh squid-2.5.STABLE1-2.i386.rpm
當然,我們也可以在開始安裝系統的過程中安裝該軟體。
2. 源代碼包的安裝
從http://www.squid-cache.org/下載squid軟體的最新源代碼包squid-2.5.STABLE10.tar.gz,然後,按照如下步驟進行安裝。
首先,將該文件拷貝到/tmp目錄:
#cp squid-2.5.STABLE10.tar.gz /tmp
然後,解開該文件:
#tar xzvf squid-2.5.STABLE10.tar.gz
解開後,在/tmp生成一個新的目錄squid-2.5.STABLE10,為了方便使用mv命令,將該目錄重命名為squid:
#mv squid-2.5.STABLE10 squid
切換進入squid目錄:
#cd squid
接著,執行/configure,可以用./configure --prefix=/directory/you/want指定安裝目錄,系統默認安裝目錄為/tmp/squid:
#./configure
最後,分別執行make all、make install:
#make all
#make install
安裝結束後,Squid的可執行文件在安裝目錄的bin子目錄下,配置文件在etc子目錄下。

Squid軟體向用戶提供了許多與配置、應用程序和庫、日誌等相關的文檔進行配置和管理,Squid有一個主要的配置文件squid.conf。同時,在Red Hat環境下所有Squid的配置文件都位於/etc/squid子目錄下。在該目錄當中,系統同時提供了一個默認的配置文件,其名稱為squid.conf.default,然而,在實際的應用當中,該默認的配置文件存在某些問題,所以在使用Squid之前,必須首先對該配置文件的有關內容進行修改。
下面介紹squid.conf文件的結構以及一些常用的選項。squid.conf配置文件可以分為13個部分。雖然Squid的配置文件很龐大,該配置文件的規模達到了3000多行。然而,如果只是為一個中小型網路提供代理服務,並且只准備使用一台伺服器,那麼,配置問題將會變得相對簡單,只需要修改配置文件中的幾個選項即可滿足應用需求。這些幾個常用選項分別是:
1. http_port
該選項定義Squid監聽HTTPD客戶連接請求的埠。默認是3128,如果使用HTTPD加速模式,則為80。可以指定多個埠,但是所有指定的埠都必須在一條命令行上出現,程序才能正確地識別。
2. cache_mem(bytes)
該選項用於指定Squid可以使用的內存的理想值。這部分內存被用來存儲以下對象:In-Transit objects(傳入的對象)、Hot Objects(熱對象,即用戶常訪問的對象)、Negative-Cached objects(消極存儲的對象)。
3. cache_dir Directory-Name Mbytes Level1 Level2
該選項指定Squid用來存儲對象的交換空間的大小及其目錄結構。可以用多個cache_dir命令來定義多個交換空間,並且這些交換空間可以分布在不同的磁碟分區。「directory」指明了該交換空間的頂級目錄。如果想用整個磁碟作為交換空間,那麼可以將該目錄作為裝載點將整個磁碟掛裝上去。默認值為/var/spool/squid。Mbytes定義了可用的空間總量。
配置訪問控制
使用訪問控制特性,可以控制在訪問時根據特定的時間間隔進行緩存、訪問特定站點或一組站點等。Squid訪問控制有兩個要素:ACL元素和訪問列表。通過使用這些方法,系統管理員可以嚴格、清晰地定義代理伺服器的訪問控制策略。
1. ACL元素
該元素定義的語法如下:
acl aclname acltype string1…
acl aclname acltype 「file」…
當使用文件時,該文件的格式為每行包含一個條目。其中,acltype可以是任一個在ACL中定義的名稱;任何兩個ACL元素不能用相同的名字;每個ACL由列表值組成,當進行匹配檢測的時候,多個值由邏輯或運算連接,換句話說,任一ACL元素的值被匹配,則這個ACL元素即被匹配; 並不是所有的ACL元素都能使用訪問列表中的全部類型;不同的ACL元素寫在不同行中,Squid將這些元素組合在一個列表中。

2. http_access訪問控制列表
根據訪問控制列表允許或禁止某一類用戶訪問。如果某個訪問沒有相符合的項目,則默認為應用最後一條項目的「非」。比如最後一條為允許,則默認就是禁止。通常應該把最後的條目設為「deny all」或「allow all」來避免安全性隱患。使用該訪問控制列表需要注意如下問題:
● 這些規則按照它們的排列順序進行匹配檢測,一旦檢測到匹配的規則,匹配檢測就立即結束;
● 訪問列表可以由多條規則組成;
● 如果沒有任何規則與訪問請求匹配,默認動作將與列表中最後一條規則對應;
● 一個訪問條目中的所有元素將用邏輯與運算連接,如下所示:
http_access Action 聲明1 AND 聲明2 AND 聲明 OR
http_access Action 聲明3
● 多個http_access聲明間用或運算連接,但每個訪問條目的元素間用與運算連接;
● 列表中的規則總是遵循由上而下的順序。
3. 使用訪問控制
上面詳細講述了ACL元素以及http_access訪問控制列表的語法以及使用過程中需要注意的問題,下面給出使用這些訪問控制方法的實例。
如果,允許網段10.0.0.124/24以及192.168.10.15/24內的所有客戶機訪問代理伺服器,並且允許在文件/etc/squid/guest列出的客戶機訪問代理伺服器,除此之外的客戶機將拒絕訪問本地代理伺服器。那麼具體操作如下:
acl clients src 10.0.0.124/24 192.168.10.15/24
acl guests src 「/etc/squid/guest」
acl all src 0.0.0.0/0.0.0.0
http_access allow clients
http_access allow guests
http_access deny all
其中,文件「/etc/squid/guest」中的內容為:
172.168.10.3/24
210.113.24.8/16
10.0.1.24/25
……
如果,允許域名為job.net、gdfq.e.cn的兩個域訪問本地代理伺服器,其他的域都將拒絕訪問本地代理伺服器。那麼具體操作如下:
acl permitted_domain src job.net gdfq.e.cn
acl all src 0.0.0.0/0.0.0.0
http_access allow permitted_domain
http_access deny all
如果,使用正則表達式,拒絕客戶機通過代理伺服器訪問包含有諸如「sexy」等關鍵字的網站。那麼具體操作如下:
acl deny_url url_regex - sexy
http_access deny deny_url
如果,拒絕客戶機通過代理伺服器訪問文件中指定IP或者域名的網站,其中文件/etc/squid/deny_ip中存放有拒絕訪問的IP地址,文件/etc/squid/deny_dns中存放有拒絕訪問的域名。那麼具體操作如下:
acl deny_ip dst 「etc/squid/deny_ip」
acl deny_dns dst 「etc/squid/deny_dns」
http_access deny deny_ip
http_access deny deny_dns

閱讀全文

與squid版權修改相關的資料

熱點內容
武漢疫情投訴 瀏覽:149
知識產權合作開發協議doc 瀏覽:932
廣州加里知識產權代理有限公司 瀏覽:65
企業知識產權部門管理辦法 瀏覽:455
消費315投訴 瀏覽:981
馬鞍山鋼城醫院 瀏覽:793
馮超知識產權 瀏覽:384
介紹小發明英語作文 瀏覽:442
版權使用權協議 瀏覽:1000
2018年基本公共衛生服務考核表 瀏覽:884
馬鞍山候車亭 瀏覽:329
學校矛盾糾紛排查領導小組 瀏覽:709
張江管委會知識產權合作協議 瀏覽:635
關於開展公共衛生服務項目相關項目督導的函 瀏覽:941
閨蜜證書高清 瀏覽:11
轉讓房轉讓合同協議 瀏覽:329
矛盾糾紛排查調處工作協調交賬會議紀要 瀏覽:877
雲南基金從業資格證書查詢 瀏覽:313
新知識的搖籃創造力 瀏覽:187
股轉轉讓協議 瀏覽:676