30选5玩法|福彩30选5开奖结果321|
 

Cacti安装最全配置资料

No Comments Linux

安装环境:
1.系统:Centos 5.12.软件包需求:cacti-0.8.7j,mysql-5.0.20,php-5.2.6,apache2.2(以上均为源码包).
安装配置过程:
1. 安装apache2.2解压软件包,进入安装目录,我的编译过程如下:
# ./configure –prefix=/usr/local/apache –enable-so –enable-mods-shared=all –with-mpm=worker –enable-cache –enable-disk-cache –enable-mem-cache –enable-file-cache
# make# make install
Apache编译?#38382;?#27880;解./configure   //配置源代码树
–prefix=/usr/local/apache   //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录。
–enable-module=so   //打开 so 模块,so 模块是用来提 DSO 支持的 apache 核心模块
–enable-deflate=shared   //支持网页压缩
–enable-expires=shared   //支持 HTTP 控制
–enable-rewrite=shared   //支持 URL 重写
–enable-cache  //支持缓存
–enable-file-cache  //支持文件缓存
–enable-mem-cache  //支持记忆缓存
–enable-disk-cache  //支持磁盘缓存
–enable-static-support   //支持静态连接(默认为动态连接)
–enable-static-htpasswd   //使用静态连接编译 htpasswd – 管理用于基本?#29616;?#30340;用户文件
–enable-static-htdigest   //使用静态连接编译 htdigest – 管理用于摘要?#29616;?#30340;用户文件
–enable-static-rotatelogs   //使用静态连接编译 rotatelogs – 滚动 Apache 日志的管道日?#22659;?#24207;
–enable-static-logresolve   //使用静态连接编译 logresolve – 解析 Apache 日志中的IP地址为主机名
–enable-static-htdbm   //使用静态连接编译 htdbm – 操作 DBM 密码数据库
–enable-static-ab   //使用静态连接编译 ab – Apache HTTP 服务器性能测试工具
–enable-static-checkgid   //使用静态连接编译 checkgid
–disable-cgid   //禁止用一个外部 CGI 守护进程执行CGI脚本
–disable-cgi   //禁止编译 CGI 版本的 PHP
–disable-userdir   //禁止用户从自己的主目录中提供页面
–with-mpm=worker // 让apache以worker方式运行
–enable-rewrite //让apache支持伪静态规则
–enable-deflate //开启gzip压缩
–enable-authn-dbm=shared // 对动态数据库进行操作。Rewrite时需要
–enable-mods-shared=all 做大化编译
安装完成后,编辑apache的配置文件,使之能正常使用:
# vi /usr/local/apache/conf/httpd.conf
?#19994;?#19979;面这行:
#ServerName
[url]www.example.com:80[/url]
改为:
ServerName yourIP:80
#Listen 80
Listen yourIP:80
启动apache:
#/usr/local/apache/bin/apachectl start
在浏览器里输入你的IP或者localhost测试一下,是否能看到apache的测试页,成功的话,说明安装成功
#cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
vi /etc/rc.d/rc.local
#apache start
/usr/local/apache/bin/apachectl start  —添加apache自启动
这样就可以实现service httpd restart 了
2.安装mysql-5.0.20
解压软件包,进入安装目录,我的编译过程如下:
# ./configure –prefix=/usr/local/mysql
# make;make install
# cp support-files/my-medium.cnf /etc/my.cnf (这一步是将配置文件拷贝到/etc下面)
编译选项当中指定安装路径就可以了
配置mysql过程:
#groupadd mysql
#useradd -g mysql mysql
#cd /usr/local/mysql
#./bin/mysql_install_db –user=mysql
#chown -R root .
#chown -R mysql var
#chgrp -R mysql .
启动mysql
#./bin/mysqld_safe –user=mysql &
如果看到下面的信息,就说明启动成功了
# Starting mysqld daemon with databases from /usr/local/mysql/var
可以测试一下,看看能不能登陆mysql数据库
# /usr/local/mysql/bin/mysqladmin -uroot password ‘你的密码’ (给初始登陆mysql的用户root设置密码,当
然不设置也能登陆,推荐设置密码)
# /usr/local/mysql/bin/mysql -uroot -p你的密码  (注意: -p后面不要带空格)
如果出现下面的欢迎字样,说明连接成功:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9 to server version: 5.0.20a-log
mysql> set password for );
mysql> Query OK, 0 rows affected (0.00 sec)
mysql> create database cactidb;
mysql> grant all on cactidb.* to root;
mysql> grant all on cactidb.* to ;
mysql> grant all on cactidb.* to cactiuser;
mysql> grant all on cactidb.* to ;
mysql> set password for );
mysql> flush privileges; (See cacti docs/INSTALL)
mysql> exit
//select * from user;
//查询帐号是否添加成功
3.安装php-5.2.0
解压软件包,进入安装目录,我的编译过程如下:
#./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs –with-mysql=/usr/local/mysql –with-xml-config=/usr/local/lib –with-config-file-path=/usr/local/php/etc –enable-socket
#make;make install
编译选项中–with-apxs2=/usr/local/apache/bin/apxs 是?#21040;玃HP模块编译进apache,–with-
mysql=/usr/local/mysql  是说指定mysql的路径(其实就是告诉PHP我们的mysql的一些头文件信息,如果你的
mysql和PHP不是同一台机器的话,指定mysql的头信息是编译必要的),–with-config-file-
path=/usr/local/php/etc 是?#21040;玃HP的主配置文件放在什么地方,这是个人习惯
#cp php.ini-dist /usr/local/php/lib/php.ini
#vi /usr/local/apache/conf/httpd.conf
?#19994;?#19979;面字段:
DirectoryIndex
在iindex.html前面添加index.php
并在配置文件最后加入如下字段:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
测试PHP是否正常运行:
#vi /usr/local/apache2/htdocs/index.php
写入下面一行:
保存退出后重新启动apache
#/etc/init.d/httpd start
在浏览器里输入IP,如果能够看到phpinfo的测试页,那么PHP已经正常工作了
4,安装rrdtool
tar zxvf rrdtool-1.0.50.tar.gz
cd rrdtool-1.0.50
./configure –prefix=/usr/local/rrdtool
make
make install
5, net-snmp 安装
rpm -qa | grep net-snmp
net-snmp-*
net-snmp-*
net-snmp-*
编辑本地snmpd:
vi /etc/snmp/snmpd.conf
更改 1、com2sec notConfigUser  default      public
      改为:com2sec notConfigUser (你想监控的那台机器的IP)      public
      2、access  notConfigGroup “”      any      noauth    exact  systemview  none none
      改为:access  notConfigGroup “”      any      noauth    exact  all  none  none
      3、#view all    included  .1        80
      将前面的 # 注释 去掉。
保存退出 :wq
service snmpd restart
注:如果你机器内没有snmpwalk和snmpge命令,请到安装盘里查找 net-snmp-utils 包,rpm -ivh net-snmp-utils-*.rpm ?#32531;?#36825;两个命令就在系统里了。其他包也都在安装盘里 确保安装这四个包就OK
6,解压cacti的软件包,进行如下操作:
#mv cacti-0.8.7  /usr/local/apache/htdocs/cacti
#cd /usr/local/apache/htdocs/cacti
useradd cactiuser
passwd cactiuser (pwd:cactipw)
/usr/local/mysql/bin/mysql –u root –p cactidb 导入数据表
chown –R cactiuser rra/ log/
vi include/config.php
  $database_type = “mysql”;
  $database_default = “cactidb”;
  $database_hostname = “localhost”;
  $database_username = “cactiuser”;
  $database_password = “cactipw”;
7,修改计划任务,使CACTI每5分钟获得一?#38382;?#25454;:
#crontab -e -u 用户名
添加如下内容:
*/5 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
保存退出
#chown -R rra/ log/。
8,cacti 配置
[url]http://localhost/cacti[/url]
默认账号密码都是admin
配置路径:
snmpwalk Binary Path : /usr/bin/snmpwalk
snmpget Binary Path: /usr/bin/snmpget
RRDTool Binary Path: /usr/local/rrdtool/bin/rrdtool
PHP Binary Path: /usr/local/php/bin/php
Cacti Log File Path: /opt/cacti/log/cacti.log
Cactid Poller File Path: /opt/cacti/poller.php
9,排错
1. 首先检查一下rra/下面,有没有数据,如果没有检查rra/ log/的拥有者是不是cactiuser
2. snmpwalk -v 2c -c public ServerIP if 用来测试被控对象(serverIP)是否开启了SNMP服务
3. snmpwalk -v 2c ServerIP -c public .1.3.6.1.4.1.2021.10.1.3 查看被控端是否有CPU负载的数据返回
4. /usr/local/bin/php /home/wwwroot/cacti/poller.php 用来测试PHP是否可以采集到数据。如果上面的都正确,但这步出错,很有可能是PHP配置的问题,或开启了SuLinux。
5. 如果按第2步snmpwalk能采集到数据,但第3步无法采集,可能是PHP设置的问题,修改PHP.ini,很有可能是PHP权限问题。如果第4步正常而无法显?#23601;跡?#21017;可能是rra/ log/ 的Owner不对6. #crontab -e*/5 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
      //每5分钟自动执行一?#38382;?#25454;注意:如果执行没成功是模式没有执行 或者运行一下该命令看rra文件夹是否有数据# /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php查询模式crond的
