转自己的东西算原创吧?百度空间发了一道,这边在来发,搬家了,百度空间连类都不可以分,资料很混乱。
初步推断,需要做的事情,有以下几个:
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就出来啦)
安装完成