海运的博客

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

Vim快捷键图片详解

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

高清大图,可设置为桌面。
vim.png

SSH常用命令妙用

发布时间:July 2, 2012 // 分类:常用软件,Linux基础 // No Comments

之前有介绍Putty工具Plink应用,Linux下ssh同样可实现很多妙用。
1.动态socks5端口转发,可用于代**理上网

ssh -NfD 0.0.0.0:7070 root@haiyun.me
-D #动态转发端口

2.转发本地端口到远程服务器:

#转发本机8080端口到google.com 80端口
ssh -N -f -L <0.0.0.0>:8080:google.com:80 root@haiyun.me
-N #仅转发端口,不执行命令
-f #后台运行
-L #监听地址端口,-L [bind_address:]port:host:hostport

3.转发远程服务器端口到本地端口,远程服务器监听指定地址查看:https://www.haiyun.me/archives/1010.html

ssh -N -f -R 0.0.0.0:8080:localhost:80 root@haiyun.me
#转发远程服务器8080端口到本地80端口

4.登录服务器并执行文本内的命令:

ssh user@server "`cat test.txt`"

5.测试两台服务器的带宽:

yes | pv | ssh user@server "cat > /dev/null"

6.登录到远程服务器screen窗口,如断开、连接不受影响。

ssh -t user@server /usr/bin/screen -xRR
分类
最新文章
最近回复
  • 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 ...
归档