[[email protected] bin]# chkconfig –list| grep cron
anacron         0:off   1:off   2:on    3:off   4:on    5:on    6:off
crond           0:off   1:off   2:on    3:off   4:on    5:on    6:off[[email protected] bin]# chkconfig crond on    //更改模式为启动计划任务[[email protected] bin]# chkconfig –list| grep cron
anacron         0:off   1:off   2:on    3:off   4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off php相关环境配置?#36947;?#19968;:

./configure –prefix=/usr/local/php5 –with-config-file-path=/usr/local/php5/etc –with-apxs2=/usr/local/apache/bin/apxs –with-mcrypt –with-zlib –with-gd –with-gettext –with-gdbm –enable-mbstring –enable-sockets

Linux squid安装与配置

No Comments Linux

官方网站:http://www.squid-cache.org
SARG官方:http://sarg.sourceforge.net/sarg.php

wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE7.tar.gz
wget http://www.sfr-fresh.com/unix/privat/sarg-2.2.5.tar.gz

参考资料:http://www.php-oa.com/category/squid%e4%bb%a3%e7%90%86%e6%8a%80%e6%9c%af/

测试环境:AS4+squid-3.0+sarg-2.2.5

一、安装squid
# groupadd squid
# useradd -g squid -s /sbin/nologin squid
# tar -zxvf squid-3.0.STABLE7.tar.gz
# cd squid-3.0.STABLE7
# cp helpers/basic_auth/NCSA/ncsa_auth /usr/bin/
# vi src/errorpage.cc        //把下面的“ “Generated %T by %h (%s)\n”” 修改为“ “Generated %t by %h (%s)\n””即可
    {
ERR_SQUID_SIGNATURE,
     “\n<BR clear=\”all\”>\n”
     “<HR noshade size=\”1px\”>\n”
     “<ADDRESS>\n”
     “Generated %T by %h (%s)\n”
     “</ADDRESS>\n”
     “</BODY></HTML>\n”
    },
# ./configure –prefix=/usr/local/squid –enable-gnuregex –enable-arp-acl –enable-auth=”basic” –enable-basic-auth-helpers=”NCSA” –enable-async-io=80 –enable-storeio=ufs –enable-icmp –enable-kill-parent-hack –enable-snmp –disable-ident-lookups –enable-cache-digests –enable-ssl –enable-delay-pools –enable-poll –enable-linux-netfilter –enable-underscore –enable-err-language=”Simplify_Chinese” –enable-default-err-languages=”Simplify_Chinese”

解释说明:
–prefix=/usr/local/squid //指定安装路径
–enable-arp-acl //这样可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗
–enable-async-io=80 //这个主要是设置async模式来运行squid,我的理解是设置用线程来运行squid,如果服务器配置很不错,有1G以上内存,cpu使用SMP的方式的话可以考虑设成160或者更高。如果服务器比?#26174;?#31957;就根据实?#26159;?#20917;设了。另外此项还另cache文件支持aufs
–enable-auth-modules //此编译选项启用?#29616;?#27169;块,可以对访问代理用户进行授权。
–enable-cache-digests //使能缓存摘要,本来此项目的是为了在Squid集群服务之间迅速发现缓存对象,这里在本地使用,可以加快请求时,检索缓存内容的速度。
–enable-err-language=”Simplify_Chinese” 和–enable-default-err-languages=”Simplify_Chinese” //指定出错是显示的错误页面为简体中文
–enable-delay-pools //?#25628;?#39033;使能一个延时池,这样能对某些特定?#37027;?#27714;限制额定带宽。
–enable-gnuregex //由于Squid大量使用?#22336;?#20018;处理做各种判断,加此项能更?#20040;?#29702;。
–enable-icmp //加入icmp支持
–disable-ident-lookups //防止系统使用RFC931规定的身份识别方法。
–enable-kill-parent-hack //关掉suqid的时候,要不要连同父进程一起关掉,这个当然要啦
–enable-linux-netfilter //允许使用Linux的透明代理功能。
–enable-poll //应启用Poll()函数而不是select()函数,通常而言poll(轮询)比select要好,但configure(脚?#22659;?#24207;)已知Poll在某些平台下失效, 若你认为你比configure编译配置脚?#22659;?#24207;要聪明的话,可以用这个选项启用Poll。总之就是用这个可以提升性能就是啦。
–enable-snmp //?#25628;?#39033;可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid支持SNMP接口。
–enable-storeio=ufs,null //使用的文件系统通常是默认的ufs,不过如果想要做一个不缓存任何文件的代理服务器,就需要?#30001;蟦ull文件系统。
–enable-underscore //允许解析的URL中出现下划先,因为默认squid会认为带下划线的URL地址是非法的,并拒绝访问该地址。

# make
# make install
# /usr/local/squid/sbin/squid -z      //测试Squid运行状况
# chown -R squid.squid /usr/local/squid/var/
# /usr/local/apache/bin/htpasswd -c /usr/local/squid/etc/password guest   //输入密码二次,即可。如果以后要增加用户,去掉’-c’

# vi /usr/local/squid/etc/squid.conf

http_port 80
cache_mem 128 MB
cache_dir ufs /usr/local/squid/var/cache 100 16 256
cache_effective_user squid
cache_effective_group squid
dns_nameservers 222.172.200.68
cache_access_log /usr/local/squid/var/logs/access.log
cache_store_log /usr/local/squid/var/logs/store.log
cache_log /usr/local/squid/var/logs/cache.log
pid_filename /usr/local/squid/var/logs/squid.pid
visible_hostname tglm.3322.org
client_mask 255.255.255.255
cache_mgr
error_directory /usr/local/squid/share/errors/Simplify_Chinese
auth_param basic program /usr/bin/ncsa_auth /usr/local/squid/etc/password
auth_param basic children 5
auth_param basic realm My Proxy Caching Domain
auth_param basic credentialsttl 2 hours
acl normal proxy_auth REQUIRED
http_access allow normal

------中间广告---------

acl cc arp 00:91:50:04:06:38
acl bb src 222.220.0.0/255.255.0.0
acl aa src 0.0.0.0/0

acl tt time MTWHF 10:20-18:30
acl xz urlpath_regex -i \.mp3$ \.avi$ \.wma$
acl ww dstdomainwww.baidu.comwww.qq.com

http_access deny xz
http_access deny !tt
http_access deny ww
http_access allow cc
http_access allow bb

命令解释:
error_directory //设定错误文档
http_port 192.168.0.1:3128 //设定SQUID的代理端口 (?#30001;螴P地址,Squid就不会监听外部的网络接口)
dns_nameservers //电信公用DNS
cache_mgr      //管理者的电子邮件
sible_hostname   //标志主机名
client_mask 255.255.255.255 //告诉Squid如何处理用户,对每个请求的IP地址作为单独地址处理
httpd_accel_uses_host_header on //设定http1.1协议支持
httpd_accel_host virtual
httpd_accel_with_proxy on   //是否让squid代理本地的web服务
http_access allow all     //允许所有主机通过代理服务器上网
cache_mem 20 MB           //指定Squid可以使用的RAM
maximum_object_size 4096 KB //缓存文件的最大和最小值
minimum_object_size 0 KB
maximum_object_size_in_memory 30 KB
minimum_object_size_in_memory 0 KB
cache_dir ufs /usr/local/squid/var/cache 100 16 256 //磁盘缓存目录,100M缓存空间,16个目录,256个子目录;
cache_access_log /var/squid/access.log //客户端访问日志
cache_log /var/squid/cache.log //缓存访问情况
cache_store_log /var/squid/store.log //网页调用情况
cache_swap_low 85       //指定进行空间交换?#30446;?#21344;比(缓存数值超过或低于某个百分比时和交换空间进行数据交换)
cache_swap_high 90
httpd_accel_port 80      //被缓存服务器的port
acl mmxfile urlpath_regex -i \.mp3$ \.avi$ \.wma$   //(-i?#38382;?#24573;?#28304;?#23567;写如:mp3=MP3)
http_access deny mmxfile

# /usr/local/squid/sbin/squid -NCd1       //测试ctrl+c退出
# echo “/usr/local/squid/bin/RunCache & ” >> /etc/rc.d/rc.local
# /usr/local/squid/sbin/squid -k reconfigure //启用新的配置文件
# /usr/local/squid/sbin/squid -k rotate       //截断日志
# /usr/local/squid/sbin/squid -k shutdown     //stop squid

二、安装sarg
# mkdir /usr/local/sarg
# tar zxvf sarg-2.2.5.tar.gz
# cd sarg-2.2.5
# ./configure –prefix=/usr/local/sarg –enable-mandir=/usr/local/sarg/man –enable-bindir=/usr/local/sarg/bin
# make
# make install
# vi /usr/local/sarg/sarg.conf
language english             //指定网页报告文件的语言类型,不支持中文网页。
access_log /usr/local/squid/var/logs/access.log //指定squid日志文件绝?#26376;?#24452;。
title “squid user access reports”         //指定网页标题
output_dir /usr/local/apache/htdocs/sarg          //指定网页报告文件输出路径
overwrite_report no          //是否覆盖报告,当那个日期的报告已经存在时是否覆盖掉
mail_utility mail
topsites_num 100
exclude_codes /usr/local/sarg/exclude_codes
max_elapsed 28800000
charset UTF-8
exclude_hosts /usr/local/sarg/norecords //指定不计入排序的站点列表文件名
resolve_ip no
user_ip no                          //使用用户名显示

