海运的博客

Centos6安装配置DNS服务器Bind

发布时间:July 5, 2012 // 分类:DNS // No Comments

DNS服务器分为三种:

缓存DNS:负责接收缓存用户DNS请求,查询通过转发DNS服务器,一般家用路由带这种DNS。
递归DNS:普通用户最常接触的就是递归DNS了,用于递归查询域名所对应的IP地址,一般都是使用运营商提供的DNS。
权威DNS:包含根DNS,权威域名DNS,当用户通过递归DNS查询域名对应IP的时候就要向权威DNS查询。

本文要介绍的是权威DNS服务器的安装配置,用于提供对域名的解析服务。
Centos6下BIND安装:

#https://www.haiyun.me
yum install bind

Centos5下BIND安装:

yum install bind 
cp -a /usr/share/doc/bind-9.3.6/sample/etc/* /etc/
cp -a /usr/share/doc/bind-9.3.6/sample/var/named/* /var/named/

配置为本地缓存转发DNS服务器:

cat /etc/named.conf
options {
    listen-on port 53 { 127.0.0.1; };
    directory     "/var/named"; 
    allow-query     { localhost; }; #仅允许本地查询
    recursion yes; #允许递归查询
        forward only;  #仅转发
        forwarders {
                8.8.8.8; #转发查询DNS服务器
                4.4.4.4;
        };

};

配置为域名解析权威服务器,根据view功能对内提供递归查询服务,对外提供域名解析服务,需在域名注册商处理更改DNS服务器,如ns1.haiyun.me。

//全局设置
options {
    listen-on port 53 { any; };
    directory     "/var/named";
};

//日志设置
logging {
        channel default_debug {
                file "data/named.run";
                print-time        yes;
                severity dynamic;
        };
        channel query_log {
                file "data/query.log" versions 3 size 20m;
                severity  info;
                print-time        yes;
                print-category  yes;
                };
                category queries {
                query_log;
        };
};

//匹配本机
view localhost {
    match-clients      { localhost; };
    allow-query      { any; };
    recursion yes;  //允许递归查询,即本地DNS缓存服务器
    include "/etc/named.rfc1912.zones"; //调用根服务器及本地
};


//匹配外网
view  external
{
    match-clients    { any; };
        allow-query     { any; };
    recursion no; //非递归服务器
        allow-transfer  { none; }; //不允许传送
    allow-query-cache { any; };

zone "haiyun.me" { 
        type master;
        file "haiyun.me";
        };
};

正解配置:

$ORIGIN haiyun.me //此参数配合下面@,无设置为主配置文件内zone参数
$TTL 600          //SOA ns用于主从判断权威服务器 
@                       IN SOA   ns1.haiyun.me. mail.haiyun.me. ( 
                        2012070401; #序号,slave判断是否下载
                        3H; #更新频率
                        10M; #失败重新连接时间
                        1W; #失效时间
                        1H ); #TTL时间
@      IN     NS     ns1.haiyun.me.  //授权ns服务器
@      IN     NS     ns2.haiyun.me.
ns1     IN     A     1.2.3.4
ns2     IN     A     1.2.3.4
www     IN     A     1.2.3.4

配置完成启动named服务,如有配置iptables需开启udp53端口,为稳定可配置主从同步DNS服务器

/etc/init.d/named start
iptables -p upd --dport 53 -j ACCEPT

验证是否生效:

dig -t ns www.haiyun.me
;; QUESTION SECTION:
;www.haiyun.me.            IN    NS

;; ANSWER SECTION:
www.haiyun.me.        600    IN    NS    ns1.haiyun.me.
www.haiyun.me.        600    IN    NS    ns2.haiyun.me.

;; ADDITIONAL SECTION:
ns1.haiyun.me.        600    IN    A    1.2.3.4
ns2.haiyun.me.        600    IN    A    1.2.3.4

Centos5安装配置Xen虚拟化环境

发布时间:July 4, 2012 // 分类:虚拟化 // No Comments

OpenVZ安装可参考:Centos6.2安装配置OpenVZ虚拟化环境
Xen安装:

#https://www.haiyun.me
yum install kernel-xen xen

修改GRUB以Xen内核启动:

vim /boot/grub/menu.lst 
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-308.8.2.el5xen)
    root (hd0,0)
    kernel /xen.gz-2.6.18-308.8.2.el5
    module /vmlinuz-2.6.18-308.8.2.el5xen ro root=/dev/VolGroup00/LogVol00
    module /initrd-2.6.18-308.8.2.el5xen.img

关闭SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

重新启动系统:

reboot

重新登录验证Xen是否正常运行:

uname -a|grep xen
xm list

新建Xen虚拟机,如果服务器CPU支持全虚拟化可直接使用ISO安装Xen虚拟机,CPU支持半虚拟机要使用网络安装,如果有相应的Xen模板可直接使用模板新建。
本次以网络安装Centos5.8为例,可将下载的ISO解压至本地电脑,以127.0.0.1/iso安装,也可以通过互联网安装,如http://mirrors.163.com/centos/5.8/os/i386/

mkdir /vm #新建VM目录
dd if=/dev/zero of=/vm/101.img bs=1M count=10240 #新建虚拟机硬盘文件,10G
virt-install -n vm101 -r 128 -f /vm/101.img --nographics -p -l http://mirrors.163.com/centos/5.8/os/i386/
-n #虚拟机名称
-r #虚拟机内存
-f #虚拟机文件
--nograhics #无X环境,以字符界面安装

Xen虚拟机管理:

xm list #列出VM列表
xm start vm101 #启动虚拟机
xm shutdown vm 101 #关闭虚拟机
xm console vm01 #打开虚拟机管理界面

Centos6服务器安装配置OpenVZ环境

发布时间:July 4, 2012 // 分类:虚拟化 // No Comments

OpenVZ是基于操作系统层面的虚拟化环境,所有虚拟机共享服务器资源,同等配置下比XEN能开较多的虚拟机,因此很多商家使用OpenVZ销售低端VPS产品。
OpenVZ安装:

#https://www.haiyun.me
cd /etc/yum.repos.d
wget http://download.openvz.org/openvz.repo
rpm --import  http://download.openvz.org/RPM-GPG-Key-OpenVZ
yum install vzkernel vzctl vzquota

配置内核参数:

vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

关闭SELinux避免不必要的麻烦:

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

修改GRUB配置以OpenVZ内核启动,一般OpenVZ安装后会自动配置。

cat /boot/grub/menu.lst 
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title OpenVZ (2.6.32-042stab057.1)
    root (hd0,0)

重启系统加载OpenVZ内核:

reboot

新建和管理OpenVZ虚拟机,为方便直接使用OpenVZ官方提供的模板新建虚拟机:

mkdir -p /vz/template/cache
cd /vz/template/cache
wget -c http://download.openvz.org/template/precreated/ubuntu-12.04-x86.tar.gz #使用ubuntu吧,这个模板最小。。。
vzctl create 101 --ostemplate ubuntu-12.04-x86 --ipadd 192.168.1.254 --host www.haiyun.me  #使用模板ubuntu-12.04创建ID为100的虚拟机

OpenVZ虚拟机设置管理:

vzctl set 101 --onboot yes --save #设置开机自动启动
vzctl set 101 --hostname www.haiyun.me --save #设置主机名
vzctl set 101 --ipadd 192.168.1.254 --save #设置IP地址
vzctl set 101 --nameserver 192.168.1.1 --save #设置DNS服务器
vzctl set 101 --diskspace 5G:5G --save #硬盘限制
vzctl set 101 --userpasswd user:passwd #设置用户、密码
vzctl exec 101 service ssh status #查看虚拟机ssh是否在运行
vzctl start 101 #启动ID为101的虚拟机
vzctl destroy 101 #删除ID为101的虚拟机
vzctl enter 101 #进入101虚拟机的Shell,可见OpenVZ下管理员掌控一切
vzlist -a #查看所有虚拟机列表
vzcalc -v 101 #查看虚拟机占用的资源

Linux下使用GPG加密文件保安全

发布时间:July 3, 2012 // 分类:网络安全 // No Comments

GPG是免费的加密和数字签名软件,Linux下自带,可以对文件、电子邮件进行加密,确保文件完整、安全性。
GPG分私钥和公钥,公钥可对外公开用以验证私钥加密的文件,公钥加密的文件同样可使用私钥验证完整性。
生成gpg密钥和公钥:

gpg --gen-key --expert 
#无密码生成
#--expert可选择ecc
gpg --pinentry-mode loopback --passphrase '' --gen-key 
#自定义生成,可选择加密算法和过期时间
gpg --pinentry-mode loopback --passphrase '' --full-gen-key 

用快捷方式生成,当指定加密算法时只生成主证书,上面生成方法默认生成主证书和加密证书:

gpg --pinentry-mode loopback --passphrase '' --quick-generate-key "haiyun (Comment) <admin@haiyun.me>" rsa4096 default never

列出当前证书:

#公钥
gpg --list-keys --keyid-format LONG
#私钥
gpg --list-secret-keys --keyid-format long
#--keyid-format long 显示子证书的指纹或使用--with-subkey-fingerprint
#--list-keys可简写为-k
#--list-secret-keys为-K

添加子证书,加密、验证、签名,5998C993622730CC831A2A7023584E37147F6CBE为刚生成的主证书指纹。

gpg --batch --passphrase '' --quick-add-key 5998C993622730CC831A2A7023584E37147F6CBE rsa4096 encr never
gpg --batch --passphrase '' --quick-add-key 5998C993622730CC831A2A7023584E37147F6CBE rsa4096 auth never
gpg --batch --passphrase '' --quick-add-key 5998C993622730CC831A2A7023584E37147F6CBE rsa4096 sign never

将公钥上传到公开key服务器,在其它机器上可导入,默认服务器keys.openpgp.org过滤用户名和邮箱,使用其它keyserver。

#上传到服务器,当本地证书改变时重新提交
gpg --keyserver keyserver.ubuntu.com --send-keys 5998C993622730CC831A2A7023584E37147F6CBE
gpg --keyserver keyserver.ubuntu.com --search-keys 5998C993622730CC831A2A7023584E37147F6CBE
gpg --keyserver keyserver.ubuntu.com --recv-keys 5998C993622730CC831A2A7023584E37147F6CBE
#重新提交后其它机器更新key
gpg --keyserver keyserver.ubuntu.com --refresh-keys 5998C993622730CC831A2A7023584E37147F6CBE
#其它机器使用公钥加密始终信任key
gpg -e -r admin@haiyun.me --trust-model always file

导出密钥:

gpg --export -a admin@haiyun.me > gpg.pub #导出公钥
gpg --export-secret-keys -a admin@haiyun.me > gpg.pri #导出私钥

吊销证书:

#生成吊销证书
gpg -o 5998C993622730CC831A2A7023584E37147F6CBE.rev --gen-revoke admin@haiyun.me
#导入后证书被吊销,如有上传的服务器需重新send-keys
gpg --import 5998C993622730CC831A2A7023584E37147F6CBE.rev

吊销子密钥证书:

gpg --edit-key haiyun
  
gpg > list
gpg > key AA8C0103E7B6CB52
gpg > revkey
gpg > save

加密和签名文件:

gpg -s -u admin@haiyun.me file #使用指定公钥签名文件,输出二进制原文和签名到file.gpg,可使用-o指定输出文件
gpg -s -u admin@haiyun.me -a file #将二进制原文和签名输出为ASCII格式到file.asc
gpg -s -u admin@haiyun.me --clearsign file #输出明文原文和签名到file.asc
gpg -e -r admin@haiyun.me file #加密文件
gpg -s -u admin@haiyun.me -e -r admin@haiyun.me file #加密并签名,保存为一个文件
echo 'haiyun' | gpg -e -r admin@haiyun.me -s -u admin@haiyun.me -a #加密并签名文本消息
gpg -a -b -s -u admin@haiyun.me file.gpg #使用指定公钥签名文件且证书单独保存为file.gpg.asc

解密文件:

gpg -d file

如使用数字签名可检验文件完整性:

gpg --verify file.asc

注:签名和加密区别,关心数据完整性使用数字签名,关心数据保密性使用加密,加密和签名可同时进行。

gpg aes非对称加密文件:

#查看支持的加密和hash算法
gpg --version
#加密文件
gpg -c --pinentry-mode loopback --passphrase 123456 --cipher-algo AES256 -o file.gpg file 
#解密文件
gpg -d --pinentry-mode loopback --passphrase 123456 --cipher-algo AES256 -o file file.gpg
#--pinentry-mode loopback也可替换为--batch,相比batch提示交互操作
#类似于openssl pbkdf2
#--s2k-mode=3 --s2k-digest-algo=SHA256 --s2k-count=10000 --s2k-cipher-algo=AES256 
#--compress-algo 2 #0不压缩 1 zip 2 zlib 3 bzip2

查看加密文件详情:

gpg --list-packets --pinentry-mode loopback --passphrase 1234 file.gpg 

https://www.gnupg.org/documentation/manuals/gnupg/OpenPGP-Key-Management.html
https://segmentfault.com/a/1190000041007717
https://zhuanlan.zhihu.com/p/137801979
https://www.ietf.org/rfc/rfc4880.txt
https://security.stackexchange.com/questions/15632/what-is-purpose-of-s2k-gnupg-options

Centos5.8安装集中自动化管理工具Puppet

发布时间:July 3, 2012 // 分类:Puppet // No Comments

Puppet以C/S方式运行,客户端连接读取服务器端的配置并在本机执行,极大方便多服务器情况下的重复管理工作。
安装Puppet的主机要有完整的域名,可设置主机名或DNS,多服务器同步对时钟要求严格,最好安装ntp自动对时。
Puppet服务器端安装:

yum install puppet-server ntp
hostname master.www.haiyun.me
ntpdate pool.ntp.org
/etc/init.d/puppetmaster start
chkconfig puppetmaster on

Puppet客户器端安装:

yum install puppet ntp
hostname node1.www.haiyun.me
ntpdate pool.ntp.org
/etc/init.d/puppet start
chkconfig puppet on
echo "192.168.1.2 master.www.haiyun.me" >> /etc/hosts

服务器端如有开启Iptables需开启puppet端口:

iptables -A INPUT -p tcp -dport 8140 -j ACCEPT

客户端与服务器端同步SSL证书:

puppetd --server master.www.haiyun.me --test

服务器端签核证书:

puppetca --list
puppetca -s node1.www.haiyun.me
#puppetca -s -a 签核所有证书请求

可配置特定主机名自动通过认证:

echo "*.www.haiyun.me" >> /etc/puppet/autosign.conf

服务器端新建配置同步到客户端执行测试:

vim /etc/puppet/manifests/site.pp
node default {
        file {
                "/tmp/test.txt": content => "hello, puppet",
                 owner => root,
                 group => root,
                 mode => 644;
        }
}

客户端同步测试:

puppetd --server master.www.haiyun.me --test

查看/tmp目录,有新建test.txt文件,权限644,用户root。

ls -a /tmp/
-rw-r--r--  1 root root      12 07-03 16:54 test.txt

注:如果服务器端配置文件错误,客户端执行后可能会锁定进程并提示:

notice: Run of Puppet configuration client already in progress; skipping 

解决:

rm /var/lib/puppet/state/puppetdlock
分类
最新文章
最近回复
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...
  • 孤狼: 擦。。。。apcupsd会失联 nut在冲到到100的时候会ONBATT进入关机状态,我想想办...
  • 海运: 网络,找到相应的url编辑重发请求,firefox有此功能,其它未知。
  • knetxp: 用浏览器F12网络拦截或监听后编辑重发请求,修改url中的set为set_super,将POS...
  • Albert: 啊啊啊啊啊啊啊啊啊 我太激动了,终于好了英文区搜索了半天,翻遍了 pve 论坛没找到好方法,博...