海运的博客

Iptables之conntrack连接数跟踪模块及最大连接数配置

发布时间:June 7, 2012 // 分类:Iptables // No Comments

Iptables是有状态机制的防火墙,通过conntrack模块跟踪记录每个连接的状态,通过它可制定严密的防火墙规则。
可用状态机制:

NEW #新连接数据包
ESTABLISHED #已连接数据包
RELATED #和出有送的数据包
INVALID #无效数据包

conntrack默认最大跟踪65536个连接,查看当前系统设置最大连接数:

cat /proc/sys/net/ipv4/ip_conntrack_max 
#新版方法
cat /proc/sys/net/netfilter/nf_conntrack_max

查看当前跟踪连接数:

cat /proc/net/ip_conntrack|wc -l
#新版方法
cat /proc/net/nf_conntrack | wc -l

当服务器连接多于最大连接数时会出现kernel: ip_conntrack: table full, dropping packet的错误。
解决方法,修改conntrack最大跟踪连接数:

vim /etc/sysctl.conf #添加以下内容
net.ipv4.ip_conntrack_max = 102400
#以下为新版方法
net.netfilter.nf_conntrack_max=102400
net.nf_conntrack_max=102400

立即生效:

sysctl -p

为防止重启Iptables后变为默认,还需修改模块参数:

vim /etc/modprobe.conf #添加以下内容
options ip_conntrack hashsize=12800 #值为102400/8

一劳永逸的方法,设置Iptables禁止对连接数较大的服务进行跟踪:

iptables -A INPUT -m state --state UNTRACKED,ESTABLISHED,RELATED -j ACCEPT
iptables -t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK
iptables -t raw -A OUTPUT -p tcp --sport 80 -j NOTRACK

Iptables限速模块limit应用

发布时间:June 6, 2012 // 分类:Iptables // No Comments

Iptables模块limit用于限制单位时间内通过的数据包数量,限制是全局的,适用于某些不重要的服务,如果限制ICMP数量,HTTP可使用recent模块针对每个IP做限制,精确流量限制可用TC
Limit可用选项:

--limit 单位时间内匹配的数据包数量
--limit-burst 可选,允许最大数据包数量,默认为5
/s /h /m 单位时间

应用举例:
每分钟允许通过1个ICMP数据包,最多不超过10个。

#https://www.haiyun.me
iptables -A INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT
iptables -A INPUT -p icmp  -j DROP

Nagios之web界面管理工具Nagiosql安装

发布时间:June 4, 2012 // 分类:Nagios // No Comments

NagiosQL是一个基于Web界面的Nagios配置管理工具,极大方便Nagios的使用、管理。
下载安装Nagiosql:

cd /var/www/html/
wget http://nchc.dl.sourceforge.net/project/nagiosql/nagiosql/NagiosQL%203.2.0/nagiosql_320.tar.gz
tar zxvf nagiosql_320.tar.gz 
mv nagiosql32/ nagiosql
chmod -R 777 /var/www/html/nagiosql/config/

目录权限配置:

mkdir -p /etc/nagiosql/backup/hosts
mkdir -p /etc/nagiosql/backup/services
mkdir -p /etc/nagiosql/hosts
mkdir -p /etc/nagiosql/services
chown -R nagios:apache /etc/nagiosql/
chown -R nagios:apache /usr/local/nagios/etc/
chown nagios:apache /usr/local/nagios/bin/nagios
chown nagios:apache /usr/local/nagios/var/rw/nagios.cmd
chown -R nagios:apache /usr/local/nagios/var/spool/checkresults

编辑nagios配置文件,注释以cfg开头的配置,并添加:

vim /usr/local/nagios/etc/nagios.cfg
## Timeperiods
cfg_file=/etc/nagiosql/timeperiods.cfg
## Commands
cfg_file=/etc/nagiosql/commands.cfg
## Contacts
cfg_file=/etc/nagiosql/contacts.cfg
cfg_file=/etc/nagiosql/contactgroups.cfg
cfg_file=/etc/nagiosql/contacttemplates.cfg
## Hosts
cfg_dir=/etc/nagiosql/hosts
cfg_file=/etc/nagiosql/hosttemplates.cfg
cfg_file=/etc/nagiosql/hostgroups.cfg
cfg_file=/etc/nagiosql/hostextinfo.cfg
cfg_file=/etc/nagiosql/hostescalations.cfg
cfg_file=/etc/nagiosql/hostdependencies.cfg
## Services
cfg_dir=/etc/nagiosql/services
cfg_file=/etc/nagiosql/servicetemplates.cfg
cfg_file=/etc/nagiosql/servicegroups.cfg
cfg_file=/etc/nagiosql/serviceextinfo.cfg
cfg_file=/etc/nagiosql/serviceescalations.cfg
cfg_file=/etc/nagiosql/servicedependencies.cfg