# vi /usr/local/sarg/norecords      //添加不计排序站点
google.com
microsoft.com
baidu.com

# /usr/local/sarg/bin/sarg     //生成报表
# vi/root/sarg-hour.sh //每小时生成
#!/bin/bash
#hour
Date=$(date -d “1 hours ago ” +”%y%m%d%H”)
/usr/local/squid/sbin/squid -k rotate
sleep 10
Squiddir=’/usr/local/squid/var/logs’
Access=’access.log.*’
/bin/mv ${Squiddir}${Access} ${Squiddir}access${Date}.log
/us

文章出处:飞诺网(

squid,正向代理,?#32874;?#20195;理

No Comments 网络技术

什么是?#32874;?#20195;理,如何利用?#32874;?#20195;理提高网站性能

这几天常看到kangzj在博客里谈论代理,上篇博文也提到过?#32874;?#20195;理,有同学对利用绝?#26376;?#24452;绕过ghs起到加速作用不是很理解,那就总结一下?#32874;?#20195;理的知识。谈到google ghs时,说绕过ghs?#32874;?#20195;理服务器直接使用*.appspot.com起到加速的目的,好像本文标题“利用?#32874;?#20195;理提高网站速度”有点矛盾,其实不然,我们域名下的资源文件绕过一个?#32874;?#20195;理服务器,得到的appspot?#32874;?#20195;理服务器更直接而且它有负载均衡机制。

1.什么是正向代理和正向代理服务器?

正向代理就是通常所?#26723;?#20195;理,是?#31243;?#30005;脑通过一台服务器来上Internet网的这?#22336;?#24335;,其中这台电脑就叫客户机,这台服务器就叫正向代理服务器也就是通常所?#26723;?#20195;理服务器。在这?#22336;?#24335;中,你是主动的,网站是被动的,网站那里不能得到你的真实ip地址。(通俗讲法)

正向代理服务器。它只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器(一般在IE-Internet选项-连接-?#38047;?#32593;设置),并将本来要直接发送到Web服务器?#31995;膆ttp请求发送到代理服务器?#23567;?

2.什么是?#32874;?#20195;理和?#32874;?#20195;理服务器?

?#32874;?#20195;理就是网站通过一台服务器发布到公网,供用户访问。用户直接访问那台?#32874;?#20195;理服务器,?#32531;?#36890;过那台服务器访问到网站。用户无法得到网站的真实IP地址。这样就保护了网站服务器,如果您有台服务器在国内又不想让人?#19994;絀P,就可以在国外搭建一台?#32874;?#20195;理服务器。一个?#32874;?#20195;理服务器将很多网站解析到同一ip地址上。(通俗讲法)

技术讲法,普通的Web代理服务器是不支持外部对内部网络的访问请求的。当一个代理服务器能够代理外部网络?#31995;?#20027;机,访问内部网络时,这种代理服务的方式称为?#32874;?#20195;理服务。此时的代理服务器称为?#32874;?#20195;理服务器,对外表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对?#32874;?#20195;理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。

?#32874;?#20195;理用于外部网络访问内部网络时使用,正向代理用于提供内部网络对外部网络的访问能力,并可以使用包过滤拒绝其他方式访问外部网络。

3.现在看一个?#36947;?#21033;用 squid ?#32874;?#20195;理提高网站性能 [参考www.bitscn.com]

?#32874;?#20195;理技术在提高网站访问速度,增强网站可用性、安全性方面有很好的用途。可以利用 DNS 轮询和 Squid ?#32874;?#20195;理技术,实现了网站的负载均衡,从而提高了网站?#30446;?#29992;性和可靠性。

?#32874;?#20195;理服务器也称为WEB加速服务器,它位于WEB 服务器?#37027;?#31471;,充当WEB 服务器的内容缓存器。来?#26723;?#23454;际的WEB服务器的负载。系统结构如下图

449234062847054684[1]

现在?#34892;?#22810;大型的门户网站如SINA 都采用squid ?#32874;?#20195;理技术来加速网站的访问速度,可将不同的 URL 请求分发到后台不同的WEB 服务器上,同时互联网用户只能看到?#32874;?#20195;理服务器的地址,加强了网站的访问安全。

?#32874;?#20195;理服务器是针对 WEB 服务器设置的,后台 WEB 服务器对互联网用户是透明的,用户只能看到?#32874;?#20195;理服务器的地址,不清楚后台 WEB 服务器是如何组织架构的。当互联网用户请求 WEB 服务时,DNS 将请求的域名解析为?#32874;?#20195;理服务器的 IP 地址,这样 URL 请求将被发送到?#32874;?#20195;理服务器,由?#32874;?#20195;理服务器负责处理用户?#37027;?#27714;与应答、与后台 WEB 服务器交互。利用?#32874;?#20195;理服务器减轻了后台 WEB 服务器的负载,提高了访问速度,同时避免了因用户直接与 WEB 服务器通信带来的安全隐患。

Squid ?#32874;?#20195;理的实现原理

目前?#34892;?#22810;?#32874;?#20195;理软件,比较有名的有NginxSquid。其他还包括Socks、Apache、Jigsaw、Delegate等。

Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,是一个高性能的 HTTP 和?#32874;?#20195;理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。

Squid 是由美国政府大力资助的一项研究计划,其目的为解决网络带宽不足的问题,支持HTTP,HTTPS,FTP 等多?#20013;?#35758;,是现在 Unix 系统上使用、最多功能也最完整的一套软体。下面将重点介绍 Squid ?#32874;?#20195;理的实现原理和在提高网站性能方面的应用。

Squid?#32874;?#20195;理服务器位于本地 WEB 服务器和 Internet 之间 , 组织架构如下图

449234062847054685[1]

客户端请求访问 WEB 服务时,DNS 将访问的域名解析为 Squid ?#32874;?#20195;理服务器的 IP 地址,这样客户端的 URL 请求将被发送到?#32874;?#20195;理服务器。如果 Squid ?#32874;?#20195;理服务器中缓存了?#20204;?#27714;的资源,则将?#20204;?#27714;的资源直接返回给客户端,否则?#32874;?#20195;理服务器将向后台的 WEB 服务器请求资源,?#32531;?#23558;请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。

Squid ?#32874;?#20195;理一般只缓存可缓冲的数据(比如 html 网页和?#35745;?#31561;),而一些 CGI 脚?#22659;?#24207;或者 ASP、JSP 之类的动态程序默认不缓存。它根据从 WEB 服务器返回的 HTTP 头标记来缓冲静态页面。有四个最重要 HTTP 头标记:

    ●Last-Modified: 告诉?#32874;?#20195;理页面什么时间被修改
    ●Expires: 告诉?#32874;?#20195;理页面什么时间应该从缓冲区中?#22659;?br />    ●Cache-Control: 告诉?#32874;?#20195;理页面是否应该被缓冲
    ●Pragma: 用来包含实现特定的指令,最常用的是 Pragma:no-cache

配置 Squid1 服务器 ,以下为实战,可跳过直接看测试和总结(已用红色标出)。

    下载 squid-3.0.STABLE8.tar.gz 源码包,将其放在 /home 目录下
    1.解压缩tar – zxvf squid-3.0.STABLE8.tar.gz
    2.设置配置?#38382;篶d squid-3.0.STABLE10

    ./configure – prefix=/usr/local/squid 

    将 squid 安装在 /usr/local 目录下
    3.编译安装:make&make install安装完以后会在 /usr/local 目录下看见 squid 目录。
    4.配置 squid 配置文件
    编辑 squid.conf 文件,vi /usr/local/squid/etc/squid.conf 

cache_effective_user squid
cache_effective_group squid
######### 设定 squid 的主机名 , 如无此项 squid 将无法启动
visible_hostname squid1.nlc.gov.cn
############# 配置 squid 为加速模式 #################
http_port 80 accel vhost vport
icp_port 3130
##### 配置 squid2、squid3 为其邻居,当 squid1 在其缓存中没有?#19994;?#35831;求的资源时,通过 ICP 查询去其邻居中取得缓存
cache_peer squid2.ibm.com.cn sibling 80 3130
cache_peer squid3.ibm.com.cn sibling 80 3130
##### squid1 的三个父节点,originserver ?#38382;?#25351;明是源服务器,
round-robin  ?#38382;?#25351;明 squid 通过轮询方式将请求分发到其中一台父节点;
squid 同时会对这些父节点的健康状态进行检查,如果父节点 down 了,
那么 squid 会从剩余的 origin 服务器中抓取数据
cache_peer 210.82.118.195 parent 8080 0 no-query originserver round-robin \
                                              name=webServer1
cache_peer 192.168.76.226 parent 8080 0 no-query originserver round-robin \
                                              name=webServer2
cache_peer 192.168.76.227 parent 8080 0 no-query originserver round-robin \
                                            name=webServer3
#### 将 wenjin.cache.ibm.com.cn 域?#37027;?#27714;通过 RR 轮询方式转发到三个父节点中的一个
cache_peer_domain webServer1 webServer2 webServer3 wenjin.cache.ibm.com.cn
##### 下面是一些访问控制、日志和缓存目录的设置
acl localnet src 192.168.76.223 192.168.76.224 192.168.76.225
acl all src 0.0.0.0/0.0.0.0
http_access allow all
icp_access allow localnet
cache_log /usr/local/squid/var/logs/cache.log
access_log /usr/local/squid/var/logs/access.log squid
cache_dir ufs /usr/local/squid/var/cache/ 1000 16 256
####### 对 squid 的一些优化 ###############
maximum_object_size 10240 KB  ### 能缓存的最大对象为 10M
maximum_object_size_in_memory 512 KB ### 内存中缓存的最大对象 512K
cache_mem 256 MB  ###squid 用于缓存的内存量

    保存后 :wq 退出。 feedom.net

    在 /etc/hosts 文件中添加

192.168.76.223  squid1.ibm.com.cn
192.168.76.224  squid2.ibm.com.cn
192.168.76.225  squid3.ibm.com.cn

    保存后 : wq 退出。

    检查 squid 配置文件正确与否:/usr/local/squid/bin/squid – k parse

    生成缓存目录/usr/local/squid/bin/squid – z 54ne.com

    启动squid:/usr/local/squid/bin/squid

    配置 squid2 和 squid3 服务器

    squid2 和 squid3 服务器的配置方法和配置?#38382;?#21644; squid1 一样,配置完成后,分别启动这两个服务器?#31995;?squid 服务。

    在 squid 的日志文件 cache.log 中,出现如下日志信息则说明三台 squid 之间成功配置为 sibling,且配置了三个父代理。

2008/11/17 10:08:47| Configuring Sibling squid1.ibm.com.cn/80/3130
2008/11/17 10:08:47| Configuring Sibling squid3.ibm.com.cn/80/3130
2008/11/17 10:08:47| Configuring Parent 210.82.118.195/8080/0
2008/11/17 10:08:47| Configuring Parent 192.168.76.226/8080/0
2008/11/17 10:08:47| Configuring Parent 192.168.76.227/8080/0
2008/11/17 10:08:47| Ready to serve requests.

测试

    测试之前,保证 DNS 服务、三台 squid 服务和三台 web 服务都正常起来。在客户端输入http://wenjin.cache.ibm.com.cn,则正确的显示该网页。服务器端的响应对客户端是透明的,客户端不知道请求是由哪台 WEB 服务器处理的?#27426;?#19988;其?#24515;程?Squid 服务器或 WEB 服务器发生故障,也不影响服务的正常运?#23567;?

总结

    Squid 是一个开源的软件,利用它的?#32874;?#20195;理技术可以提高网站系统的访问速度。本文在真?#26723;?#32593;络环境下,利用三台 squid ?#32874;?#20195;理服务器加速了网站的性能,同时结合 DNS 轮询技术实现了网站的负载均衡。经过一?#38382;?#38388;的测试和试运行,该网站的访问速度和可用性方面?#21152;?#24456;大的提高,从未出现过网站服务中断情况。

高性能LINUX双效防火墙

No Comments Linux

系统功能说明:

  包过滤和WEB代理双效合一。由iptables 实现包的过滤,由LINUX下大名鼎鼎的squid结合NAT来实现透明WEB代理。SQUID代理的性能本身已经是代理服务器中的佼佼者,本系统将其性能发挥的极至?#21644;?#36807;ramdisk技术,让SQUID把网页cahce到内存中,这样,你所访问的网页,除了第一次需要到网络上取,以后都将来自内存!

(1)选择一台比较稳定的计算机,装上两块网卡,512或1024M内存,硬盘160G(注意:第一块网卡接内网,第二块网卡接外网。)
(2)安装centos5.3,安装时选择服务器模式,自动分区
(3)大概在10-15分中后系统安装完毕,重启后进入系统,开始配置系统

1、开启包转发

  编辑/etc/sysctl.conf,将net.ipv4.ip_forward=0 该为net.ipv4.ip_forward=1,保存修改。其目的是允许LINUX内核做IP包的转发:允许IP数据包从一个网络接口穿越到另一个网络接口,只有这样,系统才具有充当包过滤防火墙的条件。

2、激活RamDisk

  修改/etc/grub.conf

#boot=/dev/sda
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.6.18-10)
root (hd0,0)
kernel /vmlinuz-2.6.18-10 ro root=/dev/sda6ramdisk=268435
initrd /initrd-2.6.18-10.img

  其中ramdisk=268435 是我们要添加的内容,目的是告诉系统默认的 ramdisk的大小是268435k,也就是256M。注意千万不可以直接写256M,这样系统是不认识的,必须要换成K才行!(摸索了好几个月的心得!),这样设好,重新启动后就系统就回自动生成一个256M的虚拟盘了。当然,你要根据自己的内存大小来设置这个?#38382;?#22914;果不运行XWINDOWS,设你总内存的一半都没问题,因为LINUX系统本身并不需要很多内存的。

3、设置squid?#38382;?

  编辑/etc/squid/squid.conf,在末?#24067;?#20837;以下条目:

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
http_access allow all
cache_dir ufs /squid 256 16 256

  前面四条?#38382;?#20351;squid提供透明代理提供基础。“http_access allow all”表示允许所有?#30446;?#25143;机器都可以访问代理;这里特别强调的是最后一条 “cache_dir ufs /squid 256 16 256?#20445;?

256代表缓存空间最大为256M,16代表squid可以在硬盘缓冲存放的目录下建立的第一级子目录的数目,缺省值为16,;256是可以建立第二级子目录的数目,缺省值256。

  squid默认的cache_dir是“/var/spool/squid?#20445;?#25105;们因为要让squid将内容cache到内存中,所以这里先改成/squid,接下来要将ramdisk影射到/squid目录?#23567;?

4、建立ramdisk。用下面的两条命令来完成:

(1)mkdir /squid 建立目录“/squid”
(2)mkfs /dev/ramdisk 创建文件系统
(3)mount /dev/ramdisk /squid 将ramdisk ?#20197;?#21040;/squid目录。

由于ramdisk在?#30475;?#37325;启后会消失,因此,为了让系统启动时自动建立好,我们可以建立一个自动装载ramdisk的批命令:

mkfs /dev/ramdisk
mount /dev/ramdisk /squid

将这两条命令写到一个文件中,我们暂且用myautoexec.bat作为文件名,为了方便起见,我们建立/admin目录,?#32531;?#23558;myautoexec.bat文件保存在/admin下,并加给可执行的权限:chmod +x myautoexec.bat

  但这样系统启动时并不会被调用,所以我们还要做一件事:编辑/etc/rc.local 文件,在文件末尾插入一行:/admin/myautoexec.bat,这样,系统就会自动调用myautoexec.bat了。

5、初始化squid。

  还记得“cache_dir ufs /squid 256 16 256”这个?#38382;?#21527;?初始化过程实际上就是squid在指定的cache_dir中建立指定的一级目录(这里是16),?#32531;?#22312;每个一级目录中建立256个二级目录。使用的命令是:“squid –z ”。但现在这时输入命令系统会报告出错,因为/squid现在的属主是root, squid 没有权限操作root的文件,所以还要先把/squid目录指派给squid用户,用“chown squid.squid /squid”。再一次运?#23567;皊quid –z ”,不到一秒钟时间就可完成。如果这个过程是在磁盘上而不是在ramdisk上,一般要工作几十秒钟。

  同样,这步的设置也要把

chown squid.squid /squid
squid –z

  两条命令写到myautoexec.bat中,最后?#30001;?#19968;条“squid”,就是启动squid服务进程。到这里,squid的设置全部完成。

6、设置NAT和防火墙规则。

  为了方便起见,建立文件/admin/myfirwall,将规则都写到文件中:

#——初始化部分
iptables -F
iptables -t nat -F
modprobe ip_tables
modprobe iptable_nat
modprobe iptable_filter
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
#——初始化结束
#-START NAT<<<<<让地址为10.27.0.0/16的内部计算机可以伪装上因特网。
iptables -t nat -A POSTROUTING -o eth1 -s 10.3.37.0/24 -j MASQUERADE
#>>>>>end NAT
#端口转换,将所有发到外网?#37027;?#27714;端口为80的都转到3128去,让squid来处理,这一
#–条是透明代理的关键<<<<<<
iptables -t nat -A PREROUTING -i eth0 -d ! 10.27.0.0/16 -p tcp -m tcp \
–dport 80 -j REDIRECT –to-ports 3128
#>>>>>>>end 端口转换
#防火墙规则<<<<<<< 这里要根据你的要求来定了
iptables -A INPUT -i eth1 -s 0.0.0.0/0 -p ICMP -j DROP
iptables –A INPUT –i eth1 –s 0.0.0.0/0 –p TCP –port ! 80 –j DROP
#以上两条分别是将所?#20889;?#22806;网进来的ping包都统统丢弃,将所有由外网发起的非80端口
#?#37027;?#27714;都统统丢弃,意思就是只不允许从外网向内网发ping ,只允许外网访问内网的
#HTTP服务。完整的防火墙规则要根据你的网络安全要求来制定,这里只做参考。

  说明?#26680;?#26377;以#开头的行表示说明,不用写入文件,保存为/admin/myfirewall,并用“chmod +x /admin/myfirewall”使其可以执?#23567;?#32534;辑/admin/myautoexec.bat,加入“/admin/myfirewall”在最后一?#23567;?

  到此为止,我们的好性能防火墙全部配置完成,运行reboot 重启后,可以工作了。

Squid各配置文件说明:

http_port   IP:端口 (设置squid监听的IP地址和端口)

  cache_mem  指定使用多少物理内存作为高速缓存.如果这台服务器仅用于共享上网,没有其他服务,则可加大物理内存的1/2,但如果还有其他服务则

  cache_mem的大小不应超过物理内存的1/3.,否则会影响服务器的总体性能.

  cache_dir  ufs   /var/spool/squid 4096 16 256指定硬盘缓冲区的大小,其中ufs指的是缓冲的存储类型,一般为ufs,/var/spool/squid指硬盘缓冲存放的目录

  ,4096代表缓存空间最大为4096M,16代表squid可以在硬盘缓冲存放的目录下建立的第一级子目录的数目,缺省值为16,;256是可以建立第二级子目录的

  数目,缺省值256。

  cache_effective_user  squid  设定使用缓存的?#34892;?#29992;户.(系统默认)

  cache_effective_group  squid  设定使用缓存的?#34892;?#29992;户组(系统默认)

  dns_nameservers   IP  为了使Squid能解析域名,必须告诉squid?#34892;NS服务器..

  cache_access_log 定义了访问记录日志文件的路径,该日志记录了用户访问Internet的详细信息,通过日志文件可以查看每台客户机上网的记录…所以大?#20063;?#35201;干坏事的…

  cache_log 设置记录缓存的相关信息日志文件的路径…

  cache_store_log 定义了记录网页在缓存中调用情况日志文件的路径…

  visible_hostname 定义了运行squid的主机名称,当访问发生错误时,该选项的值会显示在错误提示网页中.建议输入主机的IP地址..

  cache_mgr 定义设置squid管理员的d E-mail地址,当访问发生错误时,该选项会显示在页面上.

  规则:我们还可以使用acl   定义squid访问控制列表.下面是其选项信息..

  src  IP   源IP地址(客户机的IP地址).

  dst  IP   目标地址(服务的器IP地址).

  scrdomain 源名称 (客户机所属的域).

  dstdomain 目标名称(服务器所属的域).

  time 一天中的某一时刻和一周内的某一天.

  url_regex  URL规则的表达式

  urlpath_regex:URL-path 略去协议和主机名的URL规则表达式匹配.

  proxy_auth 通过外部程序进行用户?#29616;?

  maxconn 单一IP最大连接数.

  time 语法[星期][时间段].星期可以使用这些关键字M(Mondy),T(Tuesday)…

  时间段:某一时刻-另一时刻

好了就以这个信息,下面我们去配置Squid服务器…

加强对Linux网络服务器的管理 合理使用工具

No Comments 网络技术

Linux网络服务器的管理工具介绍如下:

利用记录工具,记录对Linux系统的访问

Linux系统管理员可以利用前面所述的记录文件和记录工具记录事件,可以每天查看或扫描记录文件,这些文件记录了系统运行的所?#34892;?#24687;。如果需要,还可以把高优先级的事件提取出来传送给相关人?#36125;?#29702;,如果发现异常可以立即采取措施。

慎用Telnet服务

在Linux下,用Telnet进?#24615;?#31243;登录时,用户名和用户密码是明文传输的,这就有可能被在网上监听的其他用户截获。另一个危险是黑客可以利用Telnet登入系统,如果他?#21482;?#21462;了超级用户密码,则对系统的危害将是灾难性的。因此,如果不是特别需要,不要开放Telnet服务。如果一定要开放Telnet服务,应该要求用户用特殊的工具软件进?#24615;?#31243;登录,这样就可以在网上传?#22270;用?#36807;的用户密码,以免密码在传输过程中?#32531;?#23458;截获。

合理设置NFS服务和NIS服务

NFS(NetworkFileSystem)服务,允许工作站通过网络共享一个或多个服务器输出的文件系统。但对于配置得?#32531;?#30340;NFS服务器来讲,用户不经登录就可以阅读或者更改存储在NFS服务器?#31995;?#25991;件,使得NFS服务器很容?#36164;?#21040;攻击。如果一定要提供NFS服务,要确保基于Linux的NFS服务器支持SecureRPC(SecureRemoteProcedureCall),以便利用DES(DataEncryptionStandard)?#29992;?#31639;法和指数密?#25335;换?ExponentialKeyExchange)技术验证每个NFS请求的用户身份。

NIS(NetworkInformationSystem)服务,是一个分布式数据处理系统,它使网络中的计算机通过网络共享passwd文件,group文件,主机表文件和其他共享的系统资源。通过NIS服务和NFS服务,在整个网络中的各个工作站上操作网络中的数据就像在操作和使用单个计算机系统中的资源一样,并且这种操作过程对用户是透明的。但是NIS服务也?#26032;?#27934;,在NIS系统中,不怀好意的用户可以利用自己编写的程序来模仿Linux系统中的ypserv响应ypbind?#37027;?#27714;,从而截获用户的密码。因此,NIS的用户一定要使用ypbind的secure选项,并?#20063;?#25509;受端口号小于1024(非特权端口)的ypserv响应。

小心配置FTP服务

FTP服务与前面讲的Telnet服务一样,用户名和用户密码也是明文传输的。因此,为了系统的安全,必须通过对/etc/ftpusers文件的配置,禁止root,bin,daemon,adm等特殊用户对FTP服务器进?#24615;?#31243;访问,通过对/etc/ftphosts的设定限制某些主机不能连入FTP服务器,如果系统开放匿名FTP服务,则任何人都可以下载文件(有时还可以上载文件),因此,除非特别需要一般应禁止匿名FTP服务。

合理设置POP-3和Sendmail等电子邮件服务

对一般的POP-3服务来讲,电子邮件用户?#30446;?#20196;是按明文方式传送到网络中的,黑客可以很容易截获用户名和用户密码。要想解决这个问题,必须安装支持?#29992;?#20256;送密码的POP-3服务器(即支持AuthenticatedPOP命令),这样用户在往网络?#20889;?#36865;密码之前,可以先对密码?#29992;堋?

老版本的Sendmail邮件服务器程序存在安全隐患,为了确保邮件服务器的安全,应尽可能安装已消除安全隐患的最新版的Sendmail服务器软件。

加强对WWW服务器的管理,提供安全的WWW服务

当一个基于Linux系统的网站建立好之后,绝大部分用户是通过Web服务器,利用WWW浏览器对网络进行访问的,因此必须特别重视Web服务器的安全,无论采用哪种基于HTTP协议的Web服务器软件,都要特别关注CGI脚本(CommonGatewayInterface),这些CGI脚本是可执行程序,一般存放在Web服务器的CGI-BIN目录下面,在配置Web服务器时,要保证CGI可执行脚本只存放于CGI-BIN目录中,这样可以保证脚本的安全,?#20063;?#20250;影响到其他目录的安全。

最好禁止提供finger服务

在Linux系统下,使用finger命令,可以显示本地或远程系统中目前已登录用户的详细信息,黑客可以利用这些信息,增大侵入系统的机会。为了系统的安全,最好禁止提供finger服务,即从/usr/bin下?#22659;齠inger命令。如果要保留finger服务,应将finger文件换名,或修改权限为只允许root用户执行finger命令。

Linux网络服务安全的总结

由于Linux操作系统使用广泛,?#27490;?#24320;了源码,因此是被广大计算机用户研究得最彻底的操作系统,而Linux本身的配置又相当的复杂,按照前面的安全策略和保护机制,可以将系统的风?#25112;档?#26368;低,但不可能彻底消除安全漏?#30784;?

Linux网络服务器的管理工具就向大家介绍完了,希望大家已经掌握,另外,作为Linux系统的管理?#20445;?#22836;脑中一定要有安全防范意识,定期对系统进行安全检查,发现漏洞要立即采取措施,不给黑客以可乘之机。

文章转载自网管之家:

Nagios监控Linux与Windows主机

No Comments Linux

nagios监控linux与windows主机

经过一?#38382;?#38388;的整理,结合个人在linux与windows服务器?#31995;?#27979;试,写出这篇blog,希望更多地人关注nagios,虽然cacti也具有这样的功能但缺泛像nagios的警报功能。Naigos的安装:

一、 所需软件

nagios-2.9.tar.gz

nagios-plugins-1.4.7.tar.gz

imagepak-base.tar.gz

nsclient_201.zip

  二、 安装

1、nagios安装

tar –xvzf nagios-2.9.tar.gz   mkdir /usr/local/nagios   useradd nagios –d /usr/local/nagios   chmod 755 /usr/local/nagios   cd nagios-2.9   ./configure –prefix=/usr/local/nagios –with-gd-lib=/usr/local/lib   –with-gd-inc=/usr/local/include   make all   make install   make install-init ##This installs the init script in /usr/local/etc/rc.d   make install-commandmode   make install-config ##将初始的配置文件安装到/usr/local/nagios/etc   注:在make install-init 这一步的时候可能会进行不下去,这时只要加个root组即可。

2、nagios-plugins的安装

tar –xvzf nagios-plugins-1.4.7.tar.gz   mkdir /usr/local/nagios-plugins   cd nagios-plugins-1.4.7   ./configure –prefix=/usr/local/nagios-plugins   make all   make install   安装完成以后在/usr/local/nagios-plugins会产生一个libexec的目录,将该目录全部移动到/usr/local/nagios目录下

mv /usr/local/nagios-plugins/libexec /usr/local/nagios   3、imagepak-base的安装

tar –xvzf imagepak-base.tar.gz

解压以后是base目录

cp –R base /usr/local/nagios/share/images/logos   4、安装过程全部结束

 

三、Nagios的设定:

(1)、配置apache

在apache的配置文件httpd.conf中追加

ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/   AllowOverride AuthConfig   Options ExecCGI   Order allow,deny   Allow from all   Alias /nagios/ /usr/local/nagios/share/   Options None   AllowOverride AuthConfig   Order allow,deny   Allow from all   (2)、设置访问权限

1、在/usr/local/nagios/share目录下

vi .htaccess   AuthName “Nagios Access”   AuthType Basic   AuthUserFile /usr/local/nagios/etc/.htpasswd   require valid-user   2、在/usr/local/nagios/sbin目录下

vi .htpasswd   AuthName “Nagios Access”   AuthType Basic   AuthUserFile /usr/local/nagios/etc/.htpasswd   require valid-user   3、/usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/.htpasswd nagios

这个apache目录根据安装目录的不同而不同,主要所以用.htpasswd这个命令生成用户名和密码

四、配置nagios

1、在/usr/local/nagios/etc下是nagios的配置模板文件.cfg-sample,把.cfg-sample文件全部拷贝成.cfg

例如:cp nagios.cfg-sample nagios.cfg

mkdir /usr/local/nagios/etc/sample

cp *.cfg-sample !$

全部拷贝完成即可.

1、修改cgi.cfg

vi /etc/cgi.cfg

修改use_authentication=1为use_authentication=0,即不用验证.不然有一些页面不会显示。

2、?#32531;?#26816;查配置文件是否出错

/usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg

出现Total Warnings: 0

Total Errors: 0

为正常

出错的话,就是.cfg文件有问题

3、启动后台进程

/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

/usr/local/etc/rc.d/nagios start

4、(如果?#34892;?#39029;面看不到的话.可以在cgi.cfg文件中把带有authorized的选项前的#号去掉即可)这些配置完以后,基本的nagios配置完成。

五、安装监控linux类服务器的nrpe

nrpe 安装与使用

(一)远程主机的配置(192.168.0.206 linux)

1、安装openssl

#./config –prefix=/usr/local/nagios/openssl   #make   #make install   2、安装nrpe与配置

#./configure –enable-ssl –with-ssl-lib=/usr/local/nagios/openssl/lib   –with-kerberos-inc=/usr/local/nagios/openssl/include –enable-command-args   #make all   #mkdir /usr/local/nagios/etc   #mkdir /usr/local/nagios/bin   #mkdir /usr/local/nagios/libexec   #chown -R nagios:nagios /usr/local/nagios   #cp nrpe.cfg /usr/local/nagios/etc   #cp src/nrpe /usr/local/nagios/bin   #cp src/check_nrpe /usr/local/nagios/libexec   #vi /usr/local/nagios/etc/nrpe.cfg   改成你允许的IP

allowed_hosts=127.0.0.1,192.168.0.207(207是nagios服务器)

改成你准备监视的服务

command[check_disk]=/usr/local/nagios/libexec/check_disk -w $ARG1___FCKpd___9nbsp;-c $ARG2___FCKpd___9nbsp;-p $ARG3$   检查磁盘,当 / 剩余$ARG1$%报警(浅黄色),剩余$ARG2$%“出错”(红色)-p 后为指定分区

3、启动nrpe,端口为5666

/usr/local/nagios/bin/nrpe -c /etc/nrpe.cfg -d   4、安装监测的模块

nagios-plugins的安装

tar –xvzf nagios-plugins-1.4.7.tar.gz   mkdir /usr/local/nagios-plugins   cd nagios-plugins-1.4.7   ./configure –prefix=/usr/local/nagios-plugins   make all   make install   安装完成以后在/usr/local/nagios-plugins会产生一个libexec的目录,将该目录全部移动到/usr/local/nagios目录下

mv /usr/local/nagios-plugins/libexec /usr/local/nagios   (二)服务器?#31995;?#37197;置

1、安装openssl

#./config –prefix=/usr/local/nagios/openssl   #make   #make install   2、安装nrpe(主要是使用check_nrpe模块)

#./configure –enable-ssl –with-ssl-lib=/usr/local/nagios/openssl/lib   –with-kerberos-inc=/usr/local/nagios/openssl/include –enable-command-args   #make all   #cp src/check_nrpe /usr/local/nagios/libexec   3、nagios文件的配置

vi commands.cfg

定义check_nrpe命令

# ‘check_nrpe’ command definition   define command{   command_name check_nrpe   command_line $USER1$/check_nrpe -H $HOSTADDRESS___FCKpd___15nbsp;-c $ARG1$   }   4、重启nagios服务

/etc/rc.d/init.d/nagios restart (linux)

在 Nagios主机上192.168.0.207:

[[email protected] etc]#vi /usr/local/nagios/etc/commads.cfg

加入以代码:

define command{   command_name check_ping   command_line $USER1$/check_ping -H $HOSTADDRESS___FCKpd___16nbsp;-p $ARG1___FCKpd___16nbsp;$ARG2$   }   [[email protected] etc]#cfg=”cfg_file=/usr/local/nagios/etc/lgweb.cfg”   [[email protected]   [[email protected]][/email]   etc]#echo “$cfg” >> /usr/local/nagios/etc/nagios.cfg   [[email protected] etc]#/etc/init.d/nagios start 

六、安装监控windows NT服务器的nsclient

1、客户端192.168.0.201配置

下载nsclient包

nsclient_201.zip

解压包到c:\nsclient

打开cmd命令行提示符输入:

c:

cd c:\nsclient

pNSClient.exe /install

net start nsclient

安装完成

2、服务端192.168.0.207配置

#cd /usr/local/nagios/etc   #vi 201web.cfg(具体内容见配置文件)   #vi commands.cfg(添加相应的命令,见配置文件)   #echo “cfg=/usr/local/nagios/etc/201web.cfg” >> /usr/local/nagios/etc/nagios.cfg   #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg(若无错误就可进行下步)   #service nagios start   访问nagios监控的web界面:

文章转载自网管之家:

Nagios监控Linux与Windows主机(2)

No Comments Linux

如果你的IPTABLES基础知识还不了解,建议先去看看.
开始配置
我们来配置一个filter表的防火墙.
(1)查看本机关于IPTABLES的设置情况
[[email protected] ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target       prot opt source                 destination       
Chain FORWARD (policy ACCEPT)
target       prot opt source                 destination       
Chain OUTPUT (policy ACCEPT)
target       prot opt source                 destination       
Chain RH-Firewall-1-INPUT (0 references)
target       prot opt source                 destination       
ACCEPT       all    —    0.0.0.0/0              0.0.0.0/0         
ACCEPT       icmp —    0.0.0.0/0              0.0.0.0/0             icmp type 255
ACCEPT       esp    —    0.0.0.0/0              0.0.0.0/0         
ACCEPT       ah     —    0.0.0.0/0              0.0.0.0/0         
ACCEPT       udp    —    0.0.0.0/0              224.0.0.251           udp dpt:5353
ACCEPT       udp    —    0.0.0.0/0              0.0.0.0/0             udp dpt:631
ACCEPT       all    —    0.0.0.0/0              0.0.0.0/0             state RELATED,ESTABLISHED
ACCEPT       tcp    —    0.0.0.0/0              0.0.0.0/0             state NEW tcp dpt:22
ACCEPT       tcp    —    0.0.0.0/0              0.0.0.0/0             state NEW tcp dpt:80
ACCEPT       tcp    —    0.0.0.0/0              0.0.0.0/0             state NEW tcp dpt:25
REJECT       all    —    0.0.0.0/0              0.0.0.0/0             reject-with icmp-host-prohibited
可以看出我在安装linux时,选择了有防火墙,并且开放了22,80,25端口.
如果你在安装linux时没有选择启动防火墙,是这样的
[[email protected] ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target       prot opt source                 destination       
Chain FORWARD (policy ACCEPT)
target       prot opt source                 destination       
Chain OUTPUT (policy ACCEPT)
target       prot opt source                 destination
什么规则都没有.
(2)清除原有规则.
不管你在安装linux时是否启动了防火墙,如果你想配置属于自己的防火墙,那就清除现在filter的所有规则.
[[email protected] ~]# iptables -F        清除预设表filter中的所有规则链的规则
[[email protected] ~]# iptables -X        清除预设表filter中使用者自定链中的规则
我们在来看一下
[[email protected] ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target       prot opt source                 destination       
Chain FORWARD (policy ACCEPT)
target       prot opt source                 destination       
Chain OUTPUT (policy ACCEPT)
target       prot opt source                 destination    
什么都没有了吧,和我们在安装linux时没有启动防火墙是一样的.(提前说一句,这些配置就像用命令配置IP一样,重起就会失去作用),怎么保存.
[[email protected] ~]# /etc/rc.d/init.d/iptables save
这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用.
[[email protected] ~]# service iptables restart
现在IPTABLES配置表里什么配置都没有了,那我们开始我们的配置吧
(3)设定预设规则
[[email protected] ~]# iptables -p INPUT DROP
[[email protected] ~]# iptables -p OUTPUT ACCEPT
[[email protected] ~]# iptables -p FORWARD DROP
上面的意思是,当超出了IPTABLES里filter表里的两个链规则(INPUT,FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃).应该说这样配置是很安全的.我们要控制流入数据包
而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取ACCEPT,也就是说,不在着个规则里的包怎么办呢,那就是通过.
可以看出INPUT,FORWARD两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过.
这样设置?#25925;?#25402;合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,而且要写的规则就会增加.但如果你只想要有限的几个规则是,如只做WEB服务器.?#25925;?#25512;荐三个链都是DROP.
注:如果你是远程SSH登陆的话,当你输入第一个命令回?#26723;?#26102;候就应该掉了.因为你没有设置任何规则.
怎么办,去本机操作呗!
(4)添加规则.
首先添加INPUT链,INPUT链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链
为了能采用远程SSH登陆,我们要开启22端口.
[[email protected] ~]# iptables -A INPUT -p tcp –dport 22 -j ACCEPT
[[email protected] ~]# iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT (注:这个规则,如果你把OUTPUT 设置成DROP的就要写上这一部,好多人都是望了写这一部规则导致,始终无法SSH.在远程一下,是不是好了.
其他的端口也一样,如果开启了web服务器,OUTPUT设置成DROP的话,同样也要添加一条链:
[[email protected] ~]# iptables -A OUTPUT -p tcp –sport 80 -j ACCEPT ,其他同理.)
如果做了WEB服务器,开启80端口.
[[email protected] ~]# iptables -A INPUT -p tcp –dport 80 -j ACCEPT
如果做了邮件服务器,开启25,110端口.
[[email protected] ~]# iptables -A INPUT -p tcp –dport 110 -j ACCEPT
[[email protected] ~]# iptables -A INPUT -p tcp –dport 25 -j ACCEPT
如果做了FTP服务器,开启21端口
[[email protected] ~]# iptables -A INPUT -p tcp –dport 21 -j ACCEPT
[[email protected] ~]# iptables -A INPUT -p tcp –dport 20 -j ACCEPT
如果做了DNS服务器,开启53端口
[[email protected] ~]# iptables -A INPUT -p tcp –dport 53 -j ACCEPT
如果你还做了其他的服务器,需要开启哪个端口,照写就行了.
上面主要写的都是INPUT链,凡是不在上面的规则里的,都DROP
允许icmp包通过,也就是允许ping,
[[email protected] ~]# iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP的话)
[[email protected] ~]# iptables -A INPUT -p icmp -j ACCEPT    (INPUT设置成DROP的话)

允许loopback!(不然会导致DNS无法正常关闭等问题)
IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)

下面写OUTPUT链,OUTPUT链默认规则是ACCEPT,所以我们就写需要DROP(放弃)的链.
减少不安全的端口连接
[[email protected] ~]# iptables -A OUTPUT -p tcp –sport 31337 -j DROP
[[email protected] ~]# iptables -A OUTPUT -p tcp –dport 31337 -j DROP
?#34892;?#20123;特洛伊木马会扫描端口31337到31340(即黑客语言中的 elite 端口)?#31995;?#26381;务。既?#32531;?#27861;服务都不使用这些非标?#32423;?#21475;来通信,阻塞这些端口能够?#34892;?#22320;减少你的网络上可能被感染的机器和它们的远程主服务器进行独立通信的机会
还有其他端口也一样,像:31335、27444、27665、20034 NetBus、9704、137-139(smb),2049(NFS)端口也应被禁止,我在这写的也不全,?#34892;?#36259;的朋?#24310;?#35813;去查一下相关资料.
当然出入更安全?#30446;?#34385;你也可以包OUTPUT链设置成DROP,那你添加的规则就多一些,就像上边添加
允许SSH登陆一样.照着写就行了.
下面写一下更加细致的规则,就是限制到?#31243;?#26426;器
如:我们只允许192.168.0.3的机器进行SSH连接
[[email protected] ~]# iptables -A INPUT -s 192.168.0.3 -p tcp –dport 22 -j ACCEPT
如果要允许,或限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的所有IP.
24表示子网掩码数.但要记得把 /etc/sysconfig/iptables 里的这一行删了.
-A INPUT -p tcp -m tcp –dport 22 -j ACCEPT 因为它表示所有地址都可以登陆.
或采用命令方式:
[[email protected] ~]# iptables -D INPUT -p tcp –dport 22 -j ACCEPT
?#32531;?#20445;存,我再说一边,反是采用命令的方式,只在当时生效,如果想要重起后也起作用,那就要保存.写入到/etc/sysconfig/iptables文件里.
[[email protected] ~]# /etc/rc.d/init.d/iptables save
这样写 !192.168.0.3 表?#22659;?#20102;192.168.0.3的ip地址
其他的规则连接也一样这么设置.
在下面就是FORWARD链,FORWARD链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链,对正在转发链的监控.
开启转发功能,(在做NAT时,FORWARD默认规则是DROP时,必须做)
[[email protected] ~]# iptables -A FORWARD -i eth0 -o eth1 -m state –state RELATED,ESTABLISHED -j ACCEPT
[[email protected] ~]# iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT
丢弃?#26723;腡CP包
[[email protected] ~]#iptables -A FORWARD -p TCP ! –syn -m state –state NEW -j DROP
处理IP碎片数量,防止攻击,允许每秒100个
[[email protected] ~]#iptables -A FORWARD -f -m limit –limit 100/s –limit-burst 100 -j ACCEPT
设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包.
[[email protected] ~]#iptables -A FORWARD -p icmp -m limit –limit 1/s –limit-burst 10 -j ACCEPT
我在前面只所以允许ICMP包通过,就是因为我在这里有限制.

二,配置一个NAT表放火墙
1,查看本机关于NAT的设置情况
[[email protected] rc.d]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target       prot opt source                 destination       
Chain POSTROUTING (policy ACCEPT)
target       prot opt source                 destination       
SNAT         all    —    192.168.0.0/24         anywhere              to:211.101.46.235
Chain OUTPUT (policy ACCEPT)
target       prot opt source                 destination  
我的NAT已经配置好了的(只是提供最简单的代理上网功能,还没有添加防火墙规则).关于怎么配置NAT,参考我的另一篇文章
当然你如果还没有配置NAT的话,你也不用清除规则,因为NAT在默认情况下是什么都没有的
如果你想清除,命令是
[[email protected] ~]# iptables -F -t nat
[[email protected] ~]# iptables -X -t nat
[[email protected] ~]# iptables -Z -t nat
2,添加规则
添加基本的NAT地址转换,(关于如何配置NAT可以看我的另一篇文章),
添加规则,我们只添加DROP链.因为默认链全是ACCEPT.
防止外网用内网IP欺骗
[[email protected] sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP
[[email protected] sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
[[email protected] sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP
如果我们想,比如阻止MSN,QQ,BT等的话,需要?#19994;?#23427;们所用的端口或者IP,(个人认为没有太大必要)
例:
禁止与211.101.46.253的所有连接
[[email protected] ~]# iptables -t nat -A PREROUTING    -d 211.101.46.253 -j DROP
禁用FTP(21)端口
[[email protected] ~]# iptables -t nat -A PREROUTING -p tcp –dport 21 -j DROP
这样写?#27573;?#22826;大了,我们可以更精确的定义.
[[email protected] ~]# iptables -t nat -A PREROUTING    -p tcp –dport 21 -d 211.101.46.253 -j DROP
这样只禁用211.101.46.253地址的FTP连接,其他连接还可以.如web(80端口)连接.
按照我写的,你只要?#19994;絈Q,MSN等其他软件的IP地址,和端口,以及基于什么协议,只要照着写就行了.
最后:
drop非法连接
[[email protected] ~]# iptables -A INPUT     -m state –state INVALID -j DROP
[[email protected] ~]# iptables -A OUTPUT    -m state –state INVALID -j DROP
[[email protected] ~]# iptables-A FORWARD -m state –state INVALID -j DROP
允许所有已经建立的和相关的连接
[[email protected] ~]# iptables-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
[[email protected] ~]# iptables-A OUTPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

[[email protected] ~]# /etc/rc.d/init.d/iptables save

这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用.

[[email protected] ~]# service iptables restart

别忘了保存,不行就写一部保存一次.你可以一边保存,一边做实验,看看是否达到你的要求,

上面的所有规则我都试过,没有问题.
写这篇文章,用了我将近?#22791;?#26376;的时间.查找资料,自己做实验,希望?#28304;?#23478;有所帮助.如有不全?#23433;?#23436;善的地方还请提出.
因为本篇文章以配置为主.关于IPTABLES的基础知?#37117;?#25351;令命令说明等我会尽快传上,当然你可以去网上搜索一下,?#25925;?#24456;多的.

多网卡配置说明:要求设置为只允许通过公网访问服务器TCP协议的22端口和1521端口。
分析:由于服务器为多网卡,?#39029;?#21040;公网的网口。利用-i [port_name]配置允许访问TCP:22和TCP:1521;其他协议及端口默认拒绝。
iptables -A INPUT-i eth3-p tcp –dport 22 -j ACCEPT
iptables -A INPUT -i eth3 -p tcp –dport 1521 -j ACCEPT
iptables -A INPUT -i eth3 -j DROP运行/etc/rc.d/init.d/iptables save保存配置文件到/etc/sysconfig/iptables下
运行service iptables restart确?#29616;?#21551;iptables后规则?#26434;行А?#23436;成!

Linux下的DNS服务器配置以及辅助DNS配置

No Comments Linux

首先安装以下3个包 bind、bind-utils、caching-nameserver  DNS服务 配置要求
IP 192.168.1.100
domain aaa.com
www 192.168.1.100
ftp 192.168.1.100
mail 192.168.1.100
pop 192.168.1.100
smtp 192.168.1.100
***************************配置过程
#vi /etc/sysconfig/network-scripts/ifcfg-eth0\\配置IP、MASK GATEWAY
#vi /etc/sysconfig/network   \\HOSTNAME
#hostname aaa.com    \\HOSTNAME
#vi /etc/hosts     \\DNS
#vi /etc/resolv.conf
    nameserver 192.168.1.100   \\DNS指向
#exit      \\注销后再登陆
#service network restart   \\重新启动网络服务
#ifconfig     \\检查网络配置情况
#rpm -q bind bind-utils caching-nameserver<enter>
#rpm -ql caching-namerserver | grep conf<enter>配置DNS主配置文件
#vi /etc/named.conf<enter>增加一?#24405;感心?#23481;
=======================================
zone “aaa.com” IN {
         type master;
         file “aaa.com.zone”;
};
zone “1.168.192.in-addr.arpa” IN {
         type master;
         file “aaa.com.local”;
};
======================================= 配置正 ?#32874;?#21306;域文件
#vi /var/named/aaa.com.zone<enter>
=======================================
@       IN      SOA     aaa.com. root.localhost(
                         07031201
                         36000
                         3600
                         72000
                         600)
@       IN      NS      aaa.com.
@       IN      A       192.168.1.100
@       IN      MX 10   192.168.1.100
mail    IN      A       192.168.1.100
www     IN      A       192.168.1.100
ftp     IN      CNAME  [url]www.aaa.com[/url].
pop     IN      A       192.168.1.100
smtp    IN      A       192.168.1.100
=======================================
#vi /var/named/aaa.com.local<enter>
=======================================
@       IN      SOA     aaa.com. root.localhost(
                         07031201
                         36000
                         3600
                         72000
                         600)
@       IN      NS      aaa.com.
100     IN      PTR     aaa.com.
100     IN      PTR    [url]www.aaa.com[/url].
100     IN      PTR     mail.aaa.com.
100     IN      PTR     pop.aaa.com.
100     IN      PTR     smtp.aaa.com.
=======================================
#service named restart<enter>
#chkconfig named on<enter>
测试:
#host[url]www.aaa.com[/url] <enter>
#host>
#host 192.168.1.100<enter>win2k下测试:
#nslookup<enter>
>set type=mx<enter>
>aaa.com<enter>
错误调式:
#named-checkconf /etc/named.conf<enter>    \\配置文件调式
#named-checkzone /var/named/aaa.com.zone<enter>   \\正向区域文件调试
#named-checkzone /var/named/aaa.com.local<enter>  \\?#32874;?#21306;域文件调试
#rndc reload<enter>      \\重新载入区域文件
——————————————————————–
辅助DNS的配置
domain aaa.com
master 192.168.1.101(win2k)
slave  192.168.1.100(linux)
***************************
#vi /etc/sysconfig/network-scripts/ifcfg-eth0 \\IP、MASK、GATEWAY
#vi /etc/sysconfig/network   \\HOSTNAME
#hostname aaa.com    \\HOSTNAME
#vi /etc/hosts     \\DNS
#vi /etc/resolv.conf    \\DNS指向
#exit      \\注销再登陆
#service network restart   \\重新启动网络服务
#ifconfig     \\检查网络配置情况
#rpm -q bind bind-utils caching-nameserver<enter>
#rpm -ql caching-namerserver | grep conf<enter>
#vi /etc/named.conf<enter> 编辑主配置文件,增加一?#24405;?#34892;.
=======================================
zone “aaa.com” IN {
         type slave;
         master { 192.168.1.101; };
         file “slave.aaa.com.zone”;
};
zone “1.168.192.in-addr.arpa” IN {
         type slave;
         master { 192.168.1.101; };
         file “slave.aaa.com.local”;
};
=======================================
#service named restart<enter>
#chkconfig named on<enter>
测试:
#host[url]www.aaa.com<enter[/url]>
#host>
#host 192.168.1.100<enter>
win2k下测试:#nslookup<enter>
>set type=mx<enter>
>aaa.com<enter>
错误调式:
#named-checkconf /etc/named.conf<enter>    \\配置文件调式
#named-checkzone /var/named/djw.com.zone<enter>   \\正向区域文件调试
#named-checkzone /var/named/djw.com.local<enter>  \\?#32874;?#21306;域文件调试
#rndc reload<enter>      \\重新载入区域文件
——————————————————————–

Linux单网卡架设VPN并NAT共享上网

No Comments Linux

服务器使用shorewall作为防火墙,实际上shorewall只是作为iptables的一个配置程序而已,实际上防火?#20132;故莍ptables;
首先是建立VPN,使用软件包PPTPD,这样做的?#20040;?#26159;方便?#29616;ぃ?#20063;支持windows,安全性不如openvpn,但是简单实用;

服务器环境:
OS:ubuntu server 8.10
firewall: shorewall
IP:192.168.2.100
安装:

sudo apt-get install pptpd

修改配置文件:/etc/pptpd.conf

修改localip  remoteip

localip 192.168.250.1
remoteip 192.168.250.234-238,192.168.250.245

这里随便找了个IP段localip相当于拨号后的服务器地址,可以写成本机IP,或者和remoteip的IP段相同的一个IP地址

remoteip是客户机分配的IP段,这里分配了12个IP地址,也就只允许12个机器同时通过VPN连接,再增加就不能分配到IP地址了

修改配置文件:/etc/ppp/chap-secrets

这个文件里面设置登陆用的账号密码等信息

设置格式是:

# client        server  secret                  IP addresses

abc       *            123456

第一个是用户名  ?#32531;?#26159;服务器地址   ?#32531;?#26159;登陆所用的密码  最后是为客户拨号后分配的IP地址,不指定的话就是系统自动分配

以上过程之后,咱的PPTPD就配置好了哈

由于服务器采用了shorewall防火墙,需要开放端口1723,47和gre协议

编辑/etc/shorewall/rules

增加:

ACCEPT          net             $FW             gre
ACCEPT          net             $FW             tcp     1723
ACCEPT          net             $FW             tcp     47

?#32531;?#37325;启下shorewall:

sudo shorewall restart

开始测试在windows上VPN拨号吧

windows下VPN连接建立方法就不多说了哈

OK,测试VPN可以拨通了,但是还不能通过服务器的网络连接互联网,可能你会发现,除了访问服务器,其他你什么都干不了

下面来做NAT,不过这个地方我也没做得很好,还有点?#27605;藎?#24076;望以后能解决这个问题

拨通VPN后,在服务器上使用ifconfig可以看到多了一个PPP*的网络连接,例如我这里是ppp0

做NAT我也使用shorewall来做

修改/etc/shorewall/interface

增加:

ppp0   ipv4

修改/etc/shorewall/zones

增加:

ppp    ppp0

修改/etc/shorewall/masq

增加:

eth0                    ppp0

OK,?#32531;?#37325;启shorewall

sudo shorewall restart

NAT配置好了

这里要注意的是ppp0一定要存在,否则shorewall要报错,这个就是shorewall不足的地方了,不够灵活。

如果你不用shorewall 防火墙,直接使用iptables指令进行dnat操作,就不会因为没有ppp0连接而报错了。

文章转载自网管之家:

设置Linux作为网关服务器(NAT转换)

No Comments Linux

1.两个网络接口、一个内,一个外

    2.NAT转换(内)

    操作步骤:

    1.设置Linux内核支持ip数据包的转发:
    echo “1” > /proc/sys/net/ipv4/ip_forward

    2.加载实现NAT功能必要的内核模块:
    modprobe ip_tables
    modprobe ip_nat_ftp

    modprobe ip_nat_irc
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp
    modprobe ip_conntrack_irc

    3.对iptables中的规则表进行初始化:
    iptables -F
    iptables -X
    iptables -Z
    iptables -F -t nat
    iptables -X -t nat
    iptables -Z -t nat

    4.设置规则链的默认策略:
    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -t nat -P PREROUTING ACCEPT
    iptables –t nat -P POSTROUTING ACCEPT
    iptables -t nat -P OUTPUT ACCEPT

    5.添加IP伪装规则:
    iptables -t nat -A POSTOUTING -S 192.168.1.0/24 -O eth1 -j MASQUERADE
    其中:eth1是外网网卡,192.168.1.0/24是内部本地地址,MASQUERADE是符合规则的数据包允许通过

    6.保存
    iptables-save > nat-1.1
    service iptables save

文章转载自网管之家:

30选5玩法