存档

‘Operation System’ 分类的存档

Linux下iptables导致往外主动访问出问题的事情

2017年3月4日 没有评论

新上线一台服务器,有公网地址,于是启用本机 iptables 做简单安全防护。按照平日常用的逻辑策略:

1,入的包走白名单模式(缺省策略 DROP)
2,出和转发的包,走黑名单模式(缺省策略 ACCEPT)
3,关键业务服务端口,直接设置为 NOTRACK

策略看起来没啥问题,但当我把 iptables 起起来后,却发现种种问题,都是主动往外访问的问题,比如:

1,dns 无法解析
2,无法往外 ping

然后这些问题基本上都走特殊的单独的策略解决了。但是最后碰到无法从公网下载软件安装,这个问题,我再也不想通过添加单独的规则来解决了,就仔细看了看,tcpdump 听包发现有 syn 出去的包,也有公网 web server syn+ack 回来的包,然后,周而复始。显然,公网 web server 回来的 syn+ack 的包被 iptables 给干掉了!

为什么会这样?在我的策略里,公网回来的包应该是匹配 ESTABLISHED 的状态这条规则而被接受的呀,但实际上看起来其实并没有。看了看 /proc/net/nf_conntrack,的确来回交互的包不在里头。这是咋么回事儿?!

仔细扣 iptables 配置规则,终于发现一行,我把从公网往外走的包都打成 NOTRACK 了……慢着,貌似这里有问题,出公网的包被打成 NOTRACK 了以后自然就不会被放入 /proc/net/nf_conntrack 里保持状态了,这样回来的包自然就不会匹配到 ESTABLISHED 状态了呀。当然最后还是受缺省策略控制,被悲催地 DROP 掉了。

改起来很容易,直接把这一句干掉,重启 iptables,一切 OK 了。

分类: Operation System 标签:

用Hexo新开博客了

2016年9月7日 没有评论

地址是http://blog.haw-haw.org/,欢迎大家捧场!

分类: Operation System 标签:

怎样在CoreOS里设置控制台自动登录

2016年7月17日 没有评论

公司的CoreOS让我给玩儿坏了,网络不通,没法远程连。而控制台登录帐号都没有密码,所以没法等卢。网上找了下,找到个解决方案:让系统启动后core用户自动登录到tty1。具体步骤如下:

  1. 在控制台按Ctrl+Alt+Del,或者按电源重启机器
  2. 进入grub界面时按字母键’e’
  3. 在以”linux$”开头的最后一行的末尾加上” coreos.autologin=tty1″
  4. 再按Ctrl+X或F10启动机器,系统会用core用户自动登录到控制台tty1
分类: Operation System 标签:

linux下用vnc连vm实例要密码的问题

2016年7月16日 没有评论

环境:CentOS 6.x,kernel 2.6.32-358.el6.x86_64,qemu-kvm-0.12.1.2-2.479.el6_7.3,libvirt-0.10.2-54.el6_7.3,tigervnc-1.1.0-18.el6
缘起:
有个vm,是直接下载的bitnami的vm文件跑起来的,缺省没有开启sshd,当然也没有配串口直连,所以只能想办法从宿主机用vnc客户端来连,于是,本地用ssh -X来连宿主机,然后再宿主机上不论是用vncviewer,还是virt-viewer,还是virt-manager,连此vm时都提示要密码,virsh dumpxml了vm的配置文件看,vnc项也没有密码呀?随后再发现其他的vm用vnc客户端连同样需要密码,于是意识到这个跟特定的vm无关,考虑到系统的问题,于是

yum install tigervnc-server

装上vnc server,执行vncserver,提示设定密码,于是设定之。再然后用这个密码和vnc客户端软件一起用,果然就连上了vm。

分类: Operation System 标签:

centos6.*下/etc/security/limit.conf文件改错导致的问题

2016年5月14日 没有评论

在我印象中,我司服务器由于/etc/security/limit.conf被改错而导致系统不能进入的故障,在我在的这一年半以内,发生过两回这种故障。第一次,是把用户的nofile改成ulimited了,导致所有的用户无法登录,只有重启进单用户,修改/etc/security/limit.conf后恢复;第二次,也是改这个文件,把nofile的数目改的比kernel参数fs.nr_open还要大,同样也导致用户无法登录,最后也只有重启进单用户恢复。所以,结论:不要轻易修改/etc/security/limit.conf文件以及/etc/security/limit.d/目录下的文件的内容,有需要调整的,尽量在启动服务的启动脚本里直接用ulimit命令来调整!

分类: Operation System 标签:

lvm可以直接resize根分区了

2016年3月5日 没有评论

还是很长知识滴。一般来讲,感觉要动/分区,肯定得进rescue模式,然后把/给umount掉后才能做,但实际上,今天,我直接在线resize2fs了。具体情况是这样滴:
一台kvm从CloudStack迁到OpenStack上,原来的空间是5G,而新的是80G!

fdisk /dev/vda;

将多出的空间新建一个分区/dev/vda3