访问www.haiyun.me/nagiosql/install进入安装界面,可选中文语言:
nagiosql安装.png
当前环境检测,全绿为通过:
nagiosql安装环境检测.png
填写配置信息:
nagiosql安装数据库配置.png
不出意外会提示安装成功,删除安装文件,进入登录界面:
nagiosql登录界面.png
配置nagios相关目录,界面——管理——Config targets——localhost——编辑:
nagiosql目标配置.png
导入nagios配置:
nagiosql导入配置.png
写入数据:
nagiosql写入配置.png

Linux下命令行smtp客户端SendEmail

发布时间:June 4, 2012 // 分类:Mail // No Comments

SendEmailSendmail,为perl写的一款smtp客户端软件,只有一个执行脚本,安装使用都很方便。
安装:

wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar zxvf sendEmail-v1.56.tar.gz 
cp -a sendEmail-v1.56/sendEmail /usr/local/bin
chmod +x /usr/local/bin/sendEmail

常用参数:

-f 发送方
-t 接收方
-u 邮件主题
-m 邮件内容
-a 添加附件
-cc 副本
-xu smtp验证用户
-xp 密码
-v 详细输出
-o message-file=/file.txt 正文从文件内读取
-o tls=yes

应用举例:

sendEmail -v -f ono@www.haiyun.me -t test@qq.com -s smtp.www.haiyun.me:995 -u "test" -m "测试sendemail" -xu user -xp passwd tls=yes

使用CentOS自带Mail命令发送邮件参考:https://www.haiyun.me/archives/linux-mail-smtp.html

Nagios配置pnp4nagios支持图表显示

发布时间:June 3, 2012 // 分类:Nagios // No Comments

Nagios配合pnp4nagios可实现类似Cacti的图表显示,便于管理和分析服务器运行状况。
Nagios安装请参考:https://www.haiyun.me/archives/centos-install-nagios.html
安装rrdtool,需安装epel源

#https://www.haiyun.me
yum install rrdtools perl-rrdtool perl-Time-HiRes

安装php4nagios:

wget http://nchc.dl.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.17.tar.gz
tar zxvf pnp4nagios-0.6.17.tar.gz 
cd pnp4nagios-0.6.17
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make all
make install
make install-webconf
make install-config
make install-init
#make fullinstall #相当于上面3个指令

配置php4nagios:

#https://www.haiyun.me
cd /usr/local/pnp4nagios/etc/
mv misccommands.cfg-sample misccommands.cfg
mv rra.cfg-sample rra.cfg
mv nagios.cfg-sample nagios.cfg
cd pages/
mv web_traffic.cfg-sample web_traffic.cfg
cd ../check_commands/
mv check_all_local_disks.cfg-sample check_all_local_disks.cfg
mv check_nrpe.cfg-sample check_nrpe.cfg
mv check_nwstat.cfg-sample check_nwstat.cfg
/etc/init.d/npcd start
chkconfig npcd on

配置Nagios数据输出接口:

vim /usr/local/nagios/etc/nagios.cfg 
process_performance_data=1 #默认为0,修改为1
host_perfdata_command=process-host-perfdata #注释开头#号
service_perfdata_command=process-service-perfdata #注释开头#号

替换commands.cfg命令process-service-perfdata为以下内容:

vim /usr/local/nagios/etc/objects/commands.cfg 
# 'process-host-perfdata' command definition
define command{
        command_name    process-host-perfdata
        command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA 
        }
# 'process-service-perfdata' command definition
define command{
        command_name    process-service-perfdata
        command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl
        }                              

在模板配置文件中添加图表图标模板:

#https://www.haiyun.me
 vim /usr/local/nagios/etc/objects/templates.cfg 
define host {
name          host-pnp
action_url    /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
register   0
}
define service {
name         service-pnp
action_url   /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
register   0
}

复制鼠标悬停图标显示文件:

cp /usr/local/pnp4nagios/contrib/ssi/* /usr/local/nagios/share/ssi/ 

在监控主机或服务中调用图表模板:

define host{
        use                     linux-server,host-pnp                             
        host_name               localhost
        alias                   localhost
        address                 127.0.0.1
        }
define service{
        use                             local-service,service-pnp
        host_name                       localhost
        service_description             PING
    check_command            check_ping!100.0,20%!500.0,60%
        }
define service{
        use                             local-service,service-pnp
        host_name                       localhost
        service_description             Root Partition
    check_command            check_local_disk!20%!10%!/
        }

重启nagios,访问nagios界面即可看到图表小图标:
nagios图表图标.png
点击图标会显示pnp4nagios测试页面:
pnp4nagios测试页面.png
全是绿色代表配置正常,然后移除或修改install.php文件:

rm -rf /usr/local/pnp4nagios/share/install.php

再次点击图标就会显示当前监控服务由pnp4nagios生成的图表了:
nagios图表pnp4nagios.png

分类
最新文章
最近回复
  • opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...