Category Archives: LINUX

LINUX iptable应用手册(二)

  来源:南方Linux (2006-06-20 14:38:5 第二篇 规则(Rules) iptables的每一条规则(rule),都是由两部分组成的,第一部分包含一或多个「过滤条件」其作用是检查包是否符合处理条件(所有条件都必须成立才算数) ;第而部分称为「目标」,用於決定如何处置符合条件的包。 对於每一条规则,iptables各维护两个计数器:一个计算符合条件的封包数,称为packet counter;另一个计算该规则所处理的总资料量,称为byte counter。每当有包符合特定规则的过滤条件,该规则的packet counter便会被累加一,並将该包的大小累加到该规则的byte counter。 规则可以只有「过滤条件」或「目标」(处置方式)的其中之一;沒指定过滤条件时,则所有包都算符合条件;沒指定处置方式时,则放任让包继续其流程,也就是說。包本身不会有任何改变,只有该规则的两个counters会累增而已。使用下列命令可将这种只有计数作用的空规则加入filter表格FORWARD链结: iptables -t filter -A FORWARD 过滤条件(Matches) iptables可让你设置多种过滤条件,但是某些条件需要核心有提供相关功能才行。Iptables本身內建一般性的Internet Protocol (IP) 过滤条件,也就是說,即时沒载入任何扩充模组,你也可以用IP包标头的「传输协定类型」、「来源位址」、「目的地位址」等栏位为过滤条件。关於一般性的IP过滤条件,请参閱《IPv4过滤条件》。 除了IP之外的其它协定,诸如ICMP、TCP、UDP等等,必须载入相关的扩充模组,才可以作为过滤条件。使用iptables的-m或- -match选项,指出载入特定协定的扩充模组。 所有关于过滤条件的扩充模组,几乎都上针对网络层(IP、ICMP)或传输层(TCP、UDP),唯一例外上mac模组,它能让你以Ethernet网卡的MediaAccessController(MAC)位址为过滤条件【注解:Ethernet属于网络层之下的「资料连结层」(OSI Model)或「实体层」(IP Model)】。 目标(Target) 目标「(targets)决定如何处理符合过滤条件的包,或是当成链结的政策。iptables共内建四种目标(参阅《表8》),除此之外的其它目标,必须透过扩充模组来提供。 表8:iptables内建的目标 应用 本节简述各种包处理技术的观念,以及它们的应用。 包过滤(Packet filtering) 「包过滤」是最基本的封包处理方式:于核心网络程式的各交接点检查包內容,籍此决定包的后续处理流程(放行到下一阶段、不回复而逕行放弃、回复拒收讯息,诸如此类)。 累计(Accounting) 「累计」:使用各种包过滤条件的byte/package counter来监测网络交通量。 … Continue reading

Posted in LINUX | Leave a comment

Openwebmail安装指南(sendmail)

 本文是作者原创,转载请保留出处。 作者使用的系统平台是RedHat 9.0,sendmail已经成功安装(不能强制启用sasl验正),具体可参照作者的相关文章。   一、所需软件包:(可在系统已安装的软件包的基础上查漏补缺)   CGI.pm-3.05.tar.gz  MIME-Base64-3.01.tar.gz  Digest-1.08.tar.gz  Digest-MD5-2.33.tar.gz  Text-Iconv-1.2.tar.gz libnet-1.19.tar.gz perl-suidperl-5.8.0-88.i386.rpm   二、安装软件包   CGI.pm,MIME-Base64,Digest,Digest-MD5,libnet原码采用以下步骤安装即可: #tar zxvf 软件包.tar.gz #cd 软件包名 #perl Makefile.PL #make #make install   注: 1.安装Digest-MD5之前必须先声明一个环境变量,方法如下: #export LC_ALL=C 2.libnet软件包安装时如果系统提示已经安装,可不用再安装 perl-suidperl的安装如下所示:   #rpm -ivh perl-suidperl-5.8.0-88.i386.rpm   三、安装openwebmail … Continue reading

Posted in LINUX | Leave a comment

LINUX iptable应用手册(一)

  防火牆(Firewall)、网址转换(NAT)、数据包(package)记錄、流量统计,这些功能全是Linux核心裡的Netfilter子系統所提供的,而iptables是控管Netfilter的唯一工具程式。iptables的介面很可能是Linux有史以來最精緻的,它使得Linux成為最有彈性的網路過濾系統。iptables將許多组繁复的规则集成组织成容易控管的形式,以便管理员可以进行分组测试,或关闭、啟动某组规则集。 iptable能够为Unix、Linux和BSD个人工作站创建一个防火墙,也可以为一个子网创建防火墙以保护其它的系统平台。iptable只读取数据包头,不会给信息流增加负担,也无需进行验证。要想获得更加好的的安全性,可以将其和一个代理服务器(比如sqiud)相结合。 每当有人紧急要求你开放或关闭特定通讯端口(为了让某种重要的网路通讯能通过防火牆,或是阻挡某种攻擊),或是请你在防火牆设置某种功能,本文将能协助你尽速解決问题。本文以直接的语法和务实的范例,帮助你记忆iptables的各种用法,並提供一些适当的意见,让你的防火牆尽可能保持安全。我们将iptables的选项分成「防火牆」、「流量统计」、「NAT」三类,以适合实务查询的方式编排,帮助管理员在最短时间內找到相关选项的语法和說明。 操作范例如下: 让我们来一个简单的iptables命令: iptables -t nat -A PREROUTING -i ethl -p tcp - -dport 80 -j DNAT - - to -destination 192.168.1.3:8080 (表1)是解释这个iptables命令的意义。 ▓ 概念 Linux核心的包处理流程中,共设置了五个(鱼钩)拦截点(hook points),分别是PREROUTING、INPUT、FORWARD、POSTROUTING以及OUTPUT。內建链结只能作用在这些拦截点;你可以针对个別拦截点设置一系列处理规则,每条规则各代表一次影响(或监测)包处理流程的机会。 ************************************* ▓ 诀窍 我们常看到很多說明文件有着『...nat表格的PREROUTING串链...』这樣的說法,隐喻著链结是属于表格。然而,链结与表格两者之间並沒有统属关系,最多只有隐讳的关联性而已。链结(chains)的真正含意是「包(package)径路上的拦截点」而表格(tables)则是象征「处理效果」。然而,为了措词上的方便,本文仍免不了出现『...某表格的某链结...』之类的說法请读者注意。 ************************************* ※ 图1、2、3分別展示了表格与链结的三种有效组合,以及各种组合所象征的包处理流程。其中《图l》是包经过「网址转换系统」(NAT)的流程,相关链结是作用於nat表格。 ※ 图2: 是包流经「包过滤系统」的流程,相关链结是作用于filter(过滤)表格。 … Continue reading

Posted in LINUX | Leave a comment

基于Linux的Squid代理实现与应用

随着Internet的迅速发展,宽带网络的接入增多,Internet用户的数量也迅速膨胀,IP地址资源日趋紧张,特别是对于大中专院校和中小型企业更加需要解决IP资源紧张的问题。笔者结合实际工作中的经验,总结了一套在Linux操作系统下用Squid代理来解决这个问题的办法。 目前,我们大多数用户得到的IP都是C类IP,除了满足服务器使用真实IP之外,所剩余的IP就很少了,根本无法满足个人用户(比如一个校园网的个人用户可能就有数千人)的需要。这个时候,我们就需要用到代理服务器了。那么,代理服务器是如何工作的呢?我们可以在服务器上安装两块网卡,一块网卡(eth0)做为公网连接用,另外一块网卡(eth1)作为内网连接用。然后用户安装代理服务器软件─Squid,这样就可以使用私有IP地址作为内部网络的地址,通过代理服务器的外部网卡,实现透明代理,达到内部网络受保护的目的,使用户在不自觉的情况下轻松上网。 得到软件并正确安装 本文中提到的Squid是一款优秀的开放源代码的免费软件,可以运行于多种系统平台上,各位读者可以在http://www.Squid-cache.org站点下载。假若您的服务器是Redhat Linux 7,可以按下面步骤操作(基于源代码包的安装): 1.从http://www.Squid-cache.org网站下载“Squid-2.4.STABLE4-src.tar.gz”; 2.将该文件拷贝到/usr/local目录; 3.解开该文件: $tar xvzf Squid-2.4.STABLE4-src.tar.gz; 4.在/usr/local生成一个新的目录“Squid-2.4.STABLE4”; 5.进入该目录,即键入“cd Squid-2.4.STABLE4”; 6.执行“./configure”,可以用“./confgure --prefix=/usr/local/Squid”指定安装目录(根据用户习惯可以随意指定目录),系统缺省安装目录为“/usr/local/Squid”; 7.运行“make”和“make install”; 8.安装结束后,Squid的可执行文件在安装目录的bin子目录下,配置文件在etc子目录下。 这样,代理软件就安装完毕了。当然,您还可以下载Squid的rpm安装包,同样可以在Squid的网站上找到“Squid-2.4.STABLE4-8.i386.rpm”, 然后把该文件放在“/usr/local/”之下,再执行 rpm -ivh Squid-2.2.STABLE4-8.i386.rpm 就可以轻松地完成安装了。 设置代理服务器 在默认安装的情况下,Squid的主配置文件是“/usr/local/Squid/etc/Squid.conf”,我们可以用Linux下的编辑工具vi对“Squid.conf”文件进行修改,以完成符合我们自己要求的配置。另外,值得注意的是,我们还要执行“#/usr/local/Squid/bin/Squid -z”,手工建立Squid的缓存目录“/usr/local/Squid/cache”。 访问控制 使用访问控制特性,可以控制在访问时根据特定的时间间隔进行缓存、访问特定站点或一组站点等等。Squid访问控制有两个要素:ACL元素和访问列表。访问列表可以允许或拒绝某些用户对此服务的访问。 下面列出了一些重要的ACL元素类型: src—源地址(即客户机IP地址) dst—目标地址(即服务器IP地址) srcdomain—源名称(即客户机名称) dstdomain—目标名称(即服务器名称) time—一天中的时刻和一周内的一天 url_regex—URL规则表达式匹配 urlpath_regex—URL-path规则表达式匹配,略去协议和主机名 proxy_auth—通过外部程序进行用户验证 … Continue reading

Posted in LINUX | Leave a comment

简释iptables防火墙(转)

    一般LINUX防火墙(iptalbes)的运用无非是用nat 表(PREROUTING、OUTPUT、POSTROUTING)和filter表(FORWARD、INPUT、OUTPUT)。我们只有知道了数据的流向才能正确的配置防火墙。现用一个相对比较直观的图形解释数据的走向。 (此处只作最基本的iptables数据流走向说明。) 上图是你的家,蓝色的圈是你家院子,有两扇大门①⑥进出,你家有两个房间,分别为eth0和 eth1房间,每个房间有两个门可以进出②③④⑤。旁边是张三和李四的家,张三家和李四家之间的往返必须要过你家院子。 现假设,eth0网卡IP为:192.168.5.1链接内网,eth1网卡IP为:218.100.100.111链接互连网。 再假设,“张三家”为一个局域网,“李四家”为互连网。进我家院子用PREROUTING,出我家院子用FORWARD,进我家门用INPUT,出我家门用OUTPUT。(当我们的操作是征对服务器本身而言的话,如SSH操作,此时肯定会用到PREROUTING、INPUT和OUTPUT,当数据只是通过服务器去访问别的机器时会用到PREROUTING和FORWARD。) 又假设,默认这六个门都是关的。生成如下代码。 ########################################################################### *nat ################################ REROUTING    DROP  [0:0] :OUTPUT         DROP  [0:0] OSTROUTING   DROP  [0:0] ################################ -F -Z -X ### 以后要新增语句请在此处增加。 -L –v COMMIT ################################################ *filter ############################## :INPUT          DROP  [0:0] :FORWARD      DROP  [0:0] … Continue reading

Posted in LINUX | Leave a comment

超全的NFS文档(转)

  http://www.chinaunix.net 作者:wheel  发表于:2006-05-08 19:51:12   NFS server可以看作是一个FILE SERVER,它可以让你的PC通过网络将远端得NFS SERVER共享出来的档案MOUNT到自己的系统中,在CLIENT看来使用NFS的远端文件就象是在使用本地文件一样。   NFS协议从诞生到现在为止,已经有多个版本,如NFS V2(rfc1094),NFS V3(rfc1813)(最新的版本是V4(rfc3010)。    二、各NFS协议版本的主要区别   V3相对V2的主要区别:   1、文件尺寸   V2最大只支持32BIT的文件大小(4G),而NFS V3新增加了支持64BIT文件大小的技术。   2、文件传输尺寸   V3没有限定传输尺寸,V2最多只能设定为8k,可以使用-rsize and -wsize 来进行设定。   3、完整的信息返回   V3增加和完善了许多错误和成功信息的返回,对于服务器的设置和管理能带来很大好处。   4、增加了对TCP传输协议的支持   V2只提供了对UDP协议的支持,在一些高要求的网络环境中有很大限制,V3增加了对TCP协议的支持   *5、异步写入特性   6、改进了SERVER的mount性能   7、有更好的I/O WRITES 性能。   9、更强网络运行效能,使得网络运作更为有效。   10、更强的灾难恢复功能。     异步写入特性(v3新增加)介绍:   NFS V3  能否使用异步写入,这是可选择的一种特性。NFS V3客户端发发送一个异步写入请求到服务器,在给客户端答复之前服务器并不是必须要将数据写入到存储器中(稳定的)。服务器能确定何时去写入数据或者将多个写入请求聚合到一起并加以处理,然后写入。客户端能保持一个数据的copy以防万一服务器不能完整的将数据写入。当客户端希望释放这个copy的时候,它会向服务器通过这个操作过程,以确保每个操作步骤的完整。异步写入能够使服务器去确定最好的同步数据的策略。使数据能尽可能的同步的提交何到达。与V2比较来看,这样的机制能更好的实现数据缓冲和更多的平行(平衡)。而NFS V2的SERVER在将数据写入存储器之前不能再相应任何的写入请求。     V4相对V3的改进:   1:改进了INTERNET上的存取和执行效能   2:在协议中增强了安全方面的特性   3:增强的跨平台特性   三、CLIENT和SERVER的具体操作和设置   在讲NFS SERVER的运作之前先来看一些与NFS SERVER有关的东西:   RPC(Remote Procedure Call)   NFS 本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议勇士用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER.所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。     NFS需要启动的DAEMONS   pc.nfsd:主要复杂登陆权限检测等。  … Continue reading

Posted in LINUX | Leave a comment

用openswan 2.4.7构建安全VPN笔记(转)

  转载请注明出处:http://marion.cublog.cn 前言: 反把复复尝试了很多次,在网上相关文档的指导下,终于实现了在RH Linux 9.0 (kernel 2.4.20-8 &nbsp 上以源码方式安装openswan-2.4.27,但老系统安装新版本的软件却是颇为劳心费神之事,不为别的,只为学习,呵呵。此实验在RH Linux 9.0 (kernel 2.4.20-8 &nbsp 上实现,请注意您的内核版本(这一点很重要)。 第一部分:VPN简介 Linux平台上的VPN大致可以为分为三类: IPSec VPN(Openswan,frees/wan,strongswan,KAME)       IPSec(IP Security)是一种较老的也是采用的最为广泛的VPN技术,是由IETF开发的一组身份验正和数据加密的协议,提供了私有性、完整性、真实性和防重播等安全服务,可以用于IP网络中的数据保密、完整性检查、身份验正、密匙管理等许多方面。     IPSec在Linux上的实现主要分为两类,第一类是曾被称作Frees/wan的项目,如今已经分佳节又重阳裂为openswan和strongswan。它们都提供自身的内核堆栈(kernel stack),也可以基于新近的内核中所提供的代码。第二类是BSD之上的KAME,它只能使用内核堆栈。大多ipsec规范本身并不在本地网络中为远程主机提供一个虚拟IP,不过仍有不少为此而实现的扩展可以解决诸如此类的问题。因此,可以将Microsoft的支持L2TP的产品运行于ipsec之上。     ipsec是面各连接的协议,为很多家商业类的路由器所采用。Openswan基于自身的XAUTH扩展,也可以作为Cisco,Nortel以及其它多家VPN集成产品的客户端。     ipsec可以让我们在不改变外部防火墙规则的情况下,在内核级别相当容易的对什么能通过隧道或什么不能作出安全的处理;其在实现NET-TO-NET以及host-to-net的配置方面也表现出了很大的灵活性。但灵活也就意味着实现起来的困难,所以ipsec的成功配置运行相当有难度,此外,尽管已经其在对NAT-Travel的支持方面做了不少改进,但还是不能较好的工作于一些NAT网关之后。 SSL-Based VPN (openVPN)     近来,加密套接字层(SSL)虚拟专用网(VPN)逐渐流行起来。这种VPN的最大好处在于,你仅仅需要一个单独的TCP或者UDP端口便可以轻易的穿越大多数的防火墙进行数据传送。SSL VPN在Linux系统上的最好实现是OpenVPN,其相当成熟和富于特色。 PPTP-Based … Continue reading

Posted in LINUX | Leave a comment

配置 DNS 辅助域名服务器和子域名服务器

前言:本文建立在成功实验的基础上;同时,本文是另一篇文章“Bind 9.4.0rc2安装笔记(一步步学习配置简易DNS)”的续篇,是一篇学习心得仅作与各位朋友交流之用。 本文系作者原创,如果要转载请注明出处:  http://marion.cublog.cn 一、规划说明: 主机A: 双网卡 192.168.1.7  --> mydomain.org主域名服务器 192.168.10.7 --> myzone.org主域名服务器,其有两个子域,为market.myzone.org和develog.myzone.org 主机B:双网卡 192.168.1.6  --> mydomain.org辅助域名服务器 192.168.10.6 --> market.myzone.org子域名服务器 两台服务器均有DNS独立的日志,用以记录查询(query_logs)记录和错误(err_logs)记录,以便于DNS后期管理;本文不过多涉及安全方面的问题。 安装过程请参照另一篇文章“Bind 9.4.0rc2安装笔记(一步步学习配置简易DNS)”。 二、主机A: 1. 主配置文件/etc/named.conf options {         directory "/var/named/";         version "0.0.0"; }; logging {         channel dns_errors … Continue reading

Posted in LINUX | Leave a comment

Bind 9.4.0rc2 安装笔记(一步步学习建立简易DNS)(一)(转)

本文未经作者同意可进行任意转载,但敬请注明出处: http://marion.cublog.cn   谢谢 注:本次安装实验的系统平台是RedHat Linux 9.0 1.安装 #tar zxvf bind-9.4.0rc2.tar.gz #cd bind-9.4.0rc2 #./configure --sysconfdir=/etc --disable-ipv6 #make #make install 2.初步建立主配置文件/etc/named.conf,并获得根服务器文件 首先让自己的DNS服务器指向上游ISP提供了DNS服务器地址(我的直接指向了自己的ADSL网关192.168.1.1) #echo "nameserver 192.168.1.1" > /etc/resolv.conf 然后执行以下命令并查看查询结果 #dig @a.root-servers.net. ns 或 #dig -t NS .     如果显示为以下结果,则表示根服务器文件成功获得,一共是13台。若少于13,可将显示出的任一台的IP地址设置为本机DNS服务指向地址后,再一次查询,此时一般可以获得类同以下的显示结果。如果你没有连接Internet,可将以下内容复制粘贴为你的/var/named/named.ca。 ; <<>> DiG 9.4.0rc2 <<>> … Continue reading

Posted in LINUX | Leave a comment

Apache2.2.4+PHP5.2.1+MySQL5.0.37+openssl0.98e安装笔记(转)

 Apache2.2.4+PHP5.2.1+MySQL5.0.37+openssl0.98e安装笔记   注:以下安装实验在RedHat9.0上实现。 其中所需软件包均可以从网上下载得到,就不再指出路径。   1.安装mysql-5.0.37   #tar zxvf mysql-5.0.37-linux-i686-glibc23.tar.gz #mv mysql-5.0.37-linux-i686-glibc23  /usr/local/mysql #groupadd mysql #useradd -d /usr/local/mysql/data -s /sbin/nologin -g mysql mysql #cd /usr/local/mysql #chown -R root . #chown -R mysql data #chgrp -R mysql . #./scripts/mysql_install_db --user=mysql #./bin/mysqld_safe … Continue reading

Posted in LINUX | Leave a comment