OpenLDAP提示ldap_result: Can’t contact LDAP server (-1)

近日, 出现在频繁登陆不了LDAP服务的情况, 登陆时总提示ldap_result: Can’t contact LDAP server (-1)的错误,

检查系统日志, 出现如下错误

slapd[1044]: warning: cannot open /etc/hosts.deny: Too many open files

基本上可以判断, slapd进程的文件句柄数量达到限制了.

原因分析

$ pidof slapd | xargs lsof -a -p | wc -l    #查看slapd当前的文件句柄数量

$ cat /proc/`pidof slapd`/limits    #查看系统对slapd进程的文件句柄数量限制
Limit                     Soft Limit           Hard Limit           Units     
……
Max open files            4096                 4096                 files     
……

$ ulimit -a    #也可以通过这条命令来查看
……
open files                      (-n) 1024
……

“open files (n) 1024 “是Linux操作系统对一个进程打开的文件句柄数量的限制(也包含打开的SOCKET数量,可影响MySQL的并发连接数目). 这个值可用ulimit命令来修改, 但ulimit命令修改的数值只对当前登录用
户的目前使用环境有效, 系统重启或者用户退出后就会失效.

cat /proc/sys/fs/file-max    #查看系统总限制
cat /proc/sys/fs/file-nr    #查看系统目前使用的文件句柄数量

解决办法
不想重启的话,可以按照如下办法来解决

