linux透明代理可以集成squid的验证吗?(未完结)

来源:互联网 发布:销售管理系统php源码 编辑:程序博客网 时间:2024/04/30 06:19

转自己的东西算原创吧?百度空间发了一道,这边在来发,搬家了,百度空间连类都不可以分,资料很混乱。

​初步推断,需要做的事情,有以下几个:

            A.将linux入域(条件为域用户可以登录linux)。

            B.配置squid。

            C.本人水平所限,所有操作皆用root帐号操作,除非特殊说明.

            D.初步结论,linux集成域验证的透明代理,不是,不行,只是在同一台电脑上,是无法实现,据推测,估计需要一台电脑做透明代理,一台电脑做验证(未证实)

        第一件事:将linux入域。

             一:前情提要:

                    1.域计算机名称,AD.GSM.YUK.COM,由此推出域名为:  GSM.YUK.COM。

                    2.域计算机ip地址,192.168.0.2。

                    3.linux计算机全名,TESTLINUX.GSM.YUK.COM 。

                    4.linux的ip地址,192.168.0.10。

             二:入域过程:    

                   提示:

                        系统在安装过程中,也可以设置很多属性,但是为了熟悉配置过程,所以,安装的时候,进行了默认配置,所以,

                        系统本身开的服务较过,需要关闭,这部分,因目前水平所限在此就不描述了,仅讲个人的配置过程和经验,以供

                        自己日后查看。

                  关于设定固定ip

                        首先设置固定IP地址,因为,将要作为一个网络代理服务器,最好还是给一个固定ip地址,虽然以我目前水平不知

                        道,透明代理监听80端口,是否需要固定ip,但是仅仅为自己以后远程等方便,还是设置的好。

                        

               1.配置固定ip。

                        vi /etc/sysconfig/network-scripts/ifcfg-eth0 #进入文本编辑模式,修改如下:

                        ifcfg-eth0 #        DEVICE=eth0 #设备名称

                        BOOTPROTO=static #表示静态ip,原值为,dhcp

                        HWADDR=xx:xx:xx:xx:xx:xx #网卡的物理地址,一般不用改      

                        #IPV6INIT=yes   #对于ipv6的支持可以不理,也可以像我这样注释掉,如果注释那最好关闭,关闭方法见后面补充。

                        #IPV6_AUTOCONF=yes       

                        ONBOOT=yes #设备启用

                    IPADDR=192.168.0.10 #ip地址

                    NETMASK=255.255.255.0 #子网掩码

                        GATEWAY=192.168.1.1 #网关地址

                    NETWORK=192.168.1.0 #网络地址,就是IP地址去掉主机地址

                    BROADCAST=192.168.1.255 #广播地址

                        保存,退出,对以上地址如有疑惑,自己百度。

               2.接下来需要设置主机名称和dns地址,这有两个特别注意事项,至少很坑我,未找到权威资料,但是我这样做

                        就对了。

                        vi /etc/hosts #计算机名称

                        127.0.0.1             localhost.localdomain    localhost #后面加一句如下

                        192.168.0.10        TESTLINUX.GSM.YUK.COM  TESTLINUX #第一个坑,xp机子入域,会自动加后缀,ad建立的

                        时候,有个选项关于这个后缀的,默认是域自动给客户机加,但是,linux加不了啊,坑啊,死活说,名称有问题,

                        所以,请注意,这个地方是,计算机名字+域名

                        保存,退出,此处需要注意的是,域名和域计算机全名的区别。

 

                         vi /etc/sysconfig/network #好吧,windows系统中有个所谓的网络计算机名称,这个或许是吧

                         NETWORKING=yes #当然应该是yes,否则没法继续啦。

                         #NETWORKING_IPV6=yes #其情况同上,反正我看到ipv6就处理掉啦。

                         HOSTNAME=TESTLINUX.GSM.YUK.COM   #计算机全名

                         vi /etc/resolv.conf  #dns配置,大坑来啦。

                         domain  GSM.YUK.COM  #固定ip地址以后,重启电脑以后,ping不通域名了,ping ip通,估计dns出问题,

                         按照网络上的方法,加nameserver,结果,ping 外网通,ping内网还是不通,百度来,百度去都说dns错,

                         搞的我把nameserver的写法换了N++种,还是不行,最后,在百度中爬山越岭,翻山过海,终于找到这么一句话,

                         OK了,后面那个是域名。

                         nameserver  10.10.3.1 #除了这两个,注释掉,其他的。

                         提示:关于ping通计算机名/ip,这是在xp入域的一个必须条件,所以推测linux入域,至少需要能解析域名才对。

         

                         vi /etc/nsswitch.conf #大概是验证方式,终于有一个简单的配置啦。

                         passwd: files  winbind #仅仅在原来的语句后面加一个winbind,不要乱改啊

                         shadow: files  winbind

                         group:    files winbind

                         保存,退出,好吧,仅仅设置了一个固定ip而已,真麻烦,终于重头戏来了。

 

                        vi /etc/krb5.conf #这个的配置很复杂,如果涉及业务多,现在假设仅仅入域,那就按照下面的操作就可以啦。

                        [libdefaults]

                        default_realm=GSM.YUK.COM  #修改为域名

                        dns_lookup_realm=true #据说可改,可不改,我的域很健全,而且域和dns是同一台,所以我就改了

                        dns_lookup_kdc=true #同上

                        [realms]

                        GSM.YUK.COM ={  #域名

                        kdc= AD.GSM.YUK.COM:88 #域计算机名+端口  

                        admin_server=AD.GSM.YUK.COM:749 #域计算机名+端口

                        default_domain=GSM.YUK.COM #域名

                        }

                       [domain_realms]

                       gsm.yuk.com= GSM.YUK.COM  #这两个的关系,大概是前面小写,

                      .gsm.yuk.com= GSM.YUK.COM 

                       保存,退出,网上改的很多,估计是他们安装的时候,设计应用较多,现在根据我实际测试,如果入域,并使用域用户登录,改这么多

                       就够啦。

 

                      vi /etc/samba/smb.conf #传说功能很强大,那就意味着配置更复杂,有人建议直接新建文件然后输入以下内容,

                      我照办啦。

                      [global]

                      workgroup=GSM    //域名,点分号的,第一部分,这地方有个主要事项,网络上讲,这个是.com前面的,他奶奶的,那

                      有的域有多个点,有的域不带那玩意,怎么办?根据实测,其真正的名字应该是,用户名前面的部分,这里现在其实

                      可以任意定义,后面我会讲到更改的问题。

                      password server=192.168.0.2 //域ip

                      realm=GSM.YUK.COM //域名

                      security=ads//域验证方式

                      idmap uid=100000-400000#纯超的完全不懂,大概是说,linux不会识别windows的用户帐号,只会识别其帐号的数字

                      编号

                      idmap gid=100000-400000#同上,不过好像不是帐号,是组,有人说人多越大越好,也不知道我们有600人算多不?没实际

                      测试。

                      template shell=/bin/bash#登陆以后,用什么玩意

                      winbind use default domain=true#允许使用默认的域

                      winbind separator=/ #故名思议,路径分割方式

                      winbind enum users=yes  #下面没注释,原因是觉得找到的说法并不权威

                      winbind enum groups=yes #另外这个文件的配置,很有问题,如有高手,请帮忙优化下

                      encrypt passwords=yes

                      winbind offline logon=true

                      comment=%S

                      path=/home/%D/%S

                      writable=yes

                      browsable=no                           

                     保存,退出,这是我心里最不踏实的一个配置文件,很多参数没搞懂,而且删除了很多。

         3.好吧,开始检验成果了。

                     直接输入命令 net ads join -U administrator@GSM.YUK.COM #使用域的帐号密码

                     根据提示,输入密码出现,出现很多字,看最后一行

                     Joined 'TESTLINUX' to realm 'GSM.YUK.COM '

                     好成功了,入域成功。

                     另外:如果这个地方出错,除了没有按照我上面说法去做或无意中录错外,还有几个情况会让人纠结,如下:

                            3.1时间不对,第一次装系统,因为是在text模式下选择语言为中文,结果悲剧,然后时区莫名其妙去了美国,第二次装,选择中国

                            重庆进去以后,TMD时间还是不对,虽然时间可以改,但是留下这么简单的疑惑不是我的风格,在重新装,终于发现了,默认选项

                            使用格林日志时间·······

                            3.2在出现这个成功提示以后,还会提示,workgroup需要设置一个短名称,我仔细看,觉得这个名字莫名其妙,既和域无关,

                            也和客户机无关,好在入域成功,不管,继续。

                            3.3想想如果按照上面的操作也没有其他错误会出现,那继续。

              第二件事:检查域验证并使用域用户登录linux

                        首先执行

                        service smb start #会启动两个OK

                        service winbind start#启动一个OK

                        wbinfo -t#现在执行这个命令,如果最后一个单词是成功,那就没有问题,否则winbind的启动有错,就多起几次,或将start改为restart

                        在来几次,如,还不行,重启电脑试试。

                        wbinfo -u #注意,此处会出现一个巧合,你会发现,域帐号是有一个名字\帐号构成,而这个名字是上面入域成功以后的提示workgroup

                        应该设置的值,怎么会这样了,想来想去,终于想起,我以前,做过一个备份域,就是这个名字,所以在上面,可以将workgroup的名

                        字设置成这个提示的名字。

                        chkconfig   smb on #设置成开机启动,否则过会配置完了,帐号还是登录不起。

                        chkconfig   winbind on#同上

                        

                        实际上,此时域帐号的认证应该可以啦,可以进行简单的测试:

                        输入kinit    回车

                        输入域管理员的密码,无提示返回就正常,但是发现仍然不能登录,而且普通用户也无法用kinit验证,为什么啦????

                        后面配置squid的时候,无意中,发现了,system-auth影响到了,域用户登录,时灵时不灵。

                        vi /etc/pam.d/system-auth

                        #auth     required   ........

                        auth     sufficient  ........

                        #auth     required   ........

                        #auth     required   .......

                        保存,退出,在登录的时候,直接使用域管理员/域授权管理员用户登录,成功啦,这个文件暂时不了解,后面再说,现写在这里。

            第三件事情,配置squid。

                    1.squid本身的配置很简单网上都有,也大多不会误导人,真正会出问题的,反而是为实现透明代理而配置的防火墙,不过,有

                    兄弟告诉我,直接用squid监听80端口,想想,想法不错,但是比透明代理还是差了一筹,所以仍然坚持使用透明代理,好具体

                    如下:

                    1.vi /etc/squid/squid.conf

                    :g/^#/d #咋个配置文件太多,先去掉所有带#号的行
                    :g/^s*$/d#在去掉所有的空行,终于精简下来啦

                    # 观察已有内容,把所有限制性的语句全部注释就是http_access deny **还有那个授权的,aut**,不要提安全,先实现了透明

                    代理,我在慢慢安全

                     http_access allow all#这个一句是加的,就加在拒绝所有的那句下面吧。

                     http_port 192.168.0.200:3128  transparent #这句是改的,原句是http_port 3128,加的那个ip是内网的,这个配置是2.6的用法

                    保存退出,看看squid.conf中的那两个路径,修改路径下面文件权限

                    chmod 777 -R  /var/log/squid#在说一次,别给我提安全

                    chmod 777 -R /var/spool/squid

                    squid -zX

                    service squid start

                    chkconfig squid on #开机启动

                    vi /etc/sysct1.conf

                     net.ipv4.ip_forward=1 #原值是0,大概是允许转发的意思

                    保存退出

                    init    6#重启下电脑吧,很多配置需要服务重启生效,但是想必重启电脑,作用更大吧,我猜  

                    坑人的防火墙来了

                    modprobe ip_tables #加载防火墙的nat模块,理论上讲前两个够用,保险起见,还是三个吧
                    modprobe ip_nat_ftp

                    modprobe iptable_nat

                    cd /etc/sysconfig

                    vi iptables #打开看看这个文件中是否有出现*nat 如果未出现,重启,上面三句话在来一遍,

                    反正配置文件一点要出现*nat

                     cp iptables   iptablesback

                     vi iptablesback

                     注释掉*filter下面那个句带有,REJECT的规则

                      在*nat下面加两句

                     -A PREROUTING -s 192.168.0.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
                    -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j SNAT --to-source 10.10.3.252

                    保存退出

                    关于nat这两句,有必要解释下,当然个人理解的,第一句是将80端口转发到3128但是,很多网站都不是以80为端口的,比如银行网站中很多

                    子网页,在比如说,dns解析本身也需要53端口的支持,所以增加了第二句话,当然如果你是高手,完全可以只写第一句那种,只不过,要多

                    写几句,有人说,有了第二句,可以直接上网,使用的不是squid而是nat实现的,这么说其实也不算有错,如果第一句挂掉,那第二句仍然会

                     让使用者上网,那透明代理没有意义吗?当然不可能,毕竟网络那么流传,首先,linux会从上往下执行,所以正常情况下遇到第一句,就执行 ,

                      squid就起作用了,否则才执行第二句,怎么看是那句?很简单啦,你使用tail -f /var/log/squid/access.log可以时实显示你访问情况,

                      因此策略是可以做的。同时如果你的iptables玩很得心应手同时对网络访问交互过程很了解,下面那句,是可以不要的                   


                    然后执行iptables-restore iptablesback

                    squid配置算是完成了。

                    好吧,最头疼的地方来了,将域的验证和linux集成,其实对于linux来说,也无非就是,访问控制,只是根据是在windows上而已,但配置很麻烦

                下次继续



            备注:

                    一些可能会遇到的资料整理,来源网络,

            关闭IPV6的网卡

                    vi /etc/modprobe.conf

                    alias net-pf-10 off

                    allas ipv6 off

                    保存,退出,重启。      

           挂载光驱

                    mkdir  /mnt/cdrom

                    mount   -o    ro  /dev/cdrom   /mnt/cdrom#附一条,Centos挂载以后,其服务安装包所在路径

                    为:/mnt/cdrom/CentOS下面。

           安装samba

                    进入/mnt/cdrom/CentOS

                    ls samba-*

                    显示出来的就是安装包,

                    rpm -qa|grep samba #检查已经安装了的,如果有安装,需要卸载,卸载方式

                    rpm -e  samba-具体的包名字刚查出来的已经安装的  -f --nodeps

                    然后在安装,安装方式

                    rpm -ivh samba-刚查出的安装包 -f --nodeps

                    rpm -ivh samba-client-刚查出的安装包 -f --nodeps

                    rpm -ivh samba-common-刚查出的安装包 -f --nodeps

                    安装完成在查一次

                    rpm -qa|grep samba              

            安装squid

                     进入/mnt/cdrom/CentOS

                      rpm -ivh squid-*****#(按下tab就出来啦) 

                      安装完成                     

              

 


0 0
原创粉丝点击