众所周知,Linux可以通过编写iptables规则对进出Linux主机的数据包进行过滤等操作,在一定程度上可以提升Linux主机的安全 性,在新版本内核中,新增了recent模块,该模块可以根据源地址、目的地址统计最近一段时间内经过本机的数据包的情况,并根据相应的规则作出相应的决 策,详见:http://snowman.net/projects/ipt_recent/
1、通过recent模块可以防止穷举猜测Linux主机用户口令,通常可以通过iptables限制只允许某些网段和主机连接Linux机器的 22/TCP端口,如果管理员IP地址经常变化,此时iptables就很难适用这样的环境了。通过使用recent模块,使用下面这两条规则即可解决问 题:
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --name SSH --rsource -j DROP
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name SSH --rsource -j ACCEPT
应用该规则后,如果某IP地址在一分钟之内对Linux主机22/TCP端口新发起的连接超过4次,之后的新发起的连接将被丢弃。
2、通过recent模块可以防止端口扫描。
-A INPUT -m recent --update --seconds 60 --hitcount 20 --name PORTSCAN -- ......
时间服务器官网:
http://www.pool.ntp.org/zone/cn
ntpdate 命令
用途
使用网络计时协议(NTP)设置日期和时间。此命令仅应用于 AIX 4.2 或后期版本。
语法
ntpdate
[ -b
] [ -d
] [
-s
] [ -u
] [ -a
Keyid
] [ -e
AuthenticationDelay
]
[ -k
KeyFile
] [ -o
Version
] [ -p
Samples
] [ -t
TimeOut
] Server
...
描述
通过轮询指定的确定正确时间的 NTP 服务器, ntpdate
命令设置本地日期和时间。它从指定的每个服务器获得了一些样本,并应用标准 NTP 时钟过滤器和选择算法来选择最好的样本。
此 ntpdate
命令使用以下方法进行时间调整:
如
果它确定时钟偏差超过 0.5 秒,它通过调用 settimeofday
子例程设置时钟时间。在引导时间,这是一个首选的方法。
如
果它确定时钟偏差小于 0.5 秒,它通过调用 adjtime
子例程和偏移量来调整时钟时间。此方法倾向于用牺牲一些稳定性来保持漂移时钟更加准确。 当不是通过运行一个守护程序而是从 cro ......
http://www.ibm.com/developerworks/cn/linux/l-cppexcep.html
处理固有语言局限性的四种技术
处理 C++ 中的异常会在语言级别上遇到少许隐含限制,但在某些情况下,您可以绕过它们。学习各种利用异常的方法,您就可以生产更可靠的应用程序。
保留异常来源信息
在 C++中,无论何时在处理程序内捕获一个异常,关于该异常来源的信息都是不为人知的。异常的具体来源可以提供许多更好地处理该异常的重要信息,或者提供一些可以附加到错误日志的信息,以便以后进行分析。
为了解决这一问题,可以在抛出异常语句期间,在异常对象的构造函数中生成一个堆栈跟踪。ExceptionTracer
是示范这种行为的一个类。
//在异常对象构造函数中生成一个堆栈跟踪
// Sample Program:
// Compiler: gcc 3.2.3 20030502
// Linux: Red Hat
#include <execinfo.h>
#include <signal.h>
#include <exception>
#include <iostream>
using namespace std;
/////////////////////////////////////////////
class ExceptionTracer
{
public:
ExceptionTracer()
{
void * array[25];
int nSize = backtrace(array, ......
http://www.ibm.com/developerworks/cn/linux/l-cppexcep.html
处理固有语言局限性的四种技术
处理 C++ 中的异常会在语言级别上遇到少许隐含限制,但在某些情况下,您可以绕过它们。学习各种利用异常的方法,您就可以生产更可靠的应用程序。
保留异常来源信息
在 C++中,无论何时在处理程序内捕获一个异常,关于该异常来源的信息都是不为人知的。异常的具体来源可以提供许多更好地处理该异常的重要信息,或者提供一些可以附加到错误日志的信息,以便以后进行分析。
为了解决这一问题,可以在抛出异常语句期间,在异常对象的构造函数中生成一个堆栈跟踪。ExceptionTracer
是示范这种行为的一个类。
//在异常对象构造函数中生成一个堆栈跟踪
// Sample Program:
// Compiler: gcc 3.2.3 20030502
// Linux: Red Hat
#include <execinfo.h>
#include <signal.h>
#include <exception>
#include <iostream>
using namespace std;
/////////////////////////////////////////////
class ExceptionTracer
{
public:
ExceptionTracer()
{
void * array[25];
int nSize = backtrace(array, ......
【转】 http://opensource.csdn.net/docs/article/11495
RedHat Linux 为增加系统安全性提供了防火墙保护。防火墙存在于你的计算机和网络之间,用来判定网络中的远程用户有权访问你的计算机上的哪些资源。一个正确配置的防火墙可以极大地增加你的系统安全性。
为你的系统选择恰当的安全级别。
“高级”
如果你选择了“高级” ,你的系统就不会接受那些没有被你具体指定的连接(除了默认设置外)。只有以下连接是默认允许的:
DNS回应
DHCP — 任何使用 DHCP 的网络接口都可以被相应地配置。
如果你选择“高级”,你的防火墙将不允许下列连接:
1.活跃状态FTP(在多数客户机中默认使用的被动状态FTP应该能够正常运行。)
2.IRC DCC 文件传输
3.RealAudio
4.远程 X 窗口系统客户机
如果你要把系统连接到互联网上,但是并不打算运行服务器,这是最安全的选择。如果需要额外的服务,你可以选择 “定制” 来具体指定允许通过防火墙的服务。
注记:如果你在安装中选择设置了中级或高级防火墙,网络验证方法(NIS 和 LDAP)将行不通。
“中级”
如果你选择了 ......
下午调试iptables的配置,增加支持vsftp的配置项。
某次重启机器后发现iptables服务无法启动,发现网络服务没有启动成功。
提示pcnet32 device eth0 does not seem to be present 原因不明。
在网上找到这篇文章http://blog.chinaunix.net/u3/102399/showart_2014783.html,解决了
“
在communities.vmware.com看到一个老外说,他在遇到这个问题时
说:“What I found was that my modules.dep and modules.alias were empty,
which live in /lib/modules/`uname
-r`/”。这让我想起了,下午我在编一个模块时,执行过depmod,这是会改变modules.dep和modules.alias。到/lib
/modules/`uname
-r`/一看,果然,里面只有与我的模块有关的依赖信息。看来,这是由于我以错误的方式执行了depmod命令造成的。(具体怎么回事我忘了,好像我在自
己工作目录depmod my.ko过)。
看来是系统模块的依赖关系信息丢失了,启动时网卡驱动等模块无法加载。所以,如果想用modprobe向系统加自己的模块时,应将
your_module.ko拷入/lib/modules/`uname -r`/,然后depmod -a 。最后,modprob
your_module。
解决:
在/lib/modules/`una ......
作为两个系统而言,要进行资源的共享,方法很多,
最常用的两种方案是FTP访问和 Samba服务。
但对于很多新手来说配置这些服务可能会比较吃力,还有一个简单的两系统间文件互访的方法就是使用USB设备。
在安装有虚拟机Linux的Windows XP系统中插入U盘,在两个系统中均可以识别,可以使用USB设备作为一个中转站来实现文件共享。
这只能算旁门左道,很多高手或许会鄙视这种做法,但对于初学者来说这毕竟也是一种快速解决问题的方式~~~
希望大家在用简单方法解决问题的同时继续学习使用常规的资源共享方法。
......