lvm pvcreate /dev/vda3;
lvm vgdisplay; # 查看vg的name,并注意"Free  PE"的值
lvm vgextend "VolGroup" /dev/vda3;
lvm lvdisplay; # 查看/的lvm的名字,这里是/dev/VolGroup/lv_root,并注意观察"Current LE"的值
lvm lvresize -l 20225 /dev/VolGroup/lv_root; # 这里的20225是上面"Free  PE"和"Current LE"之和
resize2fs /dev/VolGroup/lv_root;
分类: Operation System 标签:

错误设置lvs_sync_daemon_interface导致lvs director上公网出流量暴增的问题

2016年2月27日 没有评论

lvs director上跑的是keepalived,最近发现公网出流量很大,

iftop -i em2 -n

看发现是公网地址到224.0.0.81这个ip的流量很大。一查方知这个是用来同步lvs director的主从之间的连接信息的。
于是知道估计是同步连接信息的网卡设备配错了,导致用了公网去同步连接信息了。于是调整了配置中lvs_sync_daemon_interface的参数,将其指向内网ip地址,重启keepalived,一切OD了

分类: Operation System 标签:

openssl自签支持peap认证的证书

2016年2月21日 没有评论

我司办公室在折腾无线的802.1x认证,用的认证方式是peap,这个需要证书的purpose包含serverauth,但我们做的证书缺省是不包含的。而且,坑爹的是这个东西的修改没法通过命令行来实现,只能通过修改配置文件!!!于是,我们修改文件/etc/pki/tls/openssl.cnf
在[ usr_cert ]的最后一行,[ v3_req ]之前,添加一句:

extendedKeyUsage  = serverAuth, clientAuth
 
[ v3_req ]

再重新做证书,貌似就可以了。
但是貌似还是没有解决802.1x的认证问题,这个有空在继续讲

分类: Operation System 标签:

windows虚拟机(KVM)从CloudStack迁移到OpenStack的问题

2016年2月20日 没有评论

有个windows2012R2的kvm虚拟机,跑在cloudstack上的,现在要迁移到OpenStack(Liberty)上。一想,简单嘛,都是kvm。于是将windows2012R2的虚机停掉、做成模板、拷贝到OpenStack上、再在OpenStack中将其添加为images、最后在OpenStack里用这个image来起一个新的instance。结果是:instance起来了,但是进不去系统,只是让选键盘,然后修复、恢复、重新初始化什么的,但是实际上这几样什么都不行!
以上是问题,现在我讲讲我怎么解决的。首先下了个virtio-win的iso文件,在CloudStack上注册(ISO)上,然后在要迁移的这个虚拟机上attach这个ISO,再然后再虚拟机里将CDROM里的东西都拷贝到硬盘上,同时在OpenStack中新建一个卷,attach到虚拟机上。这样在虚拟机的设备管理器上就能看到有个打着感叹号标示的未知设备,双击它,选更新驱动程序,再选自选驱动程序位置,然后将搜索位置指向CDROM或者是刚才拷贝到的硬盘的位置,勾选上选子目录,再确定,系统会自动安装virtio的硬盘驱动。更新完毕,发现新加的这个卷已经被正确识别了。我们再在OpenStack里将这个卷detach掉、将CDROM也detach掉,最后停掉这个要迁移的虚拟机,将其做成模版。最后在CloudStack上将这个模版直接拷贝到OpenStack上,在OpenStack上将其添加到images里,然后再在OpenStack里基于这个image起个新instance,这个新instance起来了!登进去看,发现还是有些收尾工作要做,比如:网卡驱动不对呀什么的,表现就是设备管理器中的未知设备下有两个设备,于是双击-》更新驱动-》自选位置-》将位置定位拷贝过来的virtio驱动的目录-》确定!于是一会儿驱动程序装好,一切都OK了!
最后再谈谈为什么会出这个问题。首先,我感觉CloudStack和OpenStack(Liberty)在对待windows虚拟机用virtio驱动的态度上是不一样的,CloudStack相对保守,它给windows虚拟机的系统盘还是传统的ide驱动,但第二块盘开始也是virtio驱动了,而且网卡也没缺省用virtio;而OpenStack相对激进,从第一块盘系统盘开始就直接用virtio驱动,网卡也亦是virtio。

分类: Operation System 标签:

SNMP support for keepalived也许有bug

2015年11月28日 没有评论

前段时间为了监控lvs的director,到处找方案,最后发现其实keepalive(我的lvs是用keepalive配的)直接就支持snmp,只需要打开就可以通过snmp来抓去lvs的运行情况了。因为我发现一这可能有坑,二在cacti里看也不好看,故而也不推荐给大家用,所以具体配置不再赘述。我只说问题,现象是当跑了一段时间之后,发现某一个vip死活从外面ping不通了,但是从同网段是可以ping通的。由于我们是托管服务器,公网网关不受我们控制,所以没法在网关上听包,不知道icmp包是否已到公网网关。最后临时解决的方法很蠢但很有效,就是重启keepalive服务,这一下子,这个vip飘到从keepalive后又飘回来,就OK了

分类: Operation System 标签: