要建立
![](/icons/25539yi.gif)
个安全Linux服务器就首先要了解Linux环境下和网络服务相关
![](/icons/25539de.gif)
配置文件
![](/icons/25539de.gif)
含义及如何进行安全
![](/icons/25539de.gif)
配置
![](/icons/25539dou2.gif)
在Linux系统中
![](/icons/25539dou.gif)
TCP/IP网络是通过若干个文本文件进行配置
![](/icons/25539de.gif)
![](/icons/25539dou.gif)
也许你需要编辑这些文件来完成联网工作
![](/icons/25539dou.gif)
但是这些配置文件大都可以通过配置命令linuxconf(其中网络部分
![](/icons/25539de.gif)
配置可以通过netconf命令来实现)命令来实现
![](/icons/25539dou2.gif)
下面介绍基本
![](/icons/25539de.gif)
TCP/IP网络配置文件
* /etc/conf.modules 文件
该配置文件定义了各种需要在启动时加载
![](/icons/25539de.gif)
模块
![](/icons/25539de.gif)
参数信息
![](/icons/25539dou2.gif)
这里主要着重讨论有关网卡
![](/icons/25539de.gif)
配置
![](/icons/25539dou2.gif)
在使用Linux做网关
![](/icons/25539de.gif)
情况下
![](/icons/25539dou.gif)
Linux服务器至少需要配置两块网卡
![](/icons/25539dou2.gif)
为了减少启动时可能出现
![](/icons/25539de.gif)
问题
![](/icons/25539dou.gif)
Linux内核不会自动检测多个网卡
对于没有将网卡
![](/icons/25539de.gif)
驱动编译到内核而是作为模块动态载入
![](/icons/25539de.gif)
系统若需要安装多块网卡
![](/icons/25539dou.gif)
应该在“conf.modules”文件中进行相应
![](/icons/25539de.gif)
配置
若设备驱动被编译为模块(内核
![](/icons/25539de.gif)
模块):对于PCI设备
![](/icons/25539dou.gif)
模块将自动检测到所有已经安装到系统上
![](/icons/25539de.gif)
设备;对于ISA卡
![](/icons/25539dou.gif)
则需要向模块提供IO地址
![](/icons/25539dou.gif)
以使模块知道在何处寻找该卡
![](/icons/25539dou.gif)
这些信息在“/etc/conf.modules”中提供
例如
![](/icons/25539dou.gif)
我们有两块ISA总线
![](/icons/25539de.gif)
3c509卡
![](/icons/25539dou.gif)
![](/icons/25539yi.gif)
个IO地址是0x300
![](/icons/25539dou.gif)
另
![](/icons/25539yi.gif)
个是0x320
![](/icons/25539dou2.gif)
编辑“conf.modules”文件如下:
alias eth0 3c509
alias eth1 3c509
options 3c509 io=0x300,0x320
这是介绍说明3c509
![](/icons/25539de.gif)
驱动
![](/icons/25539chengxu.gif)
应当分别以eth0或eth1
![](/icons/25539de.gif)
名称被加载(alias eth0
![](/icons/25539dou.gif)
eth1)
![](/icons/25539dou.gif)
并且它们应该以参数io=0x300
![](/icons/25539dou.gif)
0x320被装载
![](/icons/25539dou.gif)
来通知驱动
![](/icons/25539chengxu.gif)
到哪里去寻找网卡
![](/icons/25539dou.gif)
其中0x是不可缺少
![](/icons/25539de.gif)
对于PCI卡
![](/icons/25539dou.gif)
仅仅需要alias命令来使ethN和适当
![](/icons/25539de.gif)
驱动模块名关联
![](/icons/25539dou.gif)
PCI卡
![](/icons/25539de.gif)
IO地址将会被自动
![](/icons/25539de.gif)
检测到
![](/icons/25539dou2.gif)
对于PCI卡
![](/icons/25539dou.gif)
编辑“conf.modules”文件如下:
alias eth0 3c905
alias eth1 3c905
若驱动已经被编译进了内核:系统启动时
![](/icons/25539de.gif)
PCI检测
![](/icons/25539chengxu.gif)
将会自动找到所有相关
![](/icons/25539de.gif)
网卡
![](/icons/25539dou2.gif)
ISA卡
![](/icons/25539yi.gif)
般也能够被自动检测到
![](/icons/25539dou.gif)
但是在某些情况下
![](/icons/25539dou.gif)
ISA卡仍然需要做下面
![](/icons/25539de.gif)
配置工作:
在“/etc/lilo.conf”中增加配置信息
![](/icons/25539dou.gif)
其思路方法是通过LILO
![](/icons/25539chengxu.gif)
将启动参数信息传递给内核
![](/icons/25539dou2.gif)
对于ISA卡
![](/icons/25539dou.gif)
编辑“lilo.conf”文件
![](/icons/25539dou.gif)
增加如下内容:
append=" ether="0,0,eth0 ether="0,0,eth1"
注:先不要在“lilo.conf”中加入启动参数
![](/icons/25539dou.gif)
测试
![](/icons/25539yi.gif)
下你
![](/icons/25539de.gif)
ISA卡
![](/icons/25539dou.gif)
若失败再使用启动参数
如果用传递启动参数
![](/icons/25539de.gif)
思路方法
![](/icons/25539dou.gif)
eth0和eth1将按照启动时被发现
![](/icons/25539de.gif)
顺序来设置
* /etc/HOSTNAME 文件
该文件包含了系统
![](/icons/25539de.gif)
主机名称
![](/icons/25539dou.gif)
包括完全
![](/icons/25539de.gif)
域名
![](/icons/25539dou.gif)
如:deep.openarch.com
*/etc/sysconfig/network-scripts/
![](/icons/25539if.gif)
cfg-ethN 文件
在RedHat中
![](/icons/25539dou.gif)
系统网络设备
![](/icons/25539de.gif)
配置文件保存在“/etc/sysconfig/network-scripts”目录下
![](/icons/25539dou.gif)
![](/icons/25539if.gif)
cfg-eth0包含第
![](/icons/25539yi.gif)
块网卡
![](/icons/25539de.gif)
配置信息
![](/icons/25539dou.gif)
![](/icons/25539if.gif)
cfg-eth1包含第 2块网卡
![](/icons/25539de.gif)
配置信息
下面是“/etc/sysconfig/network-scripts/
![](/icons/25539if.gif)
cfg-eth0”文件
![](/icons/25539de.gif)
举例:
DEVICE=eth0
IPADDR=208.164.186.1
NETMASK=255.255.255.0
NETWORK=208.164.186.0
BROADCAST=208.164.186.255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
若希望手工修改网络地址或在新
![](/icons/25539de.gif)
接口上增加新
![](/icons/25539de.gif)
网络界面
![](/icons/25539dou.gif)
可以通过修改对应
![](/icons/25539de.gif)
文件(
![](/icons/25539if.gif)
cfg-ethN)或创建新
![](/icons/25539de.gif)
文件来实现
DEVICE=name
name表示物理设备
![](/icons/25539de.gif)
名字
IPADDR=addr
addr表示赋给该卡
![](/icons/25539de.gif)
IP地址
NETMASK=mask
mask表示网络掩码
NETWORK=addr
addr表示网络地址
BROADCAST=addr
addr表示广播地址
ONBOOT=yes/no
启动时是否激活该卡
none:
无须启动协议
bootp:
使用bootp协议
dhcp:
使用dhcp协议
USERCTL=yes/no
是否允许非root用户控制该设备
*/etc/resolv.conf 文件
该文件是由域名解析器(resolver
![](/icons/25539dou.gif)
![](/icons/25539yi.gif)
个根据主机名解析IP地址
![](/icons/25539de.gif)
库)使用
![](/icons/25539de.gif)
配置文件
![](/icons/25539dou.gif)
举例如下:
search openarch.com
nameserver 208.164.186.1
nameserver 208.164.186.2
“search do
name.com”
表示当提供了
![](/icons/25539yi.gif)
个不包括完全域名
![](/icons/25539de.gif)
主机名时
![](/icons/25539dou.gif)
在该主机名后添加do
![](/icons/25539main.gif)
name.com
![](/icons/25539de.gif)
后缀;“nameserver”表示解析域名时使用该地址指定
![](/icons/25539de.gif)
主机为域名服务器
![](/icons/25539dou2.gif)
其中域名服务器是按照文件中出现
![](/icons/25539de.gif)
顺序来查询
![](/icons/25539de.gif)
*/etc/host.conf 文件
该文件指定如何解析主机名
![](/icons/25539dou2.gif)
Linux通过解析器库来获得主机名对应
![](/icons/25539de.gif)
IP地址
![](/icons/25539dou2.gif)
下面是
![](/icons/25539yi.gif)
个“/etc/host.conf”
![](/icons/25539de.gif)
举例:
order bind,hosts
multi _disibledevent=>
RORWARD_IPV4=yes
HOSTNAME=deep.openarch.com
GAREWAY=0.0.0.0
GATEWAYDEV=
NETWORK=yes/no
网络是否被配置;
FORWARD_IPV4=yes/no
是否开启IP转发功能
HOSTNAME=hostname hostname
表示服务器
主机名
GAREWAY=gw-ip
gw-ip表示网络网关
IP地址
GAREWAYDEV=gw-dev
gw-dw表示网关
设备名
如:etho等
注意:为了和老
软件Software相兼容
“/etc/HOSTNAME”文件应该用和HOSTNAME=hostname相同
主机名
*/etc/hosts 文件
当机器启动时
在可以查询DNS以前
机器需要查询
些主机名到IP地址
匹配
这些匹配信息存放在/etc/hosts文件中
在没有域名服务器情况下
系统上
所有网络
都通过查询该文件来解析对应于某个主机名
IP地址
下面是
个“/etc/hosts”文件
举例:
最左边
列是主机IP信息
中间
列是主机名
任何后面
列都是该主机
别名![](/icons/25539dou2.gif)
旦配置完机器
网络配置文件
应该重新启动网络以使修改生效
使用下面
命令来重新启动网络:
/etc/rc.d/init.d/network restart
* /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
第 2步:确信文件
所有者是root
[root@deep]# stat /etc/inetd.conf
第 3步:编辑“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
ernal
#echo dgram udp wait root
ernal
#discard stream tcp nowait root
ernal
#discard dgram udp wait root
ernal
#daytime stream tcp nowait root
ernal
#daytime dgram udp wait root
ernal
#chargen stream tcp nowait root
ernal
#chargen dgram udp wait root
ernal
#time stream tcp nowait root
ernal
#time dgram udp wait root
ernal
#
# 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 _disibledevent=>
[root@deep /root]# killall -HUP inetd
第 4步:
为了保证“inetd.conf”文件
安全
可以用chattr命令把它设成不可改变
把文件设成不可改变
只要用下面
命令:
[root@deep]# chattr +i /etc/inetd.conf
这样可以避免“inetd.conf”文件
任何改变(意外或是别
原因)![](/icons/25539dou2.gif)
个有“i”属性
文件是不能被改动
:不能删除或重命名
不能创建这个文件
链接
不能往这个文件里写数据
只有系统管理员才能设置和清除这个属性
如果要改变inetd.conf文件
你必须先清除这个不允许改变
标志:
[root@deep]# chattr -i /etc/inetd.conf
但是对于诸如sendmail
named
www等服务
由于它们不象finger
telnet等服务
在请求到来时由inet守护进程启动相应
进程提供服务
而是在系统启动时
作为守护进程运行![](/icons/25539de.gif)
而对于redhat linux
提供了
个linuxconfig命令
可以通过它在图形界面下交互式地设置是否在启动时运行相关服务
也可以通过命令来设置是否启动时启动某个服务
如:[root@deep]# chkconfig –level 35 named off
延伸阅读
最新评论