Linux网络服务器配置入门(二)

* /etc/inetd.conf 文件
众所周知,作为服务器来说,服务端口开放越多,系统安全稳定性越难以保证。所以提供特定服务的服务器应该尽可能开放提供服务必不可少的端口,而将与服务器服务无关的服务关闭,比如:一台作为www和ftp服务器的机器,应该只开放80 和25端口,而将其他无关的服务如:finger auth等服务关掉,以减少系统漏洞。

而inetd,也叫作“超级服务器”,就是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求。inetd.conf则是inetd的配置文件。inetd.conf文件告诉inetd监听哪些网络端口,为每个端口启动哪个服务。在任何的网络环境中使用Linux系统,第一件要做的事就是了解一下服务器到底要提供哪些服务。不需要的那些服务应该被禁止掉,最好卸载掉,这样黑客就少了一些攻击系统的机会。查看“/etc/inetd.conf”文件,了解一下inetd提供哪些服务。用加上注释的方法(在一行的开头加上#号),禁止任何不需要的服务,再给inetd进程发一个SIGHUP信号。

第一步:把文件的许可权限改成600。

[root@deep]# chmod 600 /etc/inetd.conf

第二步:确信文件的所有者是root。

[root@deep]# stat /etc/inetd.conf

第三步:编辑“inetd.conf”文件(vi /etc/inetd.conf),禁止所有不需要的服务,如:ftp、 telnet、 shell、 login、 exec、talk、ntalk、 imap、 pop-2、pop-3、finger、auth,等等。如果你觉得某些服务有用,可以不禁止这些服务。但是,把这些服务禁止掉,系统受攻击的可能性就会小很多。改变后的“inetd.conf”文件的内容如下面所示:

# To re-read this file after changes, just do a 'killall -HUP inetd'

#

#echo stream tcp nowait root internal

#echo dgram udp wait root internal

#discard stream tcp nowait root internal

#discard dgram udp wait root internal

#daytime stream tcp nowait root internal

#daytime dgram udp wait root internal

#chargen stream tcp nowait root internal

#chargen dgram udp wait root internal

#time stream tcp nowait root internal

#time dgram udp wait root internal

#

# These are standard services.

#

#ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a

#telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd

#

# Shell, login, exec, comsat and talk are BSD protocols.

#

#shell stream tcp nowait root /usr/sbin/tcpd in.rshd

#login stream tcp nowait root /usr/sbin/tcpd in.rlogind

#exec stream tcp nowait root /usr/sbin/tcpd in.rexecd

#comsat dgram udp wait root /usr/sbin/tcpd in.comsat

#talk dgram udp wait root /usr/sbin/tcpd in.talkd

#ntalk dgram udp wait root /usr/sbin/tcpd in.ntalkd

#dtalk stream tcp wait nobody /usr/sbin/tcpd in.dtalkd

#

# Pop and imap mail services et al

#

#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d

#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d

#imap stream tcp nowait root /usr/sbin/tcpd imapd

#

# The Internet UUCP service.

#

#uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico -l

#

# Tftp service is provided primarily for booting. Most sites

# run this only on machines acting as "boot servers." Do not uncomment

# this unless you *need* it.

#

#tftp dgram udp wait root /usr/sbin/tcpd in.tftpd

#bootps dgram udp wait root /usr/sbin/tcpd bootpd

#

# Finger, systat and netstat give out user information which may be

# valuable to potential "system crackers." Many sites choose to disable

# some or all of these services to improve security.

#

#finger stream tcp nowait root /usr/sbin/tcpd in.fingerd

#cfinger stream tcp nowait root /usr/sbin/tcpd in.cfingerd

#systat stream tcp nowait guest /usr/sbin/tcpd /bin/ps -auwwx

#netstat stream tcp nowait guest /usr/sbin/tcpd /bin/netstat -f inet

#

# Authentication

#

#auth stream tcp nowait nobody /usr/sbin/in.identd in.identd -l -e -o

#
# End of inetd.conf

注意:改变了“inetd.conf”文件之后,别忘了给inetd进程发一个SIGHUP信号(killall –HUP inetd)。

[root@deep /root]# killall -HUP inetd

第四步:

为了保证“inetd.conf”文件的安全,可以用chattr命令把它设成不可改变。把文件设成不可改变的只要用下面的命令:

[root@deep]# chattr +i /etc/inetd.conf

这样可以避免“inetd.conf”文件的任何改变(意外或是别的原因)。一个有“i”属性的文件是不能被改动的:不能删除或重命名,不能创建这个文件的链接,不能往这个文件里写数据。只有系统管理员才能设置和清除这个属性。如果要改变inetd.conf文件,你必须先清除这个不允许改变的标志:

[root@deep]# chattr -i /etc/inetd.conf

但是对于诸如sendmail,named,www等服务,由于它们不象finger,telnet等服务,在请求到来时由inet守护进程启动相应的进程提供服务,而是在系统启动时,作为守护进程运行的。而对于redhat linux,提供了一个linuxconfig命令,可以通过它在图形界面下交互式地设置是否在启动时运行相关服务。也可以通过命令来设置是否启动时启动某个服务,如:[root@deep]# chkconfig –level 35 named off

具体命令可以参考man chkconfig的说明。
* /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地址列表指定允许或者禁止使用该服务的一个或者多个主机的标识,主机名之间用逗号或空格分簟3绦蛎椭骰刂范伎梢允褂猛ㄅ浞迪址奖愕闹付ǘ嘞罘窈投喔鲋骰?

Linux提供了下面灵活的方式指定进程或者主机列表:

1.一个以"."起始的域名串,如 .amms.ac.cn 那么www.amms.ac.cn就和这一项匹配

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 (出处:网络)

(0)

相关推荐

  • linux网络操作相关命令汇总

    linux操作相关命令汇总的github地址:https://github.com/zhwj184/shell-work 复制代码 代码如下: #/bin/sh #查看http请求的header tcpdump -s 1024 -l -A -n host 192.168.9.56 tcpdump -s 1024 -l -A src 192.168.9.56 or dst 192.168.9.56 sudo tcpdump -A -s 1492 dst port 80 #本地网络中IP地址为192

  • linux网络参数配置方法详解

    主要用途:1.查看网络接口设置: ifconfig –a或ifconfig 网络接口 –a2.网络配置 ifconfig  网络接口  [add/del]  IP地址  netmask  子网掩码 例:ifocnfig eth0 10.2.3.4 [netmask 255.255.255.0]3.网络接口的激活/关闭 格式:ifconfig 网络接口 up/down配置dns建立/etc/resolv.conf文件,在里面写入DNS服务器地址配置主机名配置/etc/sysconfig/netwo

  • Linux网络服务器配置入门(一)

    要建立一个安全Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置.在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,也许你需要编辑这些文件来完成联网工作,但是这些配置文件大都可以通过配置命令linuxconf(其中网络部分的配置可以通过netconf命令来实现)命令来实现.下面介绍基本的 TCP/IP网络配置文件. * /etc/conf.modules 文件 该配置文件定义了各种需要在启动时加载的模块的参数信息.这里主要着重讨论关于

  • Linux网络服务器配置基础

    要建立一个安全Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置.在Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,也许你需要编辑这些文件来完成联网工作,但是这些配置文件大都可以通过配置命令linuxconf(其中网络部分的配置可以通过netconf命令来实现)命令来实现.下面介绍基本的 TCP/IP网络配置文件. * /etc/conf.modules 文件 该配置文件定义了各种需要在启动时加载的模块的参数信息.这里主要着重讨论关于

  • linux网络编程用到的网络函数详解用和使用示例

    一.概念介绍网络程序分为服务端程序和客户端程序.服务端即提供服务的一方,客户端为请求服务的一方.但实际情况是有些程序的客户端.服务器端角色不是这么明显,即互为客户端和服务端.我们编写网络程序时,一般是基于TCP协议或者UDP协议进行网络通信的.TCP:(Transfer Control Protocol)传输控制协议是一种面向连接的协议, 当我们的网络程序使用这个协议的时候,网络可以保证我们的客户端和服务端之间的传输是可靠的.UDP:(User Datagram Protocol)用户数据报协议

  • 检查linux网络状态的两个脚本

    一.通过定时收发email检测网络连通性 复制代码 代码如下: #/bin/bashecho "Daily test mail" > state.txtmail -s Server_State abc@jb51.net < state.txtrm -df ./state.txt ~                         crontab -e增加如下任务10 07 * * * /root/checkNKmail &分时日月周 二.定时检测网络状态通过emai

  • Linux网络服务器配置入门(二)

    * /etc/inetd.conf 文件 众所周知,作为服务器来说,服务端口开放越多,系统安全稳定性越难以保证.所以提供特定服务的服务器应该尽可能开放提供服务必不可少的端口,而将与服务器服务无关的服务关闭,比如:一台作为www和ftp服务器的机器,应该只开放80 和25端口,而将其他无关的服务如:finger auth等服务关掉,以减少系统漏洞. 而inetd,也叫作"超级服务器",就是监视一些网络请求的守护进程,其根据网络请求来调用相应的服务进程来处理连接请求.inetd.conf则

  • Linux网络相关配置文件

    Linux网络相关配置文件 一 网络参数与配置文件对应关系 所需要的网络参数 主要配置文件命名 重要参数 IP Netmask DHCP Gateway等 /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=网卡名称 BOOTPROTO=是否使用dhcp HWADDR = 是否加入网卡MAC地址 IPADDR = IP地址 NETMASK = 子网掩码 ONBOOT = 要不要默认启动此接口 GATEWAY = 网关地址 主机名 /etc/sysco

  • [基础知识]Linux新手系列之二

    给Linux新手 [系列之二] OK,你的第一个问题是:什么是Linux,它和UNIX有什么区别?问这个问题的原因呢,多半是你还在大一的时候一次去实验室,看到高年纪学生在一个特大屏幕的机器上作题,你羡慕的看着他,问:"这是什么计算机啊,这么高级?"而他不无骄傲的说,"这是UNIX".后来你懂的多了,知道那是SUN工作站,上面运行着Solaris,就是UNIX.现在你又听说Linux也是UNIX,是怎么回事呢? short answer:去看书,街上很多Linux的书

  • Linux网络设置之基础操作命令详解

    目录 查看网络配置 查看网络接口信息---ifconfig 查看路由表---route 查看网络连接情况---netstat 获取 socket 统计信息---ss 测试网络连接 测试网络连通性------ping 测试DNS域名解析------nslookup 设置网络地址参数 使用命令修改(临时配置) 修改网卡的地址.状态------ifconfig 添加.删除静态路由记录---route 修改配置文件(固定设置) 网络接口配置文件 路由配置文件 域名解析配置文件 本地主机映射文件 host

  • Linux网络设置详情

    目录 Linux网络设置 一.查看网络配置接口 1.查看网络接口信息-ifconfig 2.修改网络配置文件 3.设置网络接口参数 ifconfig 4.查看主机名称-hostname 5.查看路由表条目route 6.查看网络连接情况-netstat 7.获取socket统计信息-ss 二.测试网络连接 1.测试网络连通性-ping 2.跟踪数据包的路由途径-traceroute 3.测试DNS域名解析-nslookup 4.域名配置文件 5.本地主机映射文件 Linux网络设置 一.查看网络

  • Linux网络启动问题:Device does not seem to be present解决办法

    Linux网络启动问题:Device does not seem to be present解决办法 在整虚拟机时候经常会遇到虚拟机拷贝,然而拷贝之后网络配置会遇到错误 service network restart启动网络时候提示如下错误: Device does not seem to be present 解决步骤 1.ifconfig -a 查看当前网卡 2.修改网络配置文件, vi /etc/sysconfig/network-scripts/ifcfg-eth0 在原来文件的基础上,

  • Linux网络编程之UDP Socket程序示例

    在网络传输协议中,TCP协议提供的是一种可靠的,复杂的,面向连接的数据流(SOCK_STREAM)传输服务,它通过三段式握手过程建立连接.TCP有一种"重传确认"机制,即接收端收到数据后要发出一个肯定确认的信号,发送端如果收到接收端肯定确认的信号,就会继续发送其他的数据,如果没有,它就会重新发送. 相对而言,UDP协议则是一种无连接的,不可靠的数据报(SOCK_DGRAM)传输服务.使用UDP套接口不用建立连接,服务端在调用socket()生成一个套接字并调用bind()绑定端口后就可

  • Linux网络搭建基础实验(1)

    一.实验目标 利用3台虚拟机,搭建vmnet2和vmnet3两个host-only网络,实现两个网络的互联 二.实验环境 三.实验步骤 1.添加VMnet2和VMnet3,并取消其DHCP功能 2.内网虚拟机的设置 (1)解决网卡不一致的问题,为其设置静态IP.子网掩码和网关 [root@lyy 桌面]# gedit /etc/sysconfig/network-scripts/ifcfg-eth0 //编辑网卡信息 (2)将内网虚拟机加入VMnet2 (3)重启网络服务 [root@lyy 桌

随机推荐