$ vim /etc/init.d/slapd
function start() {          #找到start()函数
……
        harg="$SLAPD_URLS"
        ulimit -HSn 4096    #添加这一行
……

$ /etc/init.d/slapd restart

然后可以切换到一个普通用户, 执行ulimit -a看看是否发生了变化.

建议采取的办法

$ vim /etc/security/limits.conf    #添加如下两行,注意slapd进程使用的用户是ldap
ldap		soft	nofile		4096
ldap		hard	nofile		4096

然后重启即可.

参考文档:
Troubleshooting slapd error: too many open files

====================================================

2016.07.27补充:

公司使用的OpenLDAP, 在/etc/security/limits.conf指了soft和hard均为4096, 重启以后现在soft limit又变成1024, 但hard limit变成了4096. 经过一翻搜索得知, 原来OpenLDAP进程启动时会自行修改soft limit. 解决办法为

$ vim /etc/sysconfig/ldap    #指定如下参数
......
SLAPD_ULIMIT_SETTINGS="-n 4096"
......

Ubuntu系统里可能是/etc/default/ldap(不确定).

Linux内核参数设置sysctl命令详解

sysctl是一个允许您改变正在运行中的Linux系统的接口. 它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能. 用sysctl可以读取设置超过五百个系统变量. 基于这点, sysctl提供两个功能:读取和修改系统设置.

常用参数

-w 临时改变某个指定参数的值,如sysctl -w net.ipv4.ip_forward=1
-a 显示所有的系统参数
-p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载

以下是实例

$ sysctl -a     #查看所有可读变量

$ sysctl net.ipv4.ip_forward    #查看某个变量
net.ipv4.ip_forward = 1

$ sysctl -n net.ipv4.ip_forward    #获取某个变量的值
1

$ sysctl -w kernel.yama.ptrace_scope=0   #临时修改某个变量的当前值,即虚拟文件系统/proc下的值,重启失效
kernel.yama.ptrace_scope = 0

$ echo 1 > /proc/sys/net/ipv4/ip_forward  #临时修改某个变量的当前值,效果同上

#使用sed命令永久修改某值
#把kernel.yama.ptrace_scope开头的行修改为后面的值,注意第2个/后面有个c表示change
$ sudo sed -i "/^kernel.yama.ptrace_scope/ckernel.yama.ptrace_scope = 0" /etc/sysctl.d/10-ptrace.conf
$ sysctl -p    #将sysctl.conf文件中的修改读取到系统中,即虚拟文件系统/proc下的值

继续阅读

配置Xmanager连接Ubuntu 14.04远程桌面

Xmanager默认使用XDMCP协议连接远程桌面, 因此这里我们需要启用XDMCP协议.

$ sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
[SeatDefaults]
user-session=mate     #将其改为mate, 并添加如下几行
allow-guest=false
greeter-show-manual-login=true
greeter-hide-users=true

[XDMCPServer]
enabled=true


$ sudo service lightdm restart

$ netstat -anp  |grep :177     #确保UDP的177端口启动成功(XDMCP使用UDP 177端口)
udp        0      0 0.0.0.0:177             0.0.0.0:*                           -               
udp6       0      0 :::177                  :::* 

接下来是安装mate桌面

$ sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
$ sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
$ sudo apt-get update

mate官方WIKI针对Ubuntu 14.04给出了三种安装方式

$ sudo apt-get install mate-desktop-environment-core   #安装一个最小化的mate桌面
$ sudo apt-get install mate-desktop-environment        #安装一个完整的mate桌面
$ sudo apt-get install mate-desktop-environment-extras #安装一个完整的mate桌面(包含推荐的软件包)

本文这里使用了第一种方式安装.

然后就可以在Xmanager里输入IP地址, 方法选择”XDMCP Query”即可连接.

Linux系统安装obfuscated-openssh

1,安装obfuscated-openssh server

obfuscated-openssh可以代替系统的OpenSSH服务,如果在安装过程中不指定–prefix选项,它将替换系统openssh-server的二进制程序和配置文件. 本文指定了安装目录,并不会与系统自带的openssh服务冲突.

yum install zlib openssl                     #适用Redhat/CentOS系统
sudo apt-get install zlib1g-dev libssl-dev   #适用Ubuntu系统

wget -O ofcssh.tar.gz https://github.com/brl/obfuscated-openssh/tarball/master

tar zxvf ofcssh.tar.gz

cd brl-obfuscated-openssh-ca93a2c/

./configure --prefix=/usr/local/obfus  #如果遇到错误请参考下文处理方法
make
make install

sed -i "s/Port /#Port /g" /usr/local/obfus/etc/sshd_config      #22端口被正常的SSH服务使用,这里不需要
sed -i "s/UsePAM /#UsePAM /g" /usr/local/obfus/etc/sshd_config  #obfuscated-openssh不支持UsePAM选项
echo "ObfuscatedPort 32" >> /usr/local/obfus/etc/sshd_config              #指定监听端口
echo "ObfuscateKeyword fuckthegfw" >>  /usr/local/obfus/etc/sshd_config   #指定混淆密钥

运行:
/usr/local/obfus/sbin/sshd -f /usr/local/obfus/etc/sshd_config &


设置开机自启(写入/etc/rc.local)
echo 'nohup /usr/local/obfus/sbin/sshd -f /usr/local/obfus/etc/sshd_config >> /var/log/obfus.log 2>&1 &' >> /etc/rc.local

继续阅读

获取China大陆IP段的范围

这里有几个网站提供了大陆的IP段范围。别问我要这个列表干什么,我也不知道。

http://www.ip2location.com/blockvisitorsbycountry.aspx
老牌网站,国内很多人应该都知道,可以选择任意一个国家的IP段,然后可以输出多种格式。

https://www.countryipblocks.net/country_selection.php
跟上面的那个一样,多一个备份。

http://www.ipdeny.com/ipblocks/
一样是列出了所有国家的IP段文件,提供下载。

删除文件以后,XFS分区的可用容量并未增加?

今天接到一同事报告,在分区里删除了一些大体积文件以后,使用df -hT看到该分区的Avail容量并未增加。我的第一反应就是肯定是XFS文件搞的鬼!经过谷歌以后证明了确实是XFS文件系统的问题。

XFS is designed to support highly parallel operation and massive dynamically expanding file system sizes. Both are supported by dynamic allocation of inodes.

XFS被设计为支持高度并行运算和海量动态扩展文件系统大小。两者都是由inode的动态分配支持。

XFS dynamically allocates space for inodes as they are created, this is different from many other filesystems where inode space is statically allocated at mkfs time. While inode space is dynamically allocated, it is never freed – up until now that is.

When ikeep is specified, XFS does not delete empty inode clusters and keeps them around on disk. When noikeep is specified, empty inode clusters are returned to the free space pool.

继续阅读

为Linux发行版安装开源字体软件

除了Ubuntu以外,大多数Linux发行版在字体渲染方面一直都不好,尤其是安装了中文字体以后,看起来模糊、发虚,简直无法直视。本文介绍了在Arch/Fedora/OpenSUSE/Debian系统下安装Infinality开源字体软件的方法。

1,为Arch Linux安装Infinality

$ sudo vim  /etc/pacman.conf:

[infinality-bundle]
Server = http://bohoomil.com/repo/$arch

[infinality-bundle-multilib]
Server = http://bohoomil.com/repo/multilib/$arch

[infinality-bundle-fonts]
Server = http://bohoomil.com/repo/fonts

$ sudo pacman -Syu

$ sudo pacman -S infinality-bundle infinality-bundle-multilib ibfonts-meta-extended  #64位系统
$ sudo pacman -S infinality-bundle ibfonts-meta-extended     #32位系统

然后重启系统即可。 继续阅读

Page 6 of 148« First...456789...203040...Last »