|
Linux系统安全工具介绍(四): 反扫描 Portsentry
六、Portsentry
我们可以通过防火墙限制自己系统中什么端口开放,什么端口不开放。对于外部的人们来说,这些信息都是保密的。黑客为了得到您机器中开放的端口,往往会进行各种方式的扫描,这样的扫描软件在互联网上也随处都是。一般的扫描活动都是进行入侵的前奏,对安全是极大的危险。
Portsentry 就是一个反扫描工具。它可以实时发现并分析记录对本机的扫描, 它主要做以下工作:
通过 syslog 做记录
将扫描的主机加入 /etc/hosts.deny
马上禁止所有通向扫描主机的网络流量
过滤掉所有来自扫描主机的网络流量
您可以从下面的网站获得portsentry:
http://www.psionic.com/abacus/portsentry/
"/usr/psionic/portsentry/portsentry.conf"是 portsentry 的主配置文件。您可以在这个文件中设置您所要监听的端口,以及哪些 ip 地址被拒绝,哪些被忽略等等信息。如果您了解详细的信息,可以查看 "README.install" 文件。
"/usr/psionic/portsentry/portsentry.ignore" 文件定义了在执行端口扫描分析时必须要忽略的主机,也就是说即使这些主机进行了扫描活动,portsentry 也不会采取任何行动。
Portsentry 有以下6种启动方式:
portsentry -tcp (basic port-bound TCP mode)
portsentry -udp (basic port-bound UDP mode)
portsentry -stcp (Stealth TCP scan detection)
portsentry -atcp (Advanced TCP stealth scan detection)
portsentry -sudp ("Stealth" UDP scan detection)
portsentry -audp (Advanced "Stealth" UDP scan detection)
建议您可以使用下面两种方式启动 portsentry:
portsentry -atcp (Advanced TCP stealth scan detection)
portsentry -sudp ("Stealth" UDP scan detection)
一种 tcp 启动方式和一种 udp 启动方式可以同时进行。
您可以把下面的两个命令加入 "/etc/rc.d/rc.local" 中,当系统重起时自动启动:
[root@sound /]# /usr/psionic/portsentry/portsentry -atcp
[root@sound /]# /usr/psionic/portsentry/portsentry -sudp
对于更详细的信息您可以查阅 man 手册和 portsentry 自带的帮助文件。
七、Openssl
一些服务器端的软件例如:IMAP & POP, Samba, OpenLDAP, FTP, Apache 等等在给用户提供服务的时候要对用户进行认证,只有在认证通过后服务才会被许可。而 client/server 方式的服务客户端和服务端之间通讯都是以明文方式进行的,openssl 正是提供了对传输的数据的一种加密方式。Openssl 可以安装在 Linux 服务器上,它需要一些第三方提供的应用程序来为服务提供加密。
下面看一些使用 openssl 加密能为我们提供的好处:
1.数据的保密性
openssl 实际在真正的数据加密上使用的是对称算法,一个密钥既用来加密也用来解密。我们在公开的网络介质上传输的再不是明文,即使有人能截获这些数据,没有密钥也是很难进行解密的。
2.数据的完整性
openssl 对数据用 hash 算法一个消息文摘,然后用对方的公钥对消息文载做数字签名,消息文摘的加密使用的是非对称算法。然后消息文摘和数据一起传给接收方,接收方用自己的密钥先对数字签名进行解密,这样就保证了数据的完整性。
从下面的站点可以获得 openssl:
http://www.openssl.org/
编译安装以后还要执行下面几个命令:
[root@sound openssl-0.9.5a]# mv /etc/ssl/misc/* /usr/bin/
[root@sound openssl-0.9.5a]# install -m 644 libRSAglue.a /usr/lib/
[root@so. openssl-0.9.5a]# install -m 644 rsaref/rsaref.h /usr/include/openssl/
"/etc/ssl/openssl.cnf"是 openssl 的主配置文件,里面要改动的主要是[CA_default ] 和[ req_distinguished_name ] 两个部分。
如果你想要使用 "openssl ca" 这个命令做 CA 证书时时,你需要建立一个 "sign.sh" 的脚本,这个脚本实际是存在的,在"/usr/bin/sign.sh", 您所要做的是在这个文件中加入一些东西。在 mod_ssl 的发行版中您也可以找到这个脚本。
下面我们举个例子讲述 openssl 的应用,我们用自己的 CA 为自己的 apache web server 做一个证书来签名我们自己的证书签名请求(CSR)。
1.为 apache web server 建立一个有密码保护的RSA私钥
[root@sound ssl]# openssl genrsa -des3 -out server.key 1024
2.用上面的 RSA 私钥产生一个证书签名请求(CSR)
[root@sound ssl]# openssl req -new -key server.key -out server.csr
3.为我们自己的 CA 创建一个 RSA 私钥
[root@sound ssl]# openssl genrsa -des3 -out ca.key 1024
4.用 CA 的 RSA 密钥做一个自签名的 X509 格式的证书
[root@sound ssl]# openssl req -new -x509 -days 365 -key ca.key -out ca.crt
5.将上面产生的私钥和证书移动到合适的目录下
[root@deep ssl]# mv server.key private/
[root@deep ssl]# mv ca.key private/
[root@deep ssl]# mv ca.crt certs/
6.最后用我们自己的 CA 对证书签名
[root@sound ssl]# /usr/bin/sign.sh server.csr
更详细的信息请参考 man 帮助和程序自带的帮助。 |
|