全部博文(222)
2010年(222)
分类: LINUX
2010-08-17 20:35:11
【51CTO独家特稿】前言:这篇文章是的续篇,《》系列的第二篇。希望大家看完此文后,能很清楚明白你的服务器的网络情况,能很轻松的配置其网络环境。Linux服务器在装完系统,配置其网络环境是每一个system administrator的职能。
一、服务器的网络配置
在服务器的网络配置时,喜欢图形的朋友可用setup或system-config-network来配置。
网卡配置文件为/etc/sysconfig/network-scripts/ifcfg-eth0,设置完毕后直接用service network restart生效
GATEWAY选项可以,这里注意下ONBOOT选项,它表示网卡是否随系统启动而启动,此项一定要设置成on
这里介绍二个不是太常用的参数
查看本机所有的网卡情况 ifconfig –a,更高级的网卡路由命令用ip addr,特别是你的服务器由keepalived绑定了虚拟VIP后用其查看很方便查看本机路由 netstat –rn或route
增加一条本机网络路由用命令route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.25,即增加一条网络172.16.6.0/24 经过172.16.2.254 ,这个地址也可以理解为你的下一跳的地址
如果要永久的生效可用文件编辑的办法
它的执行顺序是优于DNS的,现在多用于集群环境,比如Heartbeat;还有一个妙用,在没用DNS的环境中做测试时,直接改服务器的此文件,达到优先解析的目的查看与本机直连的网络设备用命令arp
这里跟大家介绍一个很有用的工具,mii-tool,判断哪块网卡连接了网线,同事们靠抽插网线来判断哪个网卡连接了网线的办法比较没有效率
大家看这段文字可能没什么感觉,但到了机房就非常有用了,特别是那些网卡多的服务器,我见得最多的某台Linux服务器上绑定了六块网卡。
二、查看你的服务器网络连接状态
状态:描述
◆CLOSED:无连接是活动的或正在进行
◆LISTEN:服务器在等待进入呼叫
◆SYN_RECV:一个连接请求已经到达,等待确认
◆SYN_SENT:应用已经开始,打开一个连接
◆ESTABLISHED:正常数据传输状态
◆FIN_WAIT1:应用说它已经完成
◆FIN_WAIT2:另一边已同意释放
◆ITMED_WAIT:等待所有分组死掉
◆CLOSING:两边同时尝试关闭
◆TIME_WAIT:另一边已初始化一个释放
◆LAST_ACK:等待所有分组死掉
ESTABLISHED的值其实也是当前的并发数,这个可重点关注下;另外,可关注下TIME——WAIT这项的数值。Linux下高并发的Squid服务器,TCP TIME_WAIT套接字数量经常达到两、三万,服务器很容易被拖死。通过修改Linux内核参数,可以减少Squid服务器的TIME_WAIT套接字数量,具体可参见我的另一篇文章:。
三、 寻找恶意IP并用iptables禁止掉 找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行,有兴趣的请参考我在51cto.com里发表的自动分析黑名单及白名单的iptables脚本一文 iptables脚本执行完毕后,用iptables –nv –L 可查看其规则,下面的iptables语法比较详细,推荐记忆 iptables [-t表名] <-A| I |D |R > 链名[规则编号] [-i | o 网卡名称] [-p 协议类型] [-s 源IP地址 | 源子网][--sport 源端口号] [-d 目标IP地址 | 目标子网][--dport 目标端口号] <-j 动作> 四、SMTP会话处理方式 捕获一个SMTP会话,以下命令很管用,推荐下 ;不喜欢用命令的同学我推荐用wireshark 五、打印自动运行服务 打印出自动运行的服务,3、5级别的即可;当然喜欢图形的同学可用ntsysv工具。 六、使用Netstat查看协议数据 Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。 一般用得比较多的就是netstat -an与netstat –rn 七、使用lsof查看文件信息 在unix里面,一切皆文件;而Linux秉承了这一特性,将unix下的工具lsof移植过来得很成功。lsof可以列出被进程所打开的文件的信息。 被打开的文件可以是 1.普通的文件 2.目录 3.网络文件系统的文件 4.字符设备文件 5.(函数)共享库 6.管道,命名管道 7.符号链接 8.底层的socket字流。网络socket,unix域名socket,用得比较多的用法是lsof -i:端口号,列出谁在使用某个端口,例如:lsof -i :3306,我喜欢用此用法来判断服务到底有没有正常启用。 八、使用fuser查看和杀死相关进程 与lsof –i的用法相法,如果我想查找占用3306端口的程序,则用fuser –n tcp -v 8080,另外,fuser的其它功能也是很强大的,我常用的它的两个功能:查看我需要的进程和我要杀死我查到的进程(抚琴煮酒是一般用来解决device is busy的问题) 比如当你想umount光驱的时候,结果系统提示你设备正在使用或者正忙,可是你又找不到到底谁使用了他。这个时候fuser可派上用场了。 示例中,我想弹出光驱,系统告诉我设备忙着,于是采用fuser命令,参数是你文件或scoket,fuser将查出那些使用了他。4561c,5382c表示目前用两个进程在占用着/mnt/cdrom,分别是4561,5382,进程ID后的字母表示占用资源的方式。 九、TCP_wrappers防火墙 linux上一种特殊的防火墙TCP_wrappers防火墙,TCP 封包会先经过所谓的 IP 过滤机制( IP Filtering ),这是 Linux 提供的第一层保护,他可以将你不想要的来源 IP (经由 TCP 封包的 Head 资料)先当掉再说!如果可以通过的话,在就是要通过TCP_wrappers过滤。如果上面两个都通过了,再就根据每个服务访问控制的设定决定客户机能得到不同的权限和信息.TCP_wrappers防火墙主要涉及到两个文件/etc/hosts.allow和/etc/hosts.deny,可作iptables的补充来保护你的Linux安全,比如只允许内网IP访问你的NFS服务器。 这里说下Linux是怎么识别其顺序的,这里好多朋友容易混淆了;当某个ip想访问你的Linux下的特定服务时,系统首先会检查/etc/hosts.alllow文件,如是有的话就放行,没有的话继续检查/etc/hosts.deny文件,有的话拒绝,没有的就放行,不过一般的做法就直接在/etc/hosts.allow里放允许通行的ip,/etc/hosts.deny里放不允许通行的ip。另外,这里跟大家分享一个经验心得吧: Linux下的服务众多,samba,nfs,rsync,tcp_wrapper,xinetd等,而每个又都有各自支持的写法,这样对于考试学习及工作记忆很不方便,其实它们都支持192.168.0.1/255.255.255.0这样的点分十进制写法;另,iptables是不支持的,它只支持192.168.0.1/24比特建网制。 十、推荐下Linux/unix中常用的扫描端口工具-Nmap 下面是Nmap支持的四种最基本的扫描方式: 我这里以自己的线上邮件服务器为例说明下: lsof -i:1014,发现又是rpc.statd,这东东,每次用的端口都不一样啊;它不能正确处理SIGPID信号,远程攻击者可利用这个漏洞关闭进程,进行拒绝服务攻击;发现rpc.statd是由服务nfslock开启,关闭它即可service nfslock stop;chkconfig nfslock off 关于网站的安全,我这里也有一些自己的浅见,特与大家共享下: