Linux/Python学习论坛-京峰教育

 找回密码
 立即注册

一键登录:

搜索
热搜: 活动 交友 discuz
查看: 1255|回复: 0

linux网络服务器配置基础2

[复制链接]

203

主题

267

帖子

2295

积分

超级版主

Rank: 8Rank: 8

积分
2295
发表于 2015-3-23 17:17:16 | 显示全部楼层 |阅读模式
本帖最后由 姜伟 于 2015-3-23 17:18 编辑

/etc/hosts.allow文件  
但是对于telnet、ftp等服务,如果将其一同关闭,那么对于管理员需要远程管理时,将非常不方便。linux提供另外一种更为灵活和有效的方法来实现对服务请求用户的限制,从而可以在保证安全性的基础上,使可信任用户使用各种服务。Linux提供了一个叫TCP wrapper的程序。在大多数发布版本中该程序往往是缺省地被安装。利用TCP wrapper你可以限制访问前面提到的某些服务。而且TCP wrapper的记录文件记录了所有的企图访问你的系统的行为。通过last命令查看该程序的log,管理员可以获知谁曾经或者企图连接你的系统。  
在/etc目录下,有两个文件:hosts.deny hosts.allow 通过配置这两个文件,你可以指定哪些机器可以使用这些服务,哪些不可以使用这些服务。  
当服务请求到达服务器时,TCP wrapper就按照下列顺序查询这两个文件,直到遇到一个匹配为止:  
1.当在/etc/hosts.allow里面有一项与请求服务的主机地址项匹配,那么就允许该主机获取该服务  
2.否则,如果在/etc/hosts.deny里面有一项与请求服务的主机地址项匹配,就禁止该主机使用该项服务。  
3.如果相应的配置文件不存在,访问控制软件就认为是一个空文件,所以可以通过删除或者移走配置文件实现对清除所有设置。在文件中,空白行或者以#开头的行被忽略,你可以通过在行前加#实现注释功能。  
配置这两个文件是通过一种简单的访问控制语言来实现的,访问控制语句的基本格式为:
程序名列表:主机名/IP地址列表。  
程序名列表指定一个或者多个提供相应服务的程序的名字,名字之间用逗号或者空格分割,可以在inetd.conf文件里查看提供相应服务的程序名:如上面的文件示例中,telent所在行的最后一项就是所需的程序名:in.telnetd。  主机名/IP地址列表指定允许或者禁止使用该服务的一个或者多个主机的标识,主机名之间用逗号或空格分隔。程序名和主机地址都可以使用通配符,实现方便的指定多项服务和多个主机。  

linux提供了下面灵活的方式指定进程或者主机列表:  
1.一个以"."起始的域名串,如.jfedu.net,那么www.jfedu.net就和这一项匹配  
2.以"."结尾的IP串如202.37.152.那么IP地址包括202.37.152.的主机都与这一项匹配。  
3.格式为n.n.n.n/m.m.m.m表示网络/掩码,如果请求服务的主机的IP地址与掩码的位与的结果等于n.n.n.n,那么该主机与该项匹配。  4.ALL表示匹配所有可能性  
5.EXPECT表示除去后面所定义的主机。如:list_1 EXCEPT list_2 表示list_1主机列表中除去List_2所列出的主机  
6.LOCAL表示匹配所有主机名中不包含"."的主机  

上面的几种方式只是linux提供的方式中的几种,但是对于我们的一般应用来说是足够了。我们通过举几个例子来说明这个问题:  例一:我们只希望允许同一个局域网的机器使用服务器的ftp功能,而禁止广域网上面的ftp服务请求,本地局域网由202.39.154.、202.39.153.和202.39.152.三个网段组成。  
在hosts.deny文件中,我们定义禁止所有机器请求所有服务:  
ALL:ALL  在hosts.allow文件中,我们定义只允许局域网访问ftp功能:  
in.ftpd -l –a: 202.39.154 202.39.153. 202.39.152.  
这样,当非局域网的机器请求ftp服务时,就会被拒绝。而局域网的机器可以使用ftp服务。此外,应该定期检查/var/log目录下的纪录文件,发现对系统安全有威胁的登录事件。last命令可以有效的查看系统登录事件,发现问题所在。  
最后tcpdchk是检查TCP_WAPPERS配置的程序。它检查TCP_WAPPERS的配置,并报告它可以发现的问题或潜在的问题。在所有的配置都完成了之后,请运行tcpdchk程序:  
[root@deep]# tcpdchk* /etc/services文件  端口号和标准服务之间的对应关系在RFC 1700 “Assigned Numbers”中有详细的定义。“/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 -r now  改为:  #ca::ctrlaltdel:/sbin/shutdown -t3 -r now  
用下面的命令使改变生效:  
[root@deep]# /sbin/init q* 改变“/etc/rc.d/init.d/”目录下的脚本文件的访问许可  
/etc/rc.d/init.d/下的脚本主要包含了启动服务的脚本程序。一般用户没有什么必要知道脚本文件的内容。所以应该改变这些脚本文件的权限。  
[root@deep]# chmod -R 700 /etc/rc.d/init.d/*  这样只有root可以读、写和执行这个目录下的脚本。

/etc/rc.d/rc.local文件  在默认情况下,当登录装有linux系统的计算机时,系统会告诉你Linux发行版的名字、版本号、内核版本和服务器名称。这泄露了太多的系统信息。最好只显示一个“Login:”的提示信息。  
第一步:  编辑“/ect/rc.d/rc.local”文件,在下面这些行的前面加上“#”:  
# This will overwrite /etc/issue at every boot. So, make any changes you  
# want to make to /etc/issue here or you will lose them when you reboot.  
#echo "" > /etc/issue  
#echo "$R" >> /etc/issue  
#echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue    
#cp -f /etc/issue /etc/issue.net  
#echo >> /etc/issue 
第二步:删除“/etc”目录下的“issue.net”和“issue”文件:  
[root@deep]# rm -f /etc/issue  
[root@deep]# rm -f /etc/issue.net  
注意:“/etc/issue.net”文件是用户从网络登录计算机时(例如:telnet、SSH),看到的登录提示。同样在“”目录下还有一个“issue”文件,是用户从本地登录时看到的提示。这两个文件都是文本文件,可以根据需要改变。但是,如果想删掉这两个文件,必须象上面介绍的那样把“/etc/rc.d/rc.local”脚本中的那些行注释掉,否则每次重新启动的时候,系统又会重新创建这两个文件。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|京峰教育,只为有梦想的人 ( 京ICP备15013173号 )

GMT+8, 2020-2-26 20:54 , Processed in 0.022820 second(s), 12 queries , Redis On.

快速回复 返回顶部 返回列表