频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

Fedora core 2服务器平台安全设置

作者: 出处:www.shaof.com  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2005-09-08 11:00
关 键 词:服务器  安全  Fedora
阅读提示:一篇关于Linux安全设置方面的文章

很早就想写一篇关于Linux安全设置方面的文章了。写文章有一个好处就是可以把自己的思路理清楚,而且以后要是忘了的话看看文章就能回想起来。这篇文章只是我在日常的工作和学习中总结的一点心得体会,如果有写的不对的地方,还望大家指正。

一、设定启动服务

安装完系统后,我们执行#netstat –an,可以看到由于系统默认情况下启动了许多与网络相关的服务,因此相对应的开放了许多端口进行LISTENING(监听)。我们知道,开放的端口越多,系统从外部被入侵的可能也就越大,所以我们要尽量关闭一些不需要的启动服务,从而尽可能的关闭端口,提供系统的安全性。这里我直接给出保持系统正常运行的启动服务,而其他的服务都可以关闭掉。执行#ntsysv,只启动如下的服务。

服务名称
含义
acpid
提供高级电源管理。
cpuspeed
可以提高系统运行效率。
crond
执行例行性程序。
Iptables
防火墙。
Network
激活网络接口。
Random
加快系统的启动。
Readahead和Readahead_early
加快系统的启动。
sshd
可以远程管理Linux主机。
Syslog
把各类事件写入日志。
Kudzu
硬件自动检测程序。

表1:需要启动的服务以及含义

如果你想了解所有启动服务的含义,可以阅读笔者写的另一篇文章《Fedora core 2启动服务详解》,网址:http://www.gbunix.com/htmldata/2005_06/1/3/article_1227_1.html
 
二、Netfilter/iptables防火墙设置
#touch /etc/rc.d/firewall
#chmod u+x /etc/rc.d/firewall
#vi /etc/rc.d/rc.local
写入一行:/etc/rc.d/firewall
注意:/etc/rc.d/firewall的内容如下:

1、单网卡主机设定
说明:此设定适用于架设了一台专门提供web服务或者FTP服务的主机。
#首先清除所有的防火墙规则
#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#防止syn flood攻击
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
 
iptables -F
iptables -X
iptables –Z
#然后禁止所有的包
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#允许本地环回设备上的通讯
iptables –A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT
#让已经建立或者是与我们主机有关的回应封包通过
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许SSH远程管理主机
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
#对IP碎片数量进行限制,以防止IP碎片攻击
iptables -A INPUT -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
 
#如果你的主机提供web服务,那么就需要开放80端口
iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
 
#设置icmp协议,允许主机执行ping操作,以便对网络进行测试,但不允许其他主机ping该主机。
iptables –A OUTPUT-p icmp --icmp-type echo-request –j ACCEPT
iptables –A INPUT –p icmp --icmp-type echo-reply –j ACCEPT

通过如上设置,这台主机只向网络开放了22,80两个端口,最大限度的保证了主机的安全。
 
2、NAT主机的设定
说明:此设定适用于起到NAT网关服务器类型的主机。eth0为外网网卡,eth1为内网网卡。内网网段为192.168.1.0/24
#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#l连接Internet的外网网卡接口
EXTIF=”eth0”
#外网网卡的IP地址,这里请自行设置
EXTIFIPADDR=”219.150.46.98”
#连接局域网的内网网卡接口
INIF=”eth1”
#内网所在网段
INNET="192.168.1.0/24"
 
#打开系统内核的IP转发功能,使Linux变成路由器。
echo "1" >/proc/sys/net/ipv4/ip_forward
#防止syn flood攻击
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
#整理内核所支持的模块清单
/sbin/depmod –a
#加载所支持的模块清单
modprobe ip_tables
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
 
#清除已设规则,还原到不设防火墙的状态
iptables -F
iptables -X
iptables –Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING  ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT      ACCEPT
 
#下面将对主机的安全性进行设置
#允许本地环回设备上的通讯
iptables –A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT
#让已经建立或者是与我们主机有关的回应封包通过
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许SSH远程管理主机
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
#对IP碎片数量进行限制,以防止IP碎片攻击
iptables -A INPUT -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
#设置icmp协议,允许主机执行ping操作,以便对网络进行测试,但不允许其他主机ping该主机。
iptables –A OUTPUT-p icmp --icmp-type echo-request –j ACCEPT
iptables –A INPUT –p icmp --icmp-type echo-reply –j ACCEPT
 
#下面将进行NAT方面的设置
#如果希望内网能够访问外网,必须进行SNAT设置
iptables -t nat -A POSTROUTING –p all -s $INNET -o $EXTIF -j SNAT --to $EXTIFIPADDR
 
#如果你在内网架设了web服务器(IP:192.168.1.10),希望外网能够访问,则必须进行DNAT设置
iptables –t nat –A PREROUTING –p tcp –i $EXTIF --dport 80 –j DNAT --to 192.168.1.10:80
 
三、系统设置
1、限制Shell logging

Bash shell在“~/.bash_history”(“~/”表示用户目录)文件中保存了500条使用过的命令,这样可以使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一个“.bash_history”文件。bash shell应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除。
第一步:
“/etc/profile”文件中 “HISTSIZE”行确定所有用户的“.bash_history”文件中可以保存的旧命令条数。强烈建议把把“/etc/profile”文件中的“HISTSIZE”值设为一个较小的数,比如30。编辑profile文件(vi /etc/profile),把下面这行改为:
HISTSIZE=30 
这表示每个用户的“.bash_history”文件只可以保存30条旧命令。

第二步:
网管还应该在"/etc/skel/.bash_logout" 文件中添加下面这行"rm -f$HOME/.bash_history" 。这样,当用户每次注销时,“.bash_history”文件都会被删除。
编辑.bash_logout文件(vi /etc/skel/.bash_logout) ,添加下面这行:
rm -f $HOME/.bash_history
 
2、修改SSH 连接端口
    利用SSH我们可以远程管理Linux主机,不过如果设置不当,也会被黑客所利用,侵入系统。SSH默认连接端口为22,在实际工作中,笔者发现主机的22端口经常被扫描,试图以穷举法强行进行登陆,好在密码设置的比较复杂,才没有被侵入。因此笔者想到可以改变SSH连接端口,比如可以将连接端口设置为10000以上,呵呵,这样做就好比让小偷找不到门在哪里,又如何入室偷东西呢。具体修改方法如下:
vi /etc/ssh/sshd_config
#port 22
改为
port 20068
这样以后我们就需要通过20068这个端口来连接SSH了。
 
然后在填加DenyUser *禁止普通用户登陆,这样应该可以防一下,拒绝守护程序(daemon)帐号访问系统,如确定下面守护程序帐号不能访问系统: DenyUsers daemon bin sync adm lp shutdown halt mail news uucp nobody operator sympa, squid, postgres, gopher, postfix, xfs.
 
3、设置TCP_WRAPPERS
默认的,Redhat Linux允许所有的请求,这是很危险的。如果用TCP_WRAPPERS来增强我们站点的安全性简直是举手之劳,你可以将禁止所有的请求放入“ALL: ALL”到/etc/hosts.deny中,然后放那些明确允许的请求到/etc/hosts.allow中,如:
sshd: 192.168.1.10/255.255.255.0 gate.openarch.com
对IP地址192.168.1.10和主机名gate.openarch.com,允许通过ssh连接。配置完了之后,用tcpdchk检查,你可以直接执行:tcpdchk 。在这里,tcpchk是TCP_Wrapper配置检查工具,它检查你的tcp wrapper配置并报告所有发现的潜在/存在的问题。
 
后记
站长在研究设置Netfilter/iptables防火墙时,一度由于缺乏多主机的网络环境,以至学习的进展很慢,好在后来安装了Vmware虚拟机,在家中的WinXP下又虚拟出两台Fedora core 2来,并组建成一个局域网,才使得研究继续下去。如果你也为缺乏网络环境而苦难,那么请一定试试Vmware,相信会给你带来惊喜的!

其实Linux的安全设置还远远不止这些,由于站长的水平有限,只能写到这里了,不过站长以后还会继续更新这篇文章,也希望大家能多提宝贵意见!


发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Windows XP远程桌面连接图解(.. (查看30623次)
·Windows Vista 初步 (查看20820次)
·Solaris基础知识入门 (查看18854次)
·Linux的安装 (查看16797次)
·Windows操作系统安装 (查看15785次)
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有