Linux1 代理服务器 squid主配置文件squid.conf
Linux1 代理服务器squid主配置文件squid.conf
Squid.conf是最核心的配置文件,位于/etc/squid/目录下。
squid的主配置文件的内容远比其他服务的主配置文件多得多,大概有4300多行的内容,不过不用担心,因为绝大部分的内容是注释信息,而且注释内容相当丰富,完全可以通过注释来了解squid的功能、语法以及使用。
下面是squid.conf文件的结构以及一些常用的选项,其可以分为十三个部分,这十三个部分分别是:
●NETWORK OPTIONS 设置与网络相关的选项。
如设置监听那些IP地址
的哪些端口。
●OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
作用是设置与邻居选择算法有关的选项。
●OPTIONS WHICH AFFECT THE CACHE SIZE 作用是设置与cache大小
有关的选项。
如设置内存缓冲区的大小。
●LOGFILE PATHNAMES AND CACHE DIRECTORIES 作用是设置日志
文件的路径及cache的目录。
●OPTIONS FOR EXTERNAL SUPPORT PROGRAMS 作用是设置与外部
支持程序有关的选项。
●OPTIONS FOR TUNING THE CACHE 作用是调整cache选项。
●TIMEOUTS 作用是设置与超时有关的选项。
●ACCESS CONTROLS 作用是设置与访问控制有关的选项。
●ADMINISTRA TIVE PARAMETERS 作用是设置与管理参数有关的选项。
●OPTIONS FOR THE CACHE REGISTRATION SERVICE 作用是设置与
cache注册服务有关的选项。
●HTTPD-ACCELERATOR OPTIONS 作用是设置与HTTPD加速有关的选
项。
●MISCELLANEOUS (相关杂项)
●DELAY POOL PARAMETERS 作用是设置延时池参数。
虽然squid的配置文件很庞大,但是如果只是为一个中小型网络提供代理服务,并且只准备使用一台服务器,那么,只需要修改配置文件中的几个选项。
这几个常用选项如下。
1.设置监听的端口号
为squid设置端口号的意思就是告诉squid在那个端口上监听http请求。
用户可以使用默认设置,在默认情况下监听的端口号为3218,如果使用HTTPD加速模式则为80。
用户可以指定多个端口(所有指定的端口都必须在一行上)。
使用http_port 字段进行设置,如图11-35所示。
图11-35 默认监听3218端口
另外http_port字段还可以指定监听来自哪些IP的HTTP请求,这种功能经常被使用,当squid代理服务器有两块网卡,一块用于和内网通信,另一块用于和外网通信的时候,用户希望squid只监听来自内网的客户请求,而不监听来自外网的客户请求,在这中情况下,就需要使用IP地址和端口号写在一起的方式,例如,让squid在8080端只口监听内网接口上的请求,可以这样设置http_port x.x.x.x(内网接口IP地址):8080。
2.内存缓冲区设置
内存缓冲设置是指需要使用多少缓存来作为高速缓存。
这个数值相对来说不好设置,因为每台服务器内存的大小和服务器群体都不相同,但有一点是肯定的,缓存设置的越大,对客户端的访问速度就越有利。
如果设置的太大就会导致服务器的整体性能的下降,设置太小,那么客户端的访问的速度得不到实质性的提高。
在这里,根据服务器提供的功能的多少而定,如果服务器只是作代理服务器,平时只是共享上网用的话,可以把缓存设置为实际内存的一半甚至更多(视内存总容量而定)。
如果服务器本身还提供其他而且较多的服务,那么缓存的设置最好不要超过实际内存的三分之一,用户可以使用cache_mem字段来设置内存缓冲区的大小。
例如:Cache_mem 512MB
该选项只定义了squid所使用的内存的一个方面,squid还在其它方面使用内存。
所以squid实际使用的内存可能超过该值。
缺省值为8MB(Cache_mem 8M)。
3.squid磁盘缓存
Cache_dir字段是用来告诉squid以何种方式存储cache文件到磁盘的什么位置。
它是主配置文件Squid.conf中最重要的字段之一。
该字段是否合理直接影响Squid 代理服务器的性能。
Cache_dir字段后面跟的参数较多,其格式如下:Cache_dir 存储机制目录目录大小L1 L2
●存储机制
squid支持许多不同的存储机制。
例如ufs、aufs,还有diskd等,默认情况使用的是ufs。
●目录
这里指的是在硬盘上设置的缓存目录,squid会将cache(缓存)文件存放在这个目录下。
当客户端访问网站的时候,squid会从自己的缓存目录中查找客户端请求的文件。
可以选择任意分区作为硬盘缓存目录,最好选择较大的分区,例如/usr或者/var等.不过更建议使用单独的分区,可以选择闲置的硬盘,将其分区后挂载到/cache目录下,然后再配置文件中添加这样一行(Cache_dir ufs /cache 1000 256 16)。
●目录大小该值用来设置缓存目录的容量。
●L1 该值用来设置一级目录的数量。
默认值是16。
●L2 该值用来设置二级目录的数量。
默认值是256。
定义这些子目录可以加速查找缓存文件的速度,如图11-36所示。
图11-36 一级子目录
这种金字塔形的结构经常容易见到的,合理地建立这些一级和二级子目录的数量对于检索文件的速度有着一定的提高。
这和平时在使用电脑为文件分类很类似,例如有专门存放工作资料的文件夹,有专门存放电影的文件夹,也有存放游戏的文件夹等等。
不难想象如果所有文件放在一起,查找某个文件的时间会大大增加。
squid 则采用两级子目录的架构来提高检索缓存文件的速度。
L1设置为16,表示设置16个一级子目录,L2设置为256,表示在每一个一级子目录下都有256个二级子目录,L2设置为256表示在每一个一级子目录下都有256个二级子目录,如图11-37所示。
图11-37 二级子目录
4.访问控制列表
访问控制列表格式:acl aclname acltype “文件”
acltype部分类型如表11-2所示。
ACL类型作用
表11-2 ACL常用的类型及作用
各个acl示例如下所示:
●src类型示例
acl aclname src ip-address/netmask(客户ip地址)
acl aclname src addr1-addr2/netmask (地址范围)
●dst类型示例acl aclname dst ip-address/netmask (即客户请求的服务器的
ip地址)
●srcdomain类型示例
acl aclname srcdomain squid将根据客户IP反向查询DNS。
●dstdomain类型示例acl aclname dstdomain 由客户请求的URL决
定。
提示如果用户使用服务器IP而非完整的域名时,squid将进行反向的DNS解析来确定其完整域名,如果失败就记录为none。
●time语法如下所示:
acl aclname time [day-abbrevs] [h1:m1-h2;m2][hh:mm-hh:mm]
其中day-abbrevs用来指定星期(S-Sunday、M-Monday、T-Tuesday、W-Wednes day、H-Thursday、F-Friday、A-Saturday)
h1:m1 必须小于h2:m2,表达示为[hh:mm-hh:mm]。
●port类型示例
acl aclname port 80 70 21(指定多个端口)
acl aclname port 0-1024(指定一个端口范围)
●proto类型示例acl aclname proto HTTP FTP
●method类型示例acl aclname method GET POST
5.http_access
根据访问控制列表允许或禁止某一类用户访问,如果某个访问没有相符合的项目,则缺省为应用最后一条项目的“非”。
比如最后一条为允许,则缺省就是禁止。
所以,通常应该把最后的条目设为deny all或allow all来避免安全性隐患。
第3单元 Squid代理服务的配置与应用
Squid代理服务的安装 Red Hat Enterprise Linux 6安装程序默认没 有安装Squid服务,可以使用下面的命令。
yum install “squid*” rpm -ivh squid-xxxx.rpm
配置文件:/etc/squid/squid.conf 启动脚本:squid 代理Web服务的默认端口为:3128
代理服务器的原理 代理服务器将Internet上主机的回应信息传送给 客户端A。 客户端B向代理服务器提出相同的请求。代理 服务器也首先与访问控制列表中的访问规则相 对照。 如果满足规则,则将缓存中的信息传送给客户 端B。
Squid简介 Squid是Linux和UNIX平台下最为流行的高性能 免费应用层代理服务器,它具有权限管理灵活 、性能高和效率快等特点。 Squid是一个由众多在互联网上的开发人员共同 努力而完成的一款高性能的代理缓冲服务器。 Squid的另一个优越性在于它使用访问控制列表 (ACL)和访问权限列表(ARL)进行权限管 理和内容过滤,这样可阻止特定的网络连接来 减少潜在的Internet非法连接,可以使用这些清 单来确保内部网的主机无法访问有威胁的或限 制访问不适宜的站点。
共享网络 加快访问速度,节约通信带宽 防止内部主机受到攻击 限制用户访问,完善网络管理
代理服务器的理
客户端A向代理服务器提出访问Internet的请求 。 代理服务器接受到请求后,首先与访问控制列 表中的访问规则相对照,如果满足规则,则在 缓存中查找是否存在需要的信息。 如果缓存中存在客户端A需要的信息,则将信 息传送给客户端。如果不存在,代理服务器就 代替客户端向Internet上的主机请求指定的信息 。 Internet上的主机将代理服务器的请求信息发送 到代理服务器中,同时代理服务会将信息存入 缓存中。
squid 配置详解
squid 配置详解+认证在此,我们要配置一个只对内部网络提供代理服务的Proxy Server。
它将用户分为高级用户和普通用户两种,对高级用户采用网卡物理地址识别的方法,普通用户则需要输入用户名和口令才能正常使用。
高级用户没有访问时间和文件类型的限制,而普通用户只在上班时可以访问以及一些其它的限制。
安装可以从Squid站点获取该软件的源代码安装包,包括gz和bz2两种压缩方式。
也可以使用Linux的发行版,如Red Hat提供的RPM包。
RPM方式安装很简单,命令如下:$ rpm -ivh Squid-2.x.STALBx.i386.rpm不过笔者认为,即便是系统中已经默认安装了Squid,也应当先删掉然后安装最新的源代码包。
因为开源软件会不断修正问题、提供更新的功能,使用最新版本可以保证最高的性能及安全,而且源代码方式可以完全定制系统。
不过STABLE稳定版、DEVEL版通常是提供给开发人员测试程序的,假定下载了最新的稳定版squid-2.5.STABLE2.tar.gz,用以下命令解开压缩包:$ tar xvfz squid-2.5.STABLE.tar.gz用bz2方式压缩的包可能体积更小,相应的命令是:$ tar xvfj squid-2.5.STABLE.tar.bz2然后,进入相应目录对源代码进行配置和编译,命令如下:$ cd squid-2.5.STABLE2配置命令configure有很多选项,如果不清楚可先用“-help”查看。
通常情况下,用到的选项有以下几个:--prefix=/web/squid#指定Squid的安装位置,如果只指定这一选项,那么该目录下会有bin、sbin、man、conf等目录,而主要的配置文件此时在conf子目录中。
为便于管理,最好用参数--sysconfdir=/etc把这个文件位置配置为/etc。
--enable-storeio=ufs,null#使用的文件系统通常是默认的ufs,不过如果想要做一个不缓存任何文件的代理服务器,就需要加上null文件系统。
Linux终端命令实现网络代理和转发
Linux终端命令实现网络代理和转发在Linux系统中,终端命令是一种非常强大的工具,可以用来实现各种各样的功能。
其中,网络代理和转发是一种常见的需求,可以通过终端命令来轻松实现。
本文将介绍一些常用的Linux终端命令,用于实现网络代理和转发。
1. 设置Proxy代理Proxy代理是一种通过中间服务器来转发网络请求的方式,常用于加速访问或绕过网络限制。
在Linux终端中,可以使用环境变量来设置Proxy代理。
首先,需要先设置代理服务器的IP地址和端口号,例如:```export http_proxy="http://proxy-server-ip:port"export https_proxy="http://proxy-server-ip:port"```将上述命令中的"proxy-server-ip"替换为实际的代理服务器IP地址,"port"替换为实际的端口号。
这样就成功设置了Proxy代理。
2. 实现HTTP代理转发除了使用环境变量设置Proxy代理外,还可以使用终端命令来实现HTTP代理转发。
在Linux系统中,可以使用Squid软件实现HTTP代理功能。
首先,需要安装Squid软件,可以使用以下命令进行安装:```sudo apt-get install squid```安装完成后,可以编辑Squid的配置文件,使用以下命令:```sudo nano /etc/squid/squid.conf```在配置文件中,可以设置Squid监听的端口号,以及允许访问的IP地址和网络段。
配置完成后,保存并退出文件。
接下来,可以使用以下命令启动Squid服务:```sudo systemctl start squid```启动成功后,就可以将HTTP请求通过Squid进行转发了。
3. 实现TCP和UDP数据包转发除了HTTP代理转发外,有时候还需要实现TCP和UDP数据包的转发。
squid的acl设置
squid的acl设置RedHat linux 系统默认已经安装了squid1.squid代理服务的配置有以下最基本的设置squid就可以启动使用了http_port 192.168.0.110:8080cache_mem 64 MBcache_dir ufs /var/spool/squid 4096 16 256cache_effective_user squidcache_effective_group squiddns_nameservers 192.168.0.1cache_access_log /var/log/squid/access.logcache_log /var/log/squid/cache.logcache_store_log /var/log/squid/store.logvisible_hostname 192.168.0.110cache_mgr qubaoquan@acl all src 0.0.0.0/0.0.0.0http_access allow all1.1 指定squid服务器监听的ip和端口http_port 192.168.0.110:80801.2 设置内存缓冲的大小(仅仅用于共享上网设为物理内存的1/2,如果还有其他服务责不应超过物理内存的1/3)cache_mem 64 MB1.3 设置内存盘缓冲的大小cache_dir ufs /var/spool/squid 4096 16 256Ufs 是指缓冲的存贮类型,/var/spool/squid是存贮目录,4096代表最大存贮空间,16代表一级存贮目录,256代表二级存贮目录1.4 设置使用存贮的有效用户和组cache_effective_user squidcache_effective_group squid1.5 定义DNS服务器地址\ dns_nameservers 192.168.0.11.6 设置访问日志文件cache_access_log /var/log/squid/access.log1.7 设置缓存日志文件cache_log /var/log/squid/cache.log1.8 设置网页缓冲日志文件cache_store_log /var/log/squid/store.log1.9 设置运行squid主机的名称visible_hostname 192.168.0.1101.10 设置管理员邮件地址cache_mgr qubaoquan@1.11 设置默认的访问控制列表acl all src 0.0.0.0/0.0.0.0http_access allow all2.初始化squid /usr/sbin/squid –z(创建squid在硬盘缓冲区的目录结构)3.访问控制列表类型选项列表语法:acl 列表名称列表类型–i 列表值http_access allow/deny 列表名称实际应用举例(1)禁止IP地址为192.168.16.200的客户机上网acl test src 192.168.16.200http_access deny test(2)禁止192.168.1.0这个网段里的所有客户机上网acl test src 192.168.1.0/255.255.255.0http_access deny testhttp_access deny test(3)禁止用户访问IP为210.21.118.68的网站acl test dst 210.21,118.68http_access deny test(4) 禁止用户访问域名为的网站acl test dstdomain –i http_access deny test(5) 禁止用户访问域名包含有的网站acl test url_regex –i http_access deny test(6) 禁止用户访问包含有sex关键字的URLacl test url_regex –i sexhttp_access deny test(7) 限制IP地址为192.168.16.200的客户机并发的最大连接数为5 acl test src 192.168.16.200acl test2 maxconn 5http_access deny test test2(8) 禁止192.168.2.0这个子网里所以客户机在周一至周五的9点到18点上网acl test src 192.168.2.0 /255.255.255.0acl test2 time MTWHF 9:00-18:00http_access deny test test2(9) 禁止用户下载*.mp3,*.exe,*.zip,*.raracl test urlpath_regex –i \.mp3$\.exe$\.zip$\.rar$http_access deny test(10) 禁止QQ通过squid上网acl test url_regex –i http_access deny test注:启动squid:/etc/init.d/squid start停止squid /etc/init.d/squid stop重启squid /etc/init.d/squid restart重新导入配置文件 /etc/init.d/squid reload4.透明代理的实现(1)实现透明代理的语句(vi /etc/squid/squid.conf)http_accel_host virtualhttp_accel_port 80http_accel_with_proxy 0nhttpd_accel_uses_host_header 0nhttp_accel_host和http_accel_port来定义squid的加速模式,virtual是虚拟主机模式,80为请求的端口http_accel_with_proxy 选项定义为on后,squid既是web请求的加速器又是缓存代理服务器httpd_accel_uses_host_header定义为on后,在透明代理模式下代理服务器的缓存功能才能工作(2)设置端口重定向iptables –t nat –A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 8080(3) 重新导入配置文件 /etc/init.d/squid reload配置用户身份验证1.配置/etc/squid/squid.conf(NCSA认证)auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwdauth_param basic children 5auth_param basic credentialsttl 2 hoursauth_param basic realm 's Squid proxy-cachingacl auth_user proxy_auth REQUIREDhttp_access allow auth_userauth_param basic program选项定义了认证方式为basic,/usr/lib/squid/ncsa_auth /etc/squid/passwd定义了认证程序的路径和读取的账户文件auth_param basic children 定义了认证程序的进程数auth_param basic credentialsttl 定义了经过认证后的有效时间auth_param basic realm 定义了WEB 浏览器显示输入用户/密码对话框的领域内容acl auth_user proxy_auth REQUIRED;http_access allow auth_user设置合法用户的访问控制列表2.建立账户文件htpasswd -c /etc/squid/passswd test(建第一个用户时要用-c选项)htpasswd /etc/squid/passswd test2htpasswd /etc/squid/passswd test33.重新启动squid服务。
squid用法 -回复
squid用法-回复Squid是一款高性能的缓存代理服务器,广泛应用于网络中,为用户提供更快的访问速度和更好的用户体验。
在本文中,我们将一步一步地回答关于squid的用法问题,并介绍它的功能和常见的配置选项。
一、什么是SquidSquid是一款开源的代理服务器软件,它可以缓存用户请求的Web页面和其他Internet资源,以提高访问速度和减轻网络带宽的负担。
Squid可以通过代理HTTP、HTTPS、FTP、SSL、DNS等多种协议实现对网络流量的转发和缓存。
除了缓存功能,Squid还支持访问控制、用户认证、流量控制、安全性等一系列功能,使其成为企业和供应商中流行的选择。
二、Squid的安装和配置1. 安装Squid软件在Ubuntu系统中,可以使用apt-get命令来安装Squid软件包:sudo apt-get install squid安装完成后,Squid的配置文件位于/etc/squid/squid.conf。
2. 配置SquidSquid的配置文件是一个文本文件,用于设置各种选项和参数。
你可以使用任何文本编辑器打开该文件,并根据需要进行修改。
- 设置缓存大小Squid可以设置缓存的大小,以控制存储的页面和资源数量。
在配置文件中,你可以找到以下行:cache_dir ufs /var/spool/squid 100 16 256这里的100表示缓存的大小(单位为MB),16表示一级子目录的数量,256表示第二级子目录的数量。
根据你的需求进行调整。
- 配置访问控制Squid可以设置访问控制,以限制哪些客户端可以访问代理服务器。
在配置文件中,你可以找到以下行:acl localnet src 192.168.0.0/24http_access allow localnet这里的192.168.0.0/24表示允许访问的IP地址范围。
你可以修改为你自己的网络范围。
- 配置用户认证Squid还支持用户认证功能,可以通过用户名和密码对访问进行控制。
squid
实验案列一:搭建标准的传统代理实验环境:Benet 教学机构有时需要在机房联网为学生上课,为了不让学生也连上网,现需要在网关上做代理服务器,为了加强安全,需要提供身份验证机制。
实验拓扑图:需求描述:教员老师可以通过指定的IP 地址和端口号来联网为了防止学员通过指定的ip 地址和端口号连上网,需要做身份验证实验步骤:1.挂载光盘安装squid 的rpm 包Squid局域网PC 机 192.168.100.1/24eth1:eth0: 173.16.16.1/24中的测试服务器2.在中配置squid代理服务器的主配置文件(因为里面有太多注释,而我们不需要那么多,我们就把它过滤掉)3.启动代理服务器4.在外网安装web服务器,并启动服务5.在内网要联网的的pc上指定代理服务器ip地址和端口6.内网访问外网服务器的web网站7. 为了防止学员通过指定的ip地址和端口号连上网,需要做身份验证◆Squid代理要实现身份验证必须要编译安装apache服务,在路径下创建用户帐号(因为编译安装时间很长,这里我就提起快照)◆在修改squid的主配置文件添加认证◆重新启动服务◆在内网验证实验案列二:搭建透明代理网关服务器实验环境:为了节省网络带宽、提高局域网访问Internet 的速度,需要在网关上搭建代理服务器,为了减少客户端的的重复设置工作,公司决定采用RHEL5服务器作为网关,并结合防火墙策略实现透明代理。
拓扑图如下:需求描述:使用iptables 设置SNAT 策略☐ 使192.168.100.0/24网段的主机通过NA T 方式共享上网 配置squid 代理服务 ☐ 对HTTP 访问进行缓存加速,并结合防火墙策略实现透明代理 在代理服务中进行访问控制 ☐ 禁止局域网用户下载rmvb 、mp3格式的文件 ☐ 对超过3M 大小的文件不做缓存,禁止下载超过8M 的文件 ☐ 禁止用户访问 、 、 等域的网站 ☐ 启用网址过滤,禁止访问包含“sex ”、“adult ”字样的链接Squid局域网PC 机 192.168.100.1/24eth1:eth0: 173.16.16.1/24中的测试服务器实现思路:准备好客户机及Internet测试服务器正确配置各主机的网络参数☐局域网主机将默认网关设为192.168.100.254☐在测试服务器上启动httpd服务修改squid.conf 文件,☐配置透明代理支持、缓存和下载文件大小限制、网址过滤开启路由转发,添加实现透明代理的REDIRECT策略初始化并启动squid服务实现步骤:1. 通过iptables使192.168.100.0/24网段的主机通过NA T方式共享上网2. 在中修改squid的主配置文件,实现对HTTP访问进行缓存加速,并结合防火墙策略实现透明代理,并编写每个需求描述的条件3.在开启路由转发功能4.禁止局域网用户下载rmvb、mp3格式的文件5.对超过3M大小的文件不做缓存,禁止下载超过8M的文件6. 禁止用户访问、、等域的网站7.启用网址过滤,禁止访问包含“sex”、“adult”字样的链接实验案列三:搭建反向代理服务器实验环境:公司的对外网站平台使用两台RHEL5服务器实现镜像负载,为了进一步提高web服务器的响应速度,需要在网关服务器上搭建反向代理服务。
Linux下常用的配置文件位置
Linux下常⽤的配置⽂件位置1、别名配置⽂件[root@room8pc205 ~]# vim /root/.bashrc #此处是root⽤户定义的别名⽂件的位置,只有root⽤户登录可⽤[root@room8pc205 ~]# vim /lisi/.bashrc #此处是定义lisi⽤户的别名配置⽂件保存位置,只有lisi⽤户登录可⽤[root@room8pc205 ~]# vim /etc/bashrc #此处是定义全局⽤户的别名配置⽂件保存位置,所有⽤户都通⽤,注意别名定义语句不要写到判断句⾥⾯#⽤户单独的别名定义⽂件前⾯有.bashrc2、主机名配置⽂件[root@room8pc205 ~]# vim /etc/hostname #此处是虚拟机的主机名配置⽂件位置3、DNS信息配置⽂件[root@room8pc205 ~]# vim /etc/resolv.conf#此处是虚拟主机⽹卡配置⽂件的位置4、⽤户信息配置⽂件[root@room8pc205 ~]# vim /etc/passwd #此处是虚拟主机所有的⽤户信息配置⽂件的位置5、yum仓库配置⽂件[root@room8pc205 ~]# vim /etc/yum.repos.d/*.repo #此处是虚拟主机所有的yum仓库信息配置⽂件的位置6、挂载配置⽂件[root@room8pc205 ~]# vim /etc/fstab #此处是虚拟主机所有的挂载配置⽂件位置7、共享配置⽂件[root@room8pc205 ~]# vim /etc/exports #此处是虚拟主机所有的共享配置⽂件位置8、NTP时间同部功能配置⽂件[root@room8pc205 ~]# vim /etc/chrony.conf #此处是虚拟主机NTP时间同步配置⽂件位置9、SELinux功能配置⽂件[root@room8pc205 ~]# vim /etc/selinux/config #此处是SELinux配置⽂件位置SELINUX=permissive #改成允许10、历史命令记录配置⽂件[root@room8pc205 ~]# vim /etc/profile #此处是历史敲击过的命令配置⽂件位置11、系统管理配置⽂件[root@room8pc205 ~]# vim /lib/systemd/system #此处是系统服务和启动项配置⽂件位置12、samba共享配置⽂件[root@room8pc205 ~]# vim /etc/samba/smb.conf #此处是虚拟主机所有的共享配置⽂件位置13、DNS全局主配置⽂件[root@room8pc205 ~]# vim /etc/name.conf #此处是DNS全局主配置⽂件位置[root@room8pc205 ~]# vim /var/named/ #此处是主机名与IP地址对应记录位置14、DHCP配置⽂件[root@room8pc205 ~]# vim /etc/dhcp/dhcp.conf #此处是dhcp配置⽂件位置15、历史命令记录条数配置⽂件[root@room8pc205 ~]# vim /etc/profile #此处是⽤户历史命令记录条数配置⽂件位置,默认HISTISE=1000条16、变量名配置⽂件[root@room8pc205 ~]# vim /etc/profile #此处是对所有⽤户设置变量的配置⽂件位置,永久有效[root@room8pc205 ~]# vim /home/lisi/.bash_profile #此处是对lisi⽤户家⽬录下设置变量的配置⽂件位置,对lisi⽤户永久有效,这⾥lisi也可以是别的⽤户17、代理服务器squid配置⽂件位置[root@room8pc205 ~]# vim /etc/squid/squid.conf #代理服务器配置⽂件[root@room8pc205 ~]# vim /var/spool/squid #硬盘中代理服务器缓存⽂件位置18、代理服务器Varnish配置⽂件位置[root@room8pc205 ~]# vim /etc/sysconfig/varnish #Varnish前端⽹络配置设置[root@room8pc205 ~]# vim /etc/varnish/default.vcl #Varnish后端⽹络配置设置19、ssh服务配置⽂件[root@room8pc205 ~]# vim /etc/ssh/sshd_config #ssh远程配置设置20、nginx服务配置⽂件[root@room8pc205 ~]# vim /usr/local/nginx/conf/nginx.conf #nginx配置⽂件设置21、Tomcat服务配置⽂件[root@room8pc205 ~]# vim /usr/local/tomcat/conf/server.xml #Tomcat配置⽂件设置22、memcached服务配置⽂件[root@Proxy ~]# vim /etc/sysconfig/memcached #memcached服务配置⽂件设置23、Redis数据库配置⽂件[root@room8pc205 ~]# vim /etc/redis/6379.conf #Redis数据库配置设置24、Mysql数据库配置⽂件[root@room8pc205 ~]# vim /etc/f #Mysql数据库配置设置25、⽹卡配置⽂件[root@room8pc205 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 #此处是虚拟主机⽹卡配置⽂件位置26、数据库读写分离maxscale主配置⽂件[root@room8pc205 ~]# vim /etc/f #此处是MySQL数据库读写分离配置⽂件位置27、Mysql数据库sudo提权操作主配置⽂件[root@room8pc205 ~]# vim /etc/sudoers #此处是sudo提权配置⽂件位置28、ftp主配置⽂件[root@room8pc205 ~]# vim /etc/vsftpd/vsftp.conf #此处是ftp配置⽂件位置29、postfix邮件主配置⽂件[root@room8pc205 ~]# vim /etc/postfix/main.cf #此处是ftp配置⽂件位置30、firewalld主配置⽂件[root@room8pc205 ~]# vim /etc/firewalld/firewalld.conf #此处是ftp配置⽂件位置31、Nagios主配置⽂件[root@room8pc205 ~]# vim /etc/httpd/conf.d/nagios.conf #此处是nagios在apache⽹站配置⽂件位置,是apache的从配置⽂件[root@host56 ~]# vim /usr/local/nagios/etc/nagios.cfg #Nagios主配置⽂件位置[root@host56 ~]# ls /usr/local/nagios/ #Nagios安装⽬录[root@host56 ~]# ls /usr/local/share/ #Nagios监控页⾯存储位置,主配置⽂件⾥⾯Alias定义了别名,访问⽹页/nagios会⾃动调此⽬录下的⽂件[root@host56 ~]# /etc/init.d/nagios start | stop | status | restart #Nagios启动 | 停⽌ | 运⾏状态 | 重启等⽅式[root@host56 ~]# cd /usr/local/nagios/libexec/ #Nagios插件位置⽬录[root@host56 ~]# vim /usr/local/nagios/etc/nrpe.cfg #nagios监控插件nrpe的主配置⽂件32、Linux本⾝⾃带的路由转发功能[root@host103 ~]# vim /etc/sysctl.conf //配置⽂件⾥⾯有IP转发功能#配置⽂件的第7⾏有ipv4的路由转发功能,可以开启。
Linux代理服务器使用
Linux代理服务器使⽤1. 介绍代理(即⽹络代理)是⼀种特殊的⽹络服务, 允许⼀个⽹络终端(客户端)通过这个服务与另⼀个终端(服务器)进⾏⾮直接连接,从⽽提供服务. 其中, 提供代理的⽹络终端称为代理服务器(Proxy Server)根据代理服务器的作⽤可分为如下类型- HTTP代理: 主要是代理浏览器访问⽹页- SOCKS代理: 是⼀种通⽤的代理类型, ⽀持多种协议,分SOCKS 4 和SOCKS 5两种- FTP代理: 代理客户端的FTP软件访问FTP服务器- VPN代理: 在共⽤⽹络上建⽴专⽤⽹络的技术从功能上, 代理服务器⼜可分为如下类型- 正向代理(Forward Proxy): 访问原来⽆法访问的资源, Cache, 对客户端访问授权, 隐藏⾏踪- 反向代理(Reverse Proxy): 负载均衡, CDN- 透明代理: NAT转发Linux上代理服务器软件众多, 常⽤的有TinyProxy、Squid、CCProxy、Wireguard、SS5、Dante、Shadowsocks2. TinyProxyTinyProxy是⼀款轻量级HTTP代理软件, 提供正向代理功能, 与Squid(⽀持HTTP, HTTPS, FTP)相似2.1 安装# Ubuntuapt-get updateapt-get install tinyproxy -y# CentOSyum install tinyproxy -y2.2 配置TinyProxy的配置⽂件为/etc/tinyproxy/tinyproxy.conf# 允许访问代理的IP地址, 默认仅允许本地, 注掉改⾏表⽰允许所有⼈访问Allow 127.0.0.1# 代理服务器的端⼝号,Port 8888# ⽩名单⽂件配置Filter "/etc/tinyproxy/filter"# 使⽤URL过滤⽽不是 domainsFilterURLs On# 允许代理过滤⽂件⾥的地址. 若不允许, 此处设置为 NoFilterDefaultDeny Yes查看⽇志的命令如下# tail -f /var/log/tinyproxy/tinyproxy.log2.3 启动TinyProxy启动相关命令如下# systemctl start tinyproxy.service# systemctl stop tinyproxy.service# systemctl status tinyproxy.service# systemctl enable tinyproxy.service2.4 防⽕墙笔者⼀般都是开启防⽕墙的, 所以需要进⾏防⽕墙配置# systemctl start firewalld.service# systemctl enable firewalld.service# cp /usr/lib/firewalld/services/ssh.xml /usr/lib/firewalld/services/tinyproxy.xml# vi /usr/lib/firewalld/services/tinyproxy.xml...# cat /usr/lib/firewalld/services/tinyproxy.xml<?xml version="1.0" encoding="utf-8"?><service><short>tinyproxy</short><description>Tinyproxy is a light-weight HTTP/HTTPS proxy service.</description><port protocol="tcp" port="8888"/></service># firewall-cmd --permanent --zone=public --add-service=tinyproxy# firewall-cmd --reload2.5 使⽤2.5.1 Windows在Windows上⼤部分软件都是有代理设置的界⾯, 按照提⽰在HTTP代理处填写代理服务器的IP地址和端⼝即可2.5.2 Linux在Linux上, 通常在.bash_profile或者.bashrc中加⼊如下环境变量export http_proxy="http://ip:port"export https_proxy="http://ip:port"export no_proxy="127.0.0.1, localhost, *, 192.168.1.10, :8080"如果需要登陆, 应为export http_proxy="http://username:password@ip:port"export https_proxy="http://username:password@ip:port"但是不是所有应⽤会使⽤上⾯的环境变量, 不同应⽤可能会有⾃⼰的代理设置⽅法⽐如git, 其代理配置⽅法如下# git config -global http.proxy 'http://ip:port'# git config -global https.proxy 'http://ip:port'2.6 验证在客户端上运⾏如下命令可以验证代理服务器是否配置成功# curl url --proxy ip:port2.7 问题在实际使⽤过程中, 发现了如下问题- 在使⽤阿⾥云等云服务器部署时, 需要在安全组配置中开放代理服务器的端⼝-⽆法访问⾕歌等⽹站, ⼀番查询之后了解, HTTP代理因为数据透明⽆法通过GWF的检查…3. SS5SS5是⼀款SOCK 5代理软件3.1 安装# yum install gcc openldap-devel pam-devel openssl-devel -y# wget https:///project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz# tar -xzvf ss5-3.8.9-8.tar.gz# cd ss5-3.8.9# ./configure# make# make install3.2 配置修改主配置⽂件/etc/opt/ss5/ss5.conf, 设置为⽤户密码访问权限# vim /etc/opt/ss5/ss5.conf...# SHost SPort Authenticationauth 0.0.0.0/0 - u...# Auth SHost SPort DHost DPort Fixup Group Band ExpDate#permit u 0.0.0.0/0 - 0.0.0.0/0 - - - - -⽤户配置# vim /etc/opt/ss5/ss5.passwdroot 123456修改默认端⼝, SOCK 5默认端⼝为1080, 可通过如下⽅式修改# vim /etc/sysconfig/ss5SS5_OPTS=" -u root -b 0.0.0.0:9090"3.3 启动# 增加执⾏权限# chmod a+x /etc/rc.d/init.d/ss5# 启动# /etc/rc.d/init.d/ss5 restart# service ss5 start# 关闭# /etc/rc.d/init.d/ss5 stop# service ss5 stop# 开启启动# chkconfig --add ss5# chkconfig --level 345 ss5 on3.4 其他# 查看连接情况# netstat -an | grep1080# 查看⽇志# tail -f /var/log/ss5/ss5.log3.5 问题问题⼀: 客户端Firefox使⽤SimpleProxy设置SOCK 5代理后⽆法访问任何⽹站, 查看服务器⽇志发现⼀直在刷如下错误信息"""" ISERROR - - - (-:- -- -:-) (Socks method unknown or bad request)最后发现是插件的问题导致没有⽤户名和密码信息问题⼆(未亲测): 重启系统后,/var/run/ss5/丢失导致/var/run/ss5/ss5.pid创建失败, ⾃动/⼿动启动失败, 需先创建⽬录# vi /etc/rc.d/rc.localmkdir /var/run/ss5/# chmod a+x /etc/rc.d/rc.localTIPS: 注意前⾯我们配置了⽤户名密码, 所以在客户端设置代理同样需要设置⽤户名密码4. DanteDante是另⼀款SOCK 5代理软件4.1 安装# wget http://www.inet.no/dante/files/dante-1.4.2.tar.gz# tar -xzvf dante-1.4.2.tar.gz# cd dante-1.4.2# ./configure# make# make install4.2 配置# cat /etc/sockd.conf## general configuration (taken from FAQ; <URL:http://www.inet.no/dante/FAQ>)internal: eth0 port = 9090external: eth0socksmethod: noneuser.privileged: rootuser.notprivileged: nobodylogoutput: /var/log/sockd.log## client access rulesclient pass {from: 0/0 to: 0/0}## server operation access rules# block connections to localhost, or they will appear to come from the proxy.socks block { from: 0/0 to: lo log: connect }# block bind to ports lower than 1023#socks block {# from: 0/0 to: 0/0 port le 1023# command: bind# log: connect#}# allow the restsocks pass {from: 0/0 to: 0/0protocol: tcp udplog: error connect disconnect}更多配置选项, 参考<>4.3 启动# 启动程序# /usr/local/sbin/sockd -D# 结束程序# killall sockd# 查看⽇志# tail -f /var/log/sockd.log5. Shadowsocks5.1 安装# yum install python-pip# pip install shadowsocks5.2 配置# cat /etc/shadowsocks.json{"server":"0.0.0.0","server_port":9090,"local_address": "127.0.0.1","local_port":1080,"password":"mypassword","timeout":300,"method":"aes-256-cfb","fast_open": false}5.3 启动# 前台启动# ssserver -c /etc/shadowsocks.json# 后台启动和停⽌# ssserver -c /etc/shadowsocks.json -d start# ssserver -c /etc/shadowsocks.json -d stop# 查看⽇志# tail -f /var/log/shadowsocks.log5.4 问题问题⼀: 代理访问失败, 查看⽇志如下WARNING unsupported addrtype 104, maybe wrong password or encryption methodERROR can not parse header when handling connection from x.x.x.x:x调查⼀番发现, 原来还需要在客户端上跑⼀个Shadowsocks client, 下载⼀个Windows版本即可5.5 其他由于前⾯较多都是SOCK代理, ⽽很多应⽤只⽀持HTTP代理, 所以通常还需要将SOCK5协议转换HTTP协议这类软件包括Privoxy、Polipo等, 这⾥不做介绍6. 总结以上⼏款代理软件尝试下来结果如下:- TinyProxy: 可以访问bing、baidu, 但是google、youtube、facebook⽆法访问- SS5: 可以访问bing、youtube、baidu, 但是google、facebook⽆法访问- Dante: 可以访问bing、baidu, ⽽youtube、google、facebook等均⽆法访问- Shadowsocks: 可以访问bing、baidu、youtube, ⽽google、facebook等均⽆法访问当然, 我使⽤的阿⾥云服务器虽然位于美国, 但是各项配置都毕竟差, 可能这个会很⼤程度上影响访问, 主要配置如下CPU: 1核内存: 1GiB硬盘: 20GiB带宽: 1Mbps这⾥介绍⼀个测试带宽的⼯具speedtest-cli# pip install speedtest-cli# 带宽为1Mbps# speedtest-cliRetrieving configuration...Testing from Alibaba (x.x.x.x)...Retrieving server list...Selecting best server based on ping...Hosted by Unwired (San Francisco, CA) [26.04 km]: 9.609 msTesting download speed................................................................................ Download: 109.89 Mbit/sTesting upload speed................................................................................................ Upload: 1.60 Mbit/s# 带宽为10Mbps# speedtest-cliRetrieving configuration...Testing from Alibaba (x.x.x.x)...Retrieving server list...Selecting best server based on ping...Hosted by Coastside Net (Half Moon Bay, CA) [13.10 km]: 2.916 msTesting download speed................................................................................ Download: 110.42 Mbit/sTesting upload speed................................................................................................ Upload: 12.00 Mbit/s参考:<><><>。
Linux中怎么设置透明代理(2)
Linux中怎么设置透明代理(2)4:确认squid服务处于正常监听状态:5:客户机程序的代理配置:在IE浏览器的—右击属性—连接—局域网设置—代理服务器—填写IP地址和端口号—IP地址为局域网内网的网关地址;端口号为—3128:Linux客户机命令行使用代理服务器,elinks网页浏览器、wget 下载工具为例:注意:在外网服务器173.16.16.2上必须安装WEB服务器并启动服务6:验证传统代理的使用:在192.168.10.10客户机上通过浏览器访问http://173.16.16.2:a:查看squid访问日志的新增记录:在squid代理服务器中,通过跟踪squid服务的访问日志文件,我们会发现客户机192.168.10.10访问网站服务器173.16.16.2。
b:查看web访问日志的新增记录:在被访问的web服务器中,通过跟踪httpd服务的访问日志文件,会发现来自代理服务器173.16.16.173的访问记录。
这说明当客户机使用代理后,web服务器并不知道客户机的真实IP地址,因为实际是由代理服务器在代替访问。
当从客户机再次访问同一web页面时,squid访问日志中会增加新的记录,但web访问日志中的记录不会有变化,除非页面变更、或执行强制刷新等操作。
当客户机重复访问同一静态页面时,实际上是由代理服务器通过缓存提供的。
透明代理:透明代理提供的服务功能与传统代理一致,但“透明”的实现依赖于默认路由和防火墙的重定向策略,更适用于局域网主机服务,而不适合为internet中的客户机提供服务。
实验描述:在Linux网关上构建squid为客户机访问Internet提供代理服务;在所有的局域网客户机上,只需正确设置IP地址、默认网关,不需要手动指定代理服务器的地址、端口等信息。
实验步骤:1:配置Squid支持透明代理。
在主配置文件中/etc/squid/squid.conf中添加一项http_port 局域网IP地址:3128 transparent 或 http_port 3128 transparent2:设置iptables防火墙的重定向策略(如果防火墙开启,需先保存并关闭,然后新建如下规则):正确设置防火墙策略,将局域网主机访问internet的数据包转交给Squid进行处理,这里需要用到iptables的REDIRECT(重定向)策略,其作用是实现本机端口的重新定向,将访问网站协议HTTP、HTTPS的外发数据包转交给本机的Squid服务的3128端口。
构建Linux下的Squid代理服务器
上 的 其 他 主 机 打 交 道 ,提 供 代 理 服 务 的 这 台 机 器 称 为 代 理 服 务 器 。拥 有 内 部 地 址 的 机 器 想 到 因 特 网 上 查 找 资 料 时 ,先 把 这 个 请 求 发 给 拥 有 标 准 I 地 址 的 代 P 理 服 务 器 ,由 代 理 服 务 器 把 这 个 请 求 通 过 它 的 标 准 I 地 址 发 到 请 求 的 目标 地 P 址 。然 后 目 标 地 址 的 服 务 器 把 返 回 的 结 果 发 回 给 代 理 服 务 器 ,代 理 服 务 器 再 原 封 不 动 地 把 资 料 发 给 最 初 那 台 拥 有 内部 I g ̄ Pt k的 机 器 。这 样 就 完 成 了 一 次 内 部
迎 。 目 前 I e ne nt r t上 运 行 的 主 机 有 相 当
一
部 分 采 用 的 就 是 Li x操 作 系 统 ,而 nu
现 在 因 特 网 发 展 速 度 这 么 快 ,而 I P 地 址 资 源 又 这 么 紧 张 ,这 不 能 不 说 是 一
个 尖 锐 的 矛 盾 。 虽 说 I 6正 在 开 发 中 , Dv 但 远 水 不 解 近 渴 ,好 多 的 企 业 、 公 司 内
I e ne 数 据 的 一 个 软 件 ,它 接 收 用 户 nt r t 的 下 载 申请 , 并 自动 处 理 所 下 载 的 数 据 。也 就 是 说 ,当 一 个 用 户 想 要 下 载 一 个 主 页 时 ,它 向 S qui 发 出 一 个 申 请 , d 要 Squ d替 它 下 载 ,然 后 Sq d连 接 所 i ui 申 请 网 站 并 请 求 该 主 页 , 着 把 该 主 页 接 传 给 用 户 同 时 保 留 一 个 备 份 。当 别 的 用 户 申 请 同 样 的 页 面 时 ,S qui d把 保 存 的
