科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航



ZDNet>网络频道>ZD评测>Fedora core 2服务器平台安全设置揭密2

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文继续向大家介绍如何进行Fedora core 2服务器平台安全设置。

来源: 2007年10月14日

关键字:服务器 设置 安全 服务器 2 Core Fedora

  #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设置

三、系统设置
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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

重磅专题