王朝网络
分享
 
 
 

Fedora core 服务器平台安全设置揭秘

王朝other·作者佚名  2006-01-10
宽屏版  字体: |||超大  

一、设定启动服务

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

这里我直接给出保持系统正常运行的启动服务,而其他的服务都可以关闭掉。执行#ntsysv,只启动如下的服务。

二、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

Bashshell在“~/.bash_history”(“~/”表示用户目录)文件中保存了500条使用过的命令,这样可以使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一个“.bash_history”文件。bashshell应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除。

第一步:

“/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,相信会给你带来惊喜的!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有