Linux如何配置网络游戏服务器?
要建立一个安全Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置。在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,也许你需要编辑这些文件来完成联网工作,但是这些配置文件大都可以通过配置命令linuxconf(其中网络部分的配置可以通过netconf命令来实现)命令来实现。下面介绍基本的TCP/IP网络配置文件。
/etc/confmodules文件
该配置文件定义了各种需要在启动时加载的模块的参数信息。这里主要着重讨论关于网卡的配置。在使用Linux做网关的情况下,Linux服务器至少需要配置两块网卡。为了减少启动时可能出现的问题,Linux内核不会自动检测多个网卡。对于没有将网卡的驱动编译到内核而是作为模块动态载入的系统若需要安装多块网卡,应该在“confmodules”文件中进行相应的配置。
若设备驱动被编译为模块(内核的模块):对于PCI设备,模块将自动检测到所有已经安装到系统上的设备;对于ISA卡,则需要向模块提供IO地址,以使模块知道在何处寻找该卡,这些信息在“/etc/confmodules”中提供。
例如,我们有两块ISA总线的3c509卡,一个IO地址是0x300,另一个是0x320。编辑“confmodules”文件如下:
aliaseth03c509
aliaseth13c509
options3c509io=0x300,0x320
这是说明3c509的驱动程序应当分别以eth0或eth1的名称被加载(aliaseth0,eth1),并且它们应该以参数io=0x300,0x320被装载,来通知驱动程序到哪里去寻找网卡,其中0x是不可缺少的。
对于PCI卡,仅仅需要alias命令来使ethN和适当的驱动模块名关联,PCI卡的IO地址将会被自动的检测到。对于PCI卡,编辑“confmodules”文件如下:
aliaseth03c905
aliaseth13c905
若驱动已经被编译进了内核:系统启动时的PCI检测程序将会自动找到所有相关的网卡。ISA卡一般也能够被自动检测到,但是在某些情况下,ISA卡仍然需要做下面的配置工作:
在“/etc/liloconf”中增加配置信息,其方法是通过LILO程序将启动参数信息传递给内核。对于ISA卡,编辑“liloconf”文件,增加如下内容:
append="ether="0,0,eth0ether="0,0,eth1"
注:先不要在“liloconf”中加入启动参数,测试一下你的ISA卡,若失败再使用启动参数。
如果用传递启动参数的方法,eth0和eth1将按照启动时被发现的顺序来设置。
/etc/HOSTNAME文件
该文件包含了系统的主机名称,包括完全的域名,如:deepopenarchcom。
/etc/sysconfig/network-scripts/ifcfg-ethN文件
在RedHat中,系统网络设备的配置文件保存在“/etc/sysconfig/network-scripts”目录下,ifcfg-eth0包含第一块网卡的配置信息,ifcfg-eth1包含第二块网卡的配置信息。
下面是“/etc/sysconfig/network-scripts/ifcfg-eth0”文件的示例:
DEVICE=eth0
IPADDR=2081641861
NETMASK=2552552550
NETWORK=2081641860
BROADCAST=208164186255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
若希望手工修改网络地址或在新的接口上增加新的网络界面,可以通过修改对应的文件(ifcfg-ethN)或创建新的文件来实现。
DEVICE=name name表示物理设备的名字
IPADDR=addr addr表示赋给该卡的IP地址
NETMASK=mask mask表示网络掩码
NETWORK=addr addr表示网络地址
BROADCAST=addr addr表示广播地址
ONBOOT=yes/no 启动时是否激活该卡
none:无须启动协议
bootp:使用bootp协议
dhcp:使用dhcp协议
USERCTL=yes/no 是否允许非root用户控制该设备
/etc/resolvconf文件
该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件,示例如下:
searchopenarchcom
nameserver2081641861
nameserver2081641862
“searchdomainnamecom”表示当提供了一个不包括完全域名的主机名时,在该主机名后添加domainnamecom的后缀;“nameserver”表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的。
/etc/hostconf文件
该文件指定如何解析主机名。Linux通过解析器库来获得主机名对应的IP地址。下面是一个“/etc/hostconf”的示例:
orderbind,hosts
multion
ospoofon
“orderbind,hosts”指定主机名查询顺序,这里规定先使用DNS来解析域名,然后再查询“/etc/hosts”文件(也可以相反)。
“multion”指定是否“/etc/hosts”文件中指定的主机可以有多个地址,拥有多个IP地址的主机一般称为多穴主机。
“nospoofon”指不允许对该服务器进行IP地址欺骗。IP欺骗是一种攻击系统安全的手段,通过把IP地址伪装成别的计算机,来取得其它计算机的信任。
/etc/sysconfig/network文件
该文件用来指定服务器上的网络配置信息,下面是一个示例:
NETWORK=yes
RORWARD_IPV4=yes
HOSTNAME=deepopenarchcom
GAREWAY=0000
GATEWAYDEV=
NETWORK=yes/no 网络是否被配置;
FORWARD_IPV4=yes/no 是否开启IP转发功能
HOSTNAME=hostnamehostname表示服务器的主机名
GAREWAY=gw-ip gw-ip表示网络网关的IP地址
GAREWAYDEV=gw-dev gw-dw表示网关的设备名,如:etho等
注意:为了和老的软件相兼容,“/etc/HOSTNAME”文件应该用和HOSTNAME=hostname相同的主机名。
/etc/hosts文件
当机器启动时,在可以查询DNS以前,机器需要查询一些主机名到IP地址的匹配。这些匹配信息存放在/etc/hosts文件中。在没有域名服务器情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址。
下面是一个“/etc/hosts”文件的示例:
IPAddress Hostname Alias
127001 Localhost Gateopenarchcom
2081641861 gateopenarchcomGate
………… ………… ………
最左边一列是主机IP信息,中间一列是主机名。任何后面的列都是该主机的别名。一旦配置完机器的网络配置文件,应该重新启动网络以使修改生效。使用下面的命令来重新启动网络:/etc/rcd/initd/networkrestart
/etc/inetdconf文件
众所周知,作为服务器来说,服务端口开放越多,系统安全稳定性越难以保证。所以提供特定服务的服务器应该尽可能开放提供服务必不可少的端口,而将与服务器服务无关的服务关闭,比如:一台作为www和ftp服务器的机器,应该只开放80和25端口,而将其他无关的服务如:fingerauth等服务关掉,以减少系统漏洞。
而inetd,也叫作“超级服务器”,就是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求。inetdconf则是inetd的配置文件。inetdconf文件告诉inetd监听哪些网络端口,为每个端口启动哪个服务。在任何的网络环境中使用Linux系统,第一件要做的事就是了解一下服务器到底要提供哪些服务。不需要的那些服务应该被禁止掉,最好卸载掉,这样黑客就少了一些攻击系统的机会。查看“/etc/inetdconf”文件,了解一下inetd提供哪些服务。用加上注释的方法(在一行的开头加上#号),禁止任何不需要的服务,再给inetd进程发一个SIGHUP信号。
第一步:把文件的许可权限改成600。
[root@deep]#chmod600/etc/inetdconf
第二步:确信文件的所有者是root。
[root@deep]#stat/etc/inetdconf
第三步:编辑“inetdconf”文件(vi/etc/inetdconf),禁止所有不需要的服务,如:ftp、telnet、shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth,等等。如果你觉得某些服务有用,可以不禁止这些服务。但是,把这些服务禁止掉,系统受攻击的可能性就会小很多。改变后的“inetdconf”文件的内容如下面所示:
#Tore-readthisfileafterchanges,justdoa'killall-HUPinetd'
#
#echostreamtcpnowaitrootinternal
#echodgramudpwaitrootinternal
#discardstreamtcpnowaitrootinternal
#discarddgramudpwaitrootinternal
#daytimestreamtcpnowaitrootinternal
#daytimedgramudpwaitrootinternal
#chargenstreamtcpnowaitrootinternal
#chargendgramudpwaitrootinternal
#timestreamtcpnowaitrootinternal
#timedgramudpwaitrootinternal
#
#Thesearestandardservices
#
#ftpstreamtcpnowaitroot/usr/sbin/tcpdinftpd-l-a
#telnetstreamtcpnowaitroot/usr/sbin/tcpdintelnetd
#
#Shell,login,exec,comsatandtalkareBSDprotocols
#
#shellstreamtcpnowaitroot/usr/sbin/tcpdinrshd
#loginstreamtcpnowaitroot/usr/sbin/tcpdinrlogind
#execstreamtcpnowaitroot/usr/sbin/tcpdinrexecd
#comsatdgramudpwaitroot/usr/sbin/tcpdincomsat
#talkdgramudpwaitroot/usr/sbin/tcpdintalkd
#ntalkdgramudpwaitroot/usr/sbin/tcpdinntalkd
#dtalkstreamtcpwaitnobody/usr/sbin/tcpdindtalkd
#
#Popandimapmailservicesetal
#
#pop-2streamtcpnowaitroot/usr/sbin/tcpdipop2d
#pop-3streamtcpnowaitroot/usr/sbin/tcpdipop3d
#imapstreamtcpnowaitroot/usr/sbin/tcpdimapd
#
#TheInternetUUCPservice
#
#uucpstreamtcpnowaituucp/usr/sbin/tcpd/usr/lib/uucp/uucico-l
#
#TftpserviceisprovidedprimarilyforbootingMostsites
#runthisonlyonmachinesactingas"bootservers"Donotuncomment
#thisunlessyouneedit
#
#tftpdgramudpwaitroot/usr/sbin/tcpdintftpd
#bootpsdgramudpwaitroot/usr/sbin/tcpdbootpd
#
#Finger,systatandnetstatgiveoutuserinformationwhichmaybe
#valuabletopotential"systemcrackers"Manysiteschoosetodisable
#someoralloftheseservicestoimprovesecurity
#
#fingerstreamtcpnowaitroot/usr/sbin/tcpdinfingerd
#cfingerstreamtcpnowaitroot/usr/sbin/tcpdincfingerd
#systatstreamtcpnowaitguest/usr/sbin/tcpd/bin/ps-auwwx
#netstatstreamtcpnowaitguest/usr/sbin/tcpd/bin/netstat-finet
#
#Authentication
#
#authstreamtcpnowaitnobody/usr/sbin/inidentdinidentd-l-e-o
#
#Endofinetdconf
注意:改变了“inetdconf”文件之后,别忘了给inetd进程发一个SIGHUP信号(killall–HUPinetd)。
[root@deep/root]#killall-HUPinetd
第四步:
为了保证“inetdconf”文件的安全,可以用chattr命令把它设成不可改变。把文件设成不可改变的只要用下面的命令:
[root@deep]#chattr+i/etc/inetdconf
这样可以避免“inetdconf”文件的任何改变(意外或是别的原因)。一个有“i”属性的文件是不能被改动的:不能删除或重命名,不能创建这个文件的链接,不能往这个文件里写数据。只有系统管理员才能设置和清除这个属性。如果要改变inetdconf文件,你必须先清除这个不允许改变的标志:
[root@deep]#chattr-i/etc/inetdconf
但是对于诸如sendmail,named,www等服务,由于它们不象finger,telnet等服务,在请求到来时由inet守护进程启动相应的进程提供服务,而是在系统启动时,作为守护进程运行的。而对于redhatlinux,提供了一个linuxconfig命令,可以通过它在图形界面下交互式地设置是否在启动时运行相关服务。也可以通过命令来设置是否启动时启动某个服务,如:[root@deep]#chkconfig–level35namedoff
具体命令可以参考manchkconfig的说明。
/etc/hostsallow文件
但是对于telnet、ftp等服务,如果将其一同关闭,那么对于管理员需要远程管理时,将非常不方便。Linux提供另外一种更为灵活和有效的方法来实现对服务请求用户的限制,从而可以在保证安全性的基础上,使可信任用户使用各种服务。Linux提供了一个叫TCPwrapper的程序。在大多数发布版本中该程序往往是缺省地被安装。利用TCPwrapper你可以限制访问前面提到的某些服务。而且TCPwrapper的记录文件记录了所有的企图访问你的系统的行为。通过last命令查看该程序的log,管理员可以获知谁曾经或者企图连接你的系统。
在/etc目录下,有两个文件:hostsdenyhostsallow通过配置这两个文件,你可以指定哪些机器可以使用这些服务,哪些不可以使用这些服务。
当服务请求到达服务器时,TCPwrapper就按照下列顺序查询这两个文件,直到遇到一个匹配为止:
1当在/etc/hostsallow里面有一项与请求服务的主机地址项匹配,那么就允许该主机获取该服务
2否则,如果在/etc/hostsdeny里面有一项与请求服务的主机地址项匹配,就禁止该主机使用该项服务。
3如果相应的配置文件不存在,访问控制软件就认为是一个空文件,所以可以通过删除或者移走配置文件实现对清除所有设置。在文件中,空白行或者以#开头的行被忽略,你可以通过在行前加#实现注释功能。
配置这两个文件是通过一种简单的访问控制语言来实现的,访问控制语句的基本格式为:
程序名列表:主机名/IP地址列表。
程序名列表指定一个或者多个提供相应服务的程序的名字,名字之间用逗号或者空格分割,可以在inetdconf文件里查看提供相应服务的程序名:如上面的文件示例中,telent所在行的最后一项就是所需的程序名:intelnetd。
主机名/IP地址列表指定允许或者禁止使用该服务的一个或者多个主机的标识,主机名之间用逗号或空格分隔。程序名和主机地址都可以使用通配符,实现方便的指定多项服务和多个主机。
Linux提供了下面灵活的方式指定进程或者主机列表:
1一个以""起始的域名串,如ammsaccn那么wwwammsaccn就和这一项匹配
2以""结尾的IP串如20237152那么IP地址包括20237152的主机都与这一项匹配。
3格式为nnnn/mmmm表示网络/掩码,如果请求服务的主机的IP地址与掩码的位与的结果等于nnnn那么该主机与该项匹配。
4ALL表示匹配所有可能性
5EXPECT表示除去后面所定义的主机。如:list_1EXCEPTlist_2表示list_1主机列表中除去List_2所列出的主机
6LOCAL表示匹配所有主机名中不包含""的主机
上面的几种方式只是Linux提供的方式中的几种,但是对于我们的一般应用来说是足够了。我们通过举几个例子来说明这个问题:
例一:我们只希望允许同一个局域网的机器使用服务器的ftp功能,而禁止广域网上面的ftp服务请求,本地局域网由20239154、20239153和20239152三个网段组成。
在hostsdeny文件中,我们定义禁止所有机器请求所有服务:
ALL:ALL
在hostsallow文件中,我们定义只允许局域网访问ftp功能:
inftpd-l–a:202391542023915320239152
这样,当非局域网的机器请求ftp服务时,就会被拒绝。而局域网的机器可以使用ftp服务。此外,应该定期检查/var/log目录下的纪录文件,发现对系统安全有威胁的登录事件。last命令可以有效的查看系统登录事件,发现问题所在。
最后tcpdchk是检查TCP_WAPPERS配置的程序。它检查TCP_WAPPERS的配置,并报告它可以发现的问题或潜在的问题。在所有的配置都完成了之后,请运行tcpdchk程序:
[root@deep]#tcpdchk
/etc/services文件
端口号和标准服务之间的对应关系在RFC1700“AssignedNumbers”中有详细的定义。“/etc/services”文件使得服务器和客户端的程序能够把服务的名字转成端口号,这张表在每一台主机上都存在,其文件名是“/etc/services”。只有“root”用户才有权限修改这个文件,而且在通常情况下这个文件是没有必要修改的,因为这个文件中已经包含了常用的服务所对应的端口号。为了提高安全性,我们可以给这个文件加上保护以避免没有经过授权的删除和改变。为了保护这个文件可以用下面的命令:
[root@deep]#chattr+i/etc/services
/etc/securetty文件
“/etc/securetty”文件允许你规定“root”用户可以从那个TTY设备登录。登录程序(通常是“/bin/login”)需要读取“/etc/securetty”文件。它的格式是:列出来的tty设备都是允许登录的,注释掉或是在这个文件中不存在的都是不允许root登录的。
注释掉(在这一行的开头加上#号)所有你想不让root登录的tty设备。
编辑securetty文件(vi/etc/securetty)象下面一样,注释掉一些行:
tty1
#tty2
#tty3
#tty4
#tty5
#tty6
#tty7
#tty8
使Control-Alt-Delete关机键无效
把“/etc/inittab”文件中的一行注释掉可以禁止用Control-Alt-Delete关闭计算机。如果服务器不是放在一个安全的地方,这非常重要。
编辑inittab文件(vi/etc/inittab)把这一行:
ca::ctrlaltdel:/sbin/shutdown-t3-rnow
改为:
#ca::ctrlaltdel:/sbin/shutdown-t3-rnow
用下面的命令使改变生效:
[root@deep]#/sbin/initq
改变“/etc/rcd/initd/”目录下的脚本文件的访问许可
/etc/rcd/initd/下的脚本主要包含了启动服务的脚本程序。一般用户没有什么必要知道脚本文件的内容。所以应该改变这些脚本文件的权限。
[root@deep]#chmod-R700/etc/rcd/initd/
这样只有root可以读、写和执行这个目录下的脚本。
/etc/rcd/rclocal文件
在默认情况下,当登录装有Linux系统的计算机时,系统会告诉你Linux发行版的名字、版本号、内核版本和服务器名称。这泄露了太多的系统信息。最好只显示一个“Login:”的提示信息。
第一步:
编辑“/ect/rcd/rclocal”文件,在下面这些行的前面加上“#”:
--
#Thiswilloverwrite/etc/issueateverybootSo,makeanychangesyou
#wanttomaketo/etc/issuehereoryouwilllosethemwhenyoureboot
#echo"">/etc/issue
#echo"$R">>/etc/issue
#echo"Kernel$(uname-r)on$a$(uname-m)">>/etc/issue
#
#cp-f/etc/issue/etc/issuenet
#echo>>/etc/issue
--
第二步:
删除“/etc”目录下的“issuenet”和“issue”文件:
[root@deep]#rm-f/etc/issue
[root@deep]#rm-f/etc/issuenet
注意:“/etc/issuenet”文件是用户从网络登录计算机时(例如:telnet、SSH),看到的登录提示。同样在“”目录下还有一个“issue”文件,是用户从本地登录时看到的提示。这两个文件都是文本文件,可以根据需要改变。但是,如果想删掉这两个文件,必须向上面介绍的那样把“/etc/rcd/rclocal”脚本中的那些行注释掉,否则每次重新启动的时候,系统又会重新创建这两个文件。
三种存储网络:
DAS:本地存储网络。本地磁盘
SAN:存储域网络。
光纤信道|以太网通道
NAS:网络系统文件。普通协议
Iscsi:scsi
over
tcp/ip上的,物理层:GB以太网卡
数据链路层:MAC
网络层:IP
传输层:3260
共享方式:采用DD的方式新建一个镜像盘,单一设备,完整磁盘,单一分区,LVM,可以是SAN网络。
查看安装:
[root@wmm
~]#
rpm
-aq|grep
scsi-target-utils服务器端
scsi-target-utils-1024-2el6x86_64
[root@wmm
~]#
rpm
-aq|grep
scsi-initial-utils
[root@wmm
~]#
yum
-y
install
scsi-initial-utils
采用文件镜像作为iscsi-target
[root@wmm
~]#
dd
if=/dev/zero
of=/srv/iscsi/disk1img
bs=1M
count=500
记录了500+0
的读入
记录了500+0
的写出
524288000字节(524
MB)已复制,134097
秒,391
MB/秒
[root@wmm
~]#
fdisk
/dev/sdb
WARNING:
DOS-compatible
mode
is
deprecated
It's
strongly
recommended
to
switch
off
the
mode
(command
'c')
and
change
display
units
to
sectors
(command
'u')
Command
(m
for
help):
n
Command
action
e
extended
p
primary
partition
(1-4)
p
Partition
number
(1-4):
1
First
cylinder
(1-2610,
default
1):
Using
default
value
1
Last
cylinder,
+cylinders
or
+size{K,M,G}
(1-2610,
default
2610):
+1000M
Command
(m
for
help):
wq
The
partition
table
has
been
altered!
Calling
ioctl()
to
re-read
partition
table
Syncing
disks
[root@wmm
~]#
partprobe更新到内核中
Warning:
WARNING:
the
kernel
failed
to
re-read
the
partition
table
on
/dev/sda
(设备或资源忙)
As
a
result,
it
may
not
reflect
all
of
your
changes
until
after
reboot
创建LV
[root@wmm
~]#
partprobe
Warning:
WARNING:
the
kernel
failed
to
re-read
the
partition
table
on
/dev/sda
(设备或资源忙)
As
a
result,
it
may
not
reflect
all
of
your
changes
until
after
reboot
[root@wmm
~]#
pvcreate
/dev/sdb1
Writing
physical
volume
data
to
disk
"/dev/sdb1"
Physical
volume
"/dev/sdb1"
successfully
created
创建VG
[root@wmm
~]#
vgcreate
server
/dev/sdb1
Volume
group
"server"
successfully
created
创建LV
[root@wmm
~]#
lvcreate
-L
1G
-n
iscsi01
server可以采用500PE
[root@wmm
~]#
service
iptables
stop
iptables:清除防火墙规则:
[确定]
iptables:将链设置为政策
ACCEPT:nat
mangle
filter
[确定]
iptables:正在卸载模块:
编辑配置文件:
[root@wmm
~]#
vim
/etc/tgt/targetsconf
如何在Linux操作系统下搭建ipv6ftp服务器?
Linux下可以配置vsftp服务来实现FTP的部署。
配置支持ipv6地址的服务只要启用listen_ipv6=yes将ipv6的监听设置开启即可。
当然具体配置没有那么简单,比如设置用户权限拉,部署过程中出现错误和排错拉。最好百度一下配置说明。
如何在自己的linux服务器上搭建网站?
首先需要基本的linux系统知识,在linux系统之上安装web服务组件诸如LAMPLNMPTengine等等,然后需要基本的前/后端语言知识,比如htmlphpcssjs等将网站代码防治到已经架设好的web服务器上就可以实现访问了,最后注册一个域名做好域名解析。
在Linux中,最常用的FTP服务软件当数wu-ftpd,如果在安装linux时没安装上它。你可从光盘或者网站rpmfindnet/linux/RPM/WbyNamehtml获取它的RPM包:wu-ftpd-260-9i386rpm。然后执行以下命令完成安装:
rpm -ivh wu-ftpd-260-9i386rpm
编辑 "/etc/inetdconf" 文件,指向新的ftpd守护进程,如下所示:
ftp stream tcp nowait root /usr/sbin/tcpd inftpd -l -a
到此为止,你的Linux就可以接受FTP服务了。
方法/步骤
1,检查linux是否已安装samba;
检查命令为:rpm –qa |grep samba;
如果没有输出什么信息,表明没有安装,需要到百度下载安装
2,建立共享文件夹,命令如下:
mkdir /home/fileshare;
设置好文件夹权限,命令如下:
Chmod 755 fileshare;
建立samba用户;
groupadd fileshare
useradd –s /sbin/nologin file
smbpasswd –a file
注意:访问共享的用户必须为samba用户,不能使用其他用户;
修改sambe配置文件;命令如下:
vim /etc/samba/smbconf;
修改samba配置文件全局设置;
#==============================Global settings===============
[global] workgroup = WORKGROUP server string = Samba Server security = share
设置文件夹共享,如下:
[sharefile] path = /home/sharefile public = yes read only = yes
重启smb服务;
systemctl start smb;
这样就可以了
1、首先需要登入安装了Linux系统的计算机,安装Samba。Fedora发行版一般使用yum工具安装Samba服务器,可以使用“rpm -q samba”查询Samba服务器是否已经安装,当然,也可以直接使用“yum install samba”安装Samba服务器。如果Samba已经安装,yum会给出提示,否则按照步骤,输入“y”就可以直接下载安装Samba服务器了。
2、安装完成之后,需要查看一下Samba是否已经加入到自启动服务。使用“/sbin/chkconfig | grep smb”和“/sbin/chkconfig | grep nmb”命令可以查看smb和nmb是否加入到系统服务。(SMB是Samba共享服务,nmb是NetBIOS服务,为配合Windows使用,他们两个服务都要加入到系统服务中)。然后再使用“/sbin/service smb status”和“/sbin/service nmb status”查看服务是否已经启用。
3、接下来就要配置samba服务器了。编辑修改“/etc/samba/smbconf”,设置共享和认证参数。编辑修改完成之后,可以使用“testparm /etc/samba/smbconf”验证配置文件的有效性,以免因配置文件错误而导致Samba服务无法启动。
4、验证OK的话,接下来就是添加Samba共享用户了,使用“/usr/bin/smbpasswd -a <用户名称>”的方式添加Samba共享用户,并为每个用户设置Samba共享认证的密码。
5、到这里基本上Samba服务器配置就完成了,如果上述步骤中smb和nmb服务没有自动添加到系统服务中,可以使用“/sbin/chkconfig --level 2345 smb on”和“/sbin/chkconfig --level 2345 nmb on”将其加入到系统服务中,其中2345是Linux的运行级别,一般都不会超出这几个运行级别。然后我们就可以使用“/sbin/service smb restart”和“/sbin/service nmb restart”重启服务了。
6、重启完成之后,Windows就可以访问用户共享了。在Windows资源管理器输入“\\共享IP地址\共享用户”,就可以访问用户自己目录下的全部文件了。
LINUX下双网双线服务器的架设全过程
目的: 现在很多中小型网络有两条或者多条相同的不同的ISP的网络出口线路
而如何将这两条线路合理的利用起来 是很多人非常关心的
西安秀网吧资讯会为大家提供更多更好的学习资料和知
此文用通俗易懂的方法的讲解了如何初步达到此目的 本方案不需要大量的投资
也不需要改变现有网络结构 并且可扩展性好! 环境:用基于LINUX路由功能 由22内核开始,
Linux便开始支持高级路由技术,提供策略路由,流量控制等多项高级路由功能,
配合Netfilter包过滤软件,可实现许多专业路由器和防火墙才能实现的高级功能
本方案采用RedHat 90 系统基础 系统自带 IPTABLES 和 IPROUTER2 软件,
申明:本方案为了表达一个通俗易懂的称述 很多地方采用大白话方式进行说明,
这对技术来说是不严谨的态度,并且在文中可能出现很多错误,欢迎指正
希望有更多人能使用此方案而达到自己的目的 可以用在论坛上联系,
写的很乱还请大家见谅!
约定:对于具体#作,都是基于Shell下的,就是所谓终端,控制台
我将用横线阁开,可以看成实际的#作,后面的针对解释 均采用汉字通俗解
但不能作为实际#作!
一、 硬件选择和实施:
1。本人在实际#作中选择了 C3 1G CPU INTEL 815ET芯片组主板(集成显卡) 128M SDRAM 三张网卡 均是RTL 8139 10/100M 自适应网卡 3G大小心的一块老硬盘 RedHat 90系统盘 光驱 键盘 鼠标 显示器|
为安装使用 过后拆掉,在各个实际环境里 选择方案不一定要相同 ,但是本人建议 CPU 不低于233M 内存不低于64M 网卡尽量不用8029等10M 设备,如果有条件可以选择不同的主流网卡 其他 主是要求稳定
2。安装系统 根据硬盘大小以及个人情况 可任意方式安装 提示以及建议:
A : 如果分区不是很清楚 可以用 光盘上的PQ 将硬盘分区 第一次接触的,采用 将6G以下的空间分成EXT3格式的分区 然后接着一256M左右的SWP交换分区
B。 网卡先别一次性装上, 可先将要用于内网的网卡,先插上,以后系统安装成功以后再依次插上其他网卡 以免混淆!在安装的时候 可以完全默认的方式 并且 尽量采用 英文安装 ,不装XWINDOWS 也就是可以一路 NEXT下去!!!
3。建立用户 除了系统自带的 root 超级管理员帐户以外 请建立1-2个普通用户! 更具体的安装#作 请搜寻网络上其他的文章!或者联系我,有非常详细的称述!
二、 单机的配置 这一步很重要 包括设置好网卡 如果是ADSL的PPOE的拨号方式 还必须设置ADSL上网 并且弄清楚 在硬件上的每一块网卡和系统里面的网卡的对应关系!
参考模型 eth0———接内网 RD90 LINUX eth1———接外网线路 1 eth2———接外网线路
2 注意 : 在LINUX中表示的以态网卡的方式是ethX X代表的是第几个设备,对于排序 请根据系统的自设定 然后人为找到对应的网卡,可以采用每张网卡接一条线进行 Ping 的方式确定!
在下面这种情况下 将 eth0 (内网)设置为 IP: 19216801 Netmask:2552552550 Gateway网关:无 eth1 (线路一) 假如 IP : 21862211 Netmask:2552552550 Gateway网关:218621 eth2(线路二)假如 IP :10002 Netmask:2552552550 Gateway: 10001 实际#作方式: ———————————————————– ifconfig eth0 19216801 netmask 2552552550 ifconfig eth1 218621 netmask 2552552550 ifconfig eth2 10001 netmask 2552552550 ———————————————————– 格式为: ifconfig 设备名 IP地址 netmask 子网掩码 直接输入 ifconfig 不带任何参数的话 系统将显示当前网络接口信息
至于更详细的#作方法请参考其他资料! 这样 就初步设置好了
各个网络接口的 IP地址等! 但是 这样的设置 可能在重起系统以后就会失效
那么最直接的方法是 修改 文件!
(在LINUX下 很多地方可以直接修改文件的方式实现,特别是没有X的时候,显得特别重要,也最有效!
—— vi /etc/sysconfig/network-scripts/ifcfg-eth0
进入VIM编辑界面 按 “i” 进入编辑模式 大致修改为以下内容
请注意 当一块网卡被系统正常检测 只需要改变“=”后面的内容: DEVICE = eth0 ———》设备名,
一般系统自动赋予 ONBOOT = yes ———》是否开机激活 默认 “yes”
BROADCAST =1921680255 ———》
广播地址 NETWORK = 19216800 ———》
网络地址 NETMASK = 2552552550 ———》
子网掩码 IPADDR = 19216801 ———》
IP地址 提示 BROADCAST =1921680255
和NETWORK = 19216800 可以根据IP地址来
当掩码是 24位 (2552552550) 时 BROADCAST是IP地址最后一位变255 NETWORK是 IP地址最后一位变0
修改成功以后 按 “ESC”键 然后 Shift+; 号键,出现“:”提示符 在 “:”提示符下面 输入 “w” 并回车 就将设置保存了,然后输入 “q”退出编辑界面
注意:如果你的eth0也是 用于内网
那么请将 GATEWAAY= 项删除 其他两张网卡,则必须要!!!
如果你装了X 那么可以在图形界面下,才用更合适的工具软件进行修改! ————————————————– vim /etc/sysconfig/network-scripts/ifcfg-eth1 ————————————————- 上面命令进入设置 eth1 ———————————————— vim /etc/sysconfig/network-scripts/ifcfg-eth2 —————————–
上面命令进入设置 eth2 设置 DNS 一般情况下
如果当系统检测到网卡并且要求你设置的时候 你就可以将DNS 加入 但是如果你想修改的话,最直接的方法为编辑DNS文件 ——————————
vim /etc/resolvconf ——————————— 加入DNS IP地址 格式为 nameserver 202989668 nameserver 61139269 等
具体DNS IP即可 当以上设置都正常进行以后
重起系统, 检测设置 ——————————————– ping 19216801 ping 10002 ping 21862211 ——————————————
检测正确性 (用Ctrl+C结束) 然后 ,将外网卡正确接入网络 至少你确定能上网!
不管他是用的哪条线路!!!!!!!! 如果一切正常 那么就表示系统的配置基本正确。
三、多路复用 接下来, 我们 就可以用系统本身的功能以及软件进行路由规则设置
前面已经提到 22以上内核已经带有很多的高级功能
而RedHat 90采用采用的是2420的内核版本 是公认的比较稳定的,
当然 你可以选择重新编译升级内核的方式 升级到26X 版本的内核,体验更新的功能,
但是这不是本文所要考虑的内容。
在我们将多路复用之前 最好是先打上两个补丁 A 因为路由缓存的机制,
所以在某一时间断 连接到某一点上的线路是不变的,而必须等到失效才能重新选择,(
对于RedHat90的系统内核 需要打这之PATH
下载地址为: http://wwwssibg/~ja/patch-2420-ja1diff 这之PATCH 解决了在系统内核中equailze参数不生效的问题 http://wwwteatimecomtw/~tommy/linux/equalizepatch 将这两个PATCH 下载到本地 比如 直接放在 /root目录下那么这样做,
将PATCH补进内核: ——————————————————– /usr/src/linux-2420-8/patch -p1 ——————————————————— ————————————————- /usr/src/linux-2420-8/patch -p1 ————————————————– 执行完以后 我们就基本上需要的软件都准备齐全了
路由规则: 首先 我们使用 ip route show 命令来显示当前默然的路由规则: ———————————————— ip route show ————————————————- 可以看见 如: 0 lookup local 32766 main 32767 default 这是原有系统的路由规则!
那么 现在 我们使用自己的规则替代或者说将自己的规则的优先级提高于原有规则,
接着 我们创建路由表, 注意 创建的路由表的根据是上面的网络接口 ,
所以请根据我上列举的具体设置来理解 新建命名为 10 和 20的规则
分别针对两个外网线路 规则“10” ———————————————————- ip rule add pref 10 from 21862211 table 10 ———————————————————- 规则“20” ———————————————————- ip rule add pref 20 from 10002 table 20 ———————————————————- 设置main表 ——————————————————— ip route add 218620 dev eth1 src 21862211 ip route add 10000 dev eth2 src 10002 ———————————————————设置完成
上面的只需要根据不同的IP地址以及对应的硬件设备 修改其部分内容即可 题外: 在LINUX路由表中可以使用0-255来代表不同的规则 而且每个规则都可以用别名来表示,
如果大家对此感兴趣 可以查看修改一个文件里面的内容来达到目的: 原文件给出了几个例子包括 lookup、 main、 default
需要自己添加的 按照这样的格式修改: 在空行处插入 : 规则号 规则名称 10 OUT1 保存即可 路由选择的优先级,是数值越小 代表权越大,所以一个路由选择将先查看 0 规则,既 环路 然后查看下一个规则
在本例子中,当一个数据在路由选择的时候,过了0规则 然后就是 10 规则 接着 20 规则 一直往下!直到匹配为止 通过以上设置, 我们就可以控制住通过某一条线路(ISP)的数据包的返回信息也从原线路返回。这将对运行在路由上的所有的进程起作用!!!并且实现了最基本的流量分割,很简单吧! 然后 就是做负载均衡了!可以将不同的请求根据自定设置发往不同的线路!
我们已经安装好了补丁 并且设置好的各种规则, 对于负载均衡,
可以使用这条语句来实现: ————————————————————————————————- ip route replace default \nexthop via 218621 dev eth1 weight via 10001 dev eth2 weight 1 ————————————————————————————————- 50
这样 我们就改变了缺省的路由为多路路由!!!!并且我们可以通过改变 weight 参数的值来指定 一条线路的优先权大于 另有条线路 这在两条线路质量不相同的时候是种不错的选择 -M 5sUvsc
如: —————ip route replace default \nexthop via 218621 dev eth1 weight \ via 10001 dev eth2 weight —————————————————————-
注意:特别 应该指出的是,因为上面的均衡是根据路由进行的,而路由是根据CACHE选择的,所以这样的均衡不是100%的准确,在实际使用中 最多能达的70%的效率,对于经常访问的某一远程站点,会一直使用同一条线路
求通过不同的线路发送,已经快于原先单条线路了。同时,就现阶段而言,没有ISP的配合 是不可能达到100%的精确的!!!! 现在 负载均衡已经基本设置完成了, 你就可以将外网两条线路接上对应的网卡,特别注意 必须是对应的网卡!
仍然用 ping 命令来检测 两条线路是否能在同时 ping 通! ping 线路1ISP出口网关 ping 线路2ISP出口网关 这是一种很好的方法, 各线路的从内网出去以后最先经过的是ISP的网关,并且在正常情况下都是允许 ping 探测的!!
如果都能同, 那么 你已经正确的完成设置了!!!! 你的这台单机已经可以使用两条线路同时上网了,系统在你进行网络连接的时候,根据每条线路的轻重区别 来为你将连接请求合理的分发到两条线路上!! 四、带动内网机器上网 IP伪装(NAT)、端口转发 配置好单机的多重路由功能以后,如何让他冲当内网的网络出口服务器,带动其他机器上网呢,
这将是此节的重点,并且,这部分内容单独来将,已经是将一个LINUX#作系统配置成路由器的具体步骤了! 首先,我们应该确定系统已经安装了IPTABLES 在大多数基于22内核的LINUX#作系统中,已经默认安装了次软件!
通过下面的命令就可以实现 IP伪装
注: 里面几个具体数据将安装本实例问准,我会在后面提到!
A、定义IPTABLES位置(不是必须): ———————————– IPTABLES=”/usr/##in/iptables” —————————–
B、清除原有防火墙规则设置: ———————————– IPTABLES -P INPUT ACCEPT IPTABLES -P FORWARD ACCEPT IPTABLES -P OUTPUT ACCEPT ——————————-
C、清除NAT规则设置 ————————————— IPTABLES -t nat -P PREROUTING ACCEPT IPTABLES -t nat -P POSTROUTING ACCEPT IPTABLES -t nat -P OUTPUT ACCEPT IPTABLES -t mangle -P PREROUTING ACCEPT IPTABLES -t mangle -P OUTPUT ACCEPT——————————-
D、清除在防火墙和NAT中不是默认的连接 ————————————- IPTABLES -F IPTABLES -t nat -F IPTABLES -t mangle -F IPTABLES -X IPTABLES -t nat -X IPTABLES -t mangle -X ————————————
E、载入模块 (必须): ———————————— /##in/depmod -a /##in/modprobe ip_tables /##in/modprobe ip_conntrack /##in/modprobe iptable_filter /##in/modprobe iptable_nat /##in/modprobe ipt_limit /##in/modprobe ipt_state /##in/modprobe ip_conntrack_ftp ————————————-+
F、打开转发功能(必须) ——————————————– echo”1〃 /proc/sys/net/ipv4/ip_forward ——————————————–
G、设置转发规则: ———————————————————————– iptables -t nat -A POSTROUTING -o eth1 -s 19216800/24 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth2 -s 19216800/24 -j MASQUERADE ———————————————————————– A B C D为可选
但是请注意 如果你的IPTABLES不在 /usr/##in/ 这个目录 那么 你最好是选择这几项
并且 该成自己所在的目录 如果你选择了使用B C D 那么 你必须 选择A 就是必须给“IPTABLES” 这个常量赋值,
因为在 LINUX 默认中 全部大写的 IPTABLES 不是一个合法的iptables 命令 当然,如果你的系统已经定义了 iptables 的路径
那么, 将上面的 IPTABLES 换成小写的 iptables 也行! E F G则是必须要的, 当上面的规则成功设置以后, 将你的内网网卡连上交换机 等,修改其他机器的IP地址为 1921680X 掩码为 2552552550 (X为2-254之间) 生效后,就能通过你刚才打造的LINUX路由器上网了!!!
但是这些设备在重起后就会失效,如何解决了
将这些命令写入脚本 让他开机启动 即可达到保存的效果!具体
将各命令写入一文本文件, 并形象的取名 比如,将IPTABLES设置 保存到当前工作目录里面的一个文件 并取名为 nat —————- vi nat —————- #复制内容 IPTABLES=”/usr/##in/iptables” IPTABLES -P INPUT ACCEPT IPTABLES -P FORWARD ACCEPT IPTABLES -P OUTPUT ACCEPT IPTABLES -t nat -P PREROUTING ACCEPT IPTABLES -t nat -P POSTROUTING ACCEPT IPTABLES -t nat -P OUTPUT ACCEPT IPTABLES -t mangle -P PREROUTING ACCEPT IPTABLES -t mangle -P OUTPUT ACCEPTIPTABLES -F IPTABLES -t nat -F IPTABLES -t mangle -F IPTABLES -X IPTABLES -t nat -X IPTABLES -t mangle -X /##in/depmod -a /##in/modprobe ip_tables /##in/modprobe ip_conntrack /##in/modprobe iptable_filter /##in/modprobe iptable_nat /##in/modprobe ipt_limit /##in/modprobe ipt_state /##in/modprobe ip_conntrack_ftp echo “1〃 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth1 -s 19216800/24 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth2 -s 19216800/24 -j MASQUERADE
存盘退出 存盘退出 重起即可生效 (根本不需要用户登陆执行!)
其他脚本也是一样道理 各位 所有基本的#作到此为止 我想 如果你能看完,
那么你自己就完全能用LINUX 打造一个高级路由 不要犹豫 他的性能 绝对敢和市面上价值几大千的路由器成品媲美~!!!
感谢网络上这方面的网站、论坛介绍的很多知识 使我能够独立实施整个方案 并且详尽的写出来! 感谢LINUX 以及无数的开发人员 是他们 给我们构造了一个强大 自由 的#作系统及软件!
接下来,我将对其他更细微的有关#作方法、心得 写下来,希望对现在采用LINUX 类LINUX系统 、软件做路由的朋友有所帮助,
如:断线救援,如何在一条线路断开以后立刻启用另一条线路负担整个网络任务,并且在线路连同以后,又重新自动启用,如何为此提供最详尽的,有效的,简易的方案 一盘秀的技巧设置 如果面对一盘秀的诸多问题了?
让我们一起来 在一张小小的软盘上反转乾坤 高级路由策略 ,想某一个游戏 只走某一条线? 想限制某些人 或者某些机器的上网需求,我们照样能办到,并且能做得更好!!!!!!!!!
动态路由,电信级路由 如何在一台投资根本不多的LINUX 类LINUX机器上 实现更强大的功能,如 各种高级动态路由 并使其有更好的扩充性 和灵活性!!!为我们在网络接入方面多一个选择!!!多一点放心!!! 。。。。。。。。。。。。。。。。。
我将把这个方案中所用到的脚本 和补丁 打包放在网上, 敬请 指正!!!
我于昨日晚,测试完所有的脚本, 包括在两种不同的双线路下测试,
我采用的机器的配置和前一次差不多 P2 433 CPU 128M SDRAM 31G 硬盘 三张8139 10/100M 自适应网卡,上100 M FULL 其他外设,在配置的时候用,
采用RedHat 90 系统,最小化安装 网络具体情况, A环境 100台机器, 一条3M ADSL 固定IP 一条 4M 光纤 线路等值使用 将系统配置好,并让内网机器上网, 使用网络蚂蚁,
在机器1上下载天虎网下 载中心(downtyfocom)的2000 SP4补丁 5线程, 最高速度 450K/S 最低速度 350K/S 平均值 410K/S 在机器2上同时也开5线程下载 绵阳169 下载中心的 2000 SP4 最高速度为 310K/S 最低速度为280K/S 平均为302/S
由此,可以看出, 基本上完全使用了线路的带宽, 并且,是分到两条线路在 进行数据交换, 而我在LINUX路由上,用tcpdump 查看当前系统网络情况, 可以看 出 每条线上都分发的有连接, 并且一个很有趣的现象出现了,
当我在内网机器上 打开网页的时候,他通过 线路1连接到DNS 解析了域名,而又将连接从 线路2发出! B 环境,40台机器 两条等值的带宽相同的 但是不同ISP 的ADSL线路 均为2M 下行 640K 上行速度! 一为电信 一为网通, 而上次有位朋友提到,
当服务器 是电信的时候内网连接可能卡,慢的情况,, 我针对此做了个测试, 在路由中写入 规则,当远程站点为电信IP段的时候,选择电信线路出口,当远程站点IP为网通IP段 的时候,选择网通线路出口, 这样缓冲了交差连接导致网速慢的情况, 但是,另一 个现象发生了,电信线路上感觉比较拥挤 , 在内网同时进行任意游戏,上网,聊天, 下载文件的时候, ADSL线路的请求等待队列都已经比较长, 毕竟ADSL的上行只有 640K 因为机器不是很多 所以感觉不明显,
最后我做了个更详细的规则 1只对北方的或者其他物理位置较远的电信IP 段进行必须通过电信线路这 个规则, 2 对于任意位置的网通IP段必须通过网通线路连接, 过后测试,基本 上两条线路的使用比较均衡, 相对来说,连接到在物理位置上很远的远程站点进行 下载和游戏的不是很多, 因为还有很大一个因素是,远程站点的服务器配置,以及 经过的中间节点的数目及网络性能等,如果你对此还不满意 你可以进行更加细微 的设置 断线救援方面, 很遗憾 在这个环节上,因为ISP的限制,导致此功能在实施 过程中遇见了一点点问题, 因为 我们这里的ISP ,不允许用ICMP探测, 当然,可 以探测到某一条线路的网关, 也就是说,比如一条光纤和一条ADSL 光纤为网关为 218621 ADSL网关为61139541 那么同时ping 这两个IP地址来探测线路情 况,是可行的,, 但是 当某一条线路被停用以后,, 就有可能不能在线路恢复的 时候重新启用 因为,,ISP不运行从光纤线路上去pingADSL网关,当ADSL断掉的时候 ,系统将从路由中删除ADSL连路,只有光纤在使用, 这个时候,不管ADSL是否正常, 都没办法ping 通 ,返回的值永远是”0〃 如果你的地方ISP没有这个限制的话, 就没有这个问题, 并且会执行得很好 针对这个问题,我会考虑在短时间了去寻 找其他的方法!!! 而对于”网络游戏经常断”这个情况, 在线路及服务器正常的情况下是不可能 出现的, 就算有这种情况出现,问题都不在于内部网络的路由上! 如果你是以下情况 那么 你可以采用我的文件,并简单修改,就能实现起强大 的功能, 有3张物理网卡(两条外线),, 或者2张网卡(一条外线)+一固定ADSL 好了,, 废话就到此为止吧! 每个目录下面都有相应的说明文件 详细说明,该目录下面需要改的文件,不需要改的文件,所需修改的文件的具体 位置 约定 : 任何设置文件里面的参数都有统一性, 请注意 最好是保持变量名 的一致 便于项目的设置和问题的查找 如: OUTIF1 代表外网卡设备1 OUTIF2 代表外网卡设备2 GW1 代表外网线路1(OUTIF1)的网关 GW2 代表外网线路2(OUTIF2)的网关 IP1 代表外网网卡1的IP地址 IP2 代表外网网卡2的IP地址 5288 NETMASK1 代表外网网卡1的掩码 NETMASK2 代表外网网卡2的掩码 你仅仅需要修改 引号 “” 里面的对应内容即可 注意 请保证文件的格式 可用 windows的记事本打开, 但是可能将文件 内容表示成连续的段 中间会用 隔开,请不要删除这个空字符 所有文件更改成功以后, 在当前目录下 执行 命令 sh go 等待一分钟左右 系统将重启,在重启后, 所有的设置将生效
0条评论