Blue.Wolf 发布的文章

SSH Authentication Refused: Bad Ownership or Modes for Directory问题解决办法

配置密钥登录SSH的过程中遇到些问题,记录下方便后续工作。

1、SSH Authentication Refused: Bad Ownership or Modes for Directory /home/user

从字面上可以看出是目录的属主和权限配置不当,查找资料得知:SSH不希望home目录和~/.ssh目录对组有写权限,通过下面几条命令改下

chmod g-w /home/user
chmod 700 /home/user/.ssh
chmod 600 /home/user/.ssh/authorized_keys

还有另外一种方法是在sshd_config文件中配置

StrictModes off

,但是不推荐,因为这是全局配置,关闭了不安全。

2、fatal: bad ownership or modes for chroot directory component "/var/www/project"

在sftp配置中,

ChrootDirectory /var/www/project

参数限定用户登录sftp后的活动范围。
这个参数配置要求比较严格,需要限制目录的每个上级目录的属主都是root,例如/var/www/project,它就要求/ /var /var/www三个目录的owner都是root。如果不好更改,可以用软链接的形式实现,例如

ln -s /var/www/project /home/project

配置Apache mod_proxy模块反向代理tomcat,去除tomcat访问的端口号

首先检查apache根目录下的modules目录中是否有mod_proxy.so、mod_proxy_http.so文件,如果没有,说明编译安装apache时没有配置proxy模块。可以参照这篇文章的方法,给已经编译运行的Apache增加mod_proxy模块。

配置完后重启apache生效,此时就已经加载mod_proxy.so、mod_proxy_http.so这两个模块了,可以

grep 'proxy' conf/httpd.conf
检查下。如果有用到AJP或者tomcat负载均衡,则还需编译增加其他模块,这个再自行搜索即可。

然后在apache的conf/vhost/目录中新增一个conf配置文件,可以复制已存的拿来改。如下是我的内容

<VirtualHost *:80>
DocumentRoot /www/domain.com
ServerName www.domain.com
ServerAlias *.domain.com

ProxyRequests Off
ProxyPass /download.html !   #表示改URL不反代
ProxyPass /img !
ProxyPass / http://www.domain.com:8080/MyTomcatApp/
ProxyPassReverse / http://www.domain.com:8080/MyTomcatApp/
</VirtualHost>

参考文章:

http://freeloda.blog.51cto.com/2033581/1301382
https://rvdb.wordpress.com/2012/04/26/reverse-proxying-tomcat-webapps-behind-apache/

海外VPS哪家强?

转载于微信公众号「pennyjob」,原文链接

网友B:美帝哪个虚拟空间服务商比较好,能否推荐?
答:这个问题回答了无数次了,只好再贴一次之前的回答。

buyvm是老牌的vps,曾经很火。他有一个奇葩的优势,就是ssh上去写代码非常快,不知道做了什么特别优化,因此job君的代码都在其一台服务器上。
linode可能是最成熟的vps之一,东京机房很快,国内很多创业公司都买了东京机房的vps,提供负载均衡服务,snapshot等标准化云服务。运行也稳定基本很难得做维护,通知客户重启机器。
vultr可能是相对新锐的vps提供商了。据说背后有大财团,其机房遍布世界,英国也有机房,我有个抓彩票数据的哥们,受限于那个网站只限制英国IP访问而无法抓数据,有了vultr就解决了。其snapshot有点问题,snapshot完,create一台新机器IP和原机器一样,ssh不上,要改,很麻烦。价格目前看也是最便宜的。
digital ocean是目前创业公司的宠儿,几大优势,1)流量超标不扣费,前面三个都是流量超过套餐计划要增加收费。2)旧金山机房速度很快,只比linode东京机房速度略逊。比如我的pullword就部署在旧金山机房,还有大部分VPN也部署在旧金山机房 3)snapshot很方便,支持跨机房transfer

以上vps提供商都提供按小时计费,buyvm要事先选好,digital ocean默认就是按小时计费,destroy掉机器后,收费就停止。另外digital ocean默认1个信用卡最多创建10台主机,不同的vps规定也不完全相同,需要多create机器只需要写个support ticket即可,向提供商说明自己增加机器的原因,不愿意说明,就多准备一些信用卡即可。

总体上,job君给大家一个选择vps的参考型建议。
1)如果是不差钱型的,用户体验至上的,那就选linode 东京机房,之前陈怀临(首席)的微博图片服务就是放在东京机房,速度非常给力。
2)如果是差钱型的,害怕服务突然火,流量超量的,需要非常超值,且服务稳定的,就选digital ocean的旧金山机房,但这个机房的可申请服务器,job君感觉也不会很多了,目前大家基本是一拥而上的申请。
3)如果需要全世界多一些的机房,就选vultr,这个比较新,各种功能有待开发完善,但价格相对便宜,提供的SSD也大,够玩了。

Ubuntu sftp配置及上传文件权限问题解决方案

编辑配置文件/etc/ssh/sshd_config

Subsystem sftp /usr/lib/openssh/sftp-server

改成

Subsystem sftp internal-sftp

增加如下内容

Match user ftpuser
ChrootDirectory %h
ForceCommand internal-sftp

多个用户则重复配置上面的三行。

然后修改用户,设定shell为/bin/false,就可以限制用户无法登录SSH只能使用sftp


配置默认上传文件权限

Subsystem sftp internal-sftp -u 0002

增加上面加粗的-u 0002

表示配置sftp中的umask为0002,这样在sftp里新建目录权限就是775(777-002),文件权限664(666-002)

参考文章:

Limiting Access with SFTP Jails on Debian and Ubuntu
How do I set default permissions for SFTP for an Ubuntu Server?
【系统管理】Linux Umask 介绍

centos开机启动服务优化笔记

默认开机启动服务列表:

服务名称 功能 默认 建议 备注说明
NetworkManager 用于自动连接网络,常用在Laptop上 开启 关闭 对服务器无用  服务器一般固定配置网络,不会自动获取ip等
abrt-ccpp   开启 自定 对服务器无用
abrt-oops   开启 自定 对服务器无用
abrtd   开启 自定 对服务器无用
acpid 电源的开关等检测管理,常用在Laptop上 开启 自定 对服务器无用
atd 在指定时间执行命令 开启 关闭 如果用crond,则可关闭它
auditd 审核守护进程 开启 开启 如果用selinux,需要开启它
autofs 文件系统自动加载和卸载 开启 自定 只在需要时开启它,可以关闭
avahi-daemon 本地网络服务查找 开启 关闭 对服务器无用
avahi-dnsconfd avahi DNS 关闭 关闭 对服务器无用
bluetooth 蓝牙无线通讯 开启 关闭 对服务器无用
dund 蓝牙相关 开启 关闭 对服务器无用
hidd 蓝牙相关 开启 关闭 对服务器无用
pand 蓝牙相关 关闭 关闭  
conman 控制台管理 关闭 关闭 无用
certmonger   关闭 关闭  
cpuspeed 调节cpu速度用来省电,常用在Laptop上 开启 关闭 对服务器无用
crond 计划任务管理 开启 开启 常用,开启
cups 通用unix打印服务 开启 关闭 对服务器无用
dnsmasq dns cache 关闭 关闭 DNS缓存服务,无用
firstboot 系统安装后初始设定 关闭 关闭  
fcoe Open-FCoE  initiator    以太网光纤通信 开启 关闭 除非服务器光纤直连,否则无用
gpm 控制台下的鼠标支持 开启 开启  
haldaemon 硬件信息收集服务 开启 开启  
ibmasm ibm硬件管理 关闭 关闭  
ip6tables ipv6防火墙 开启 关闭 用到ipv6网络的就用,一般关闭
iptables ipv4防火墙 开启 开启 ipv4防火墙服务
irda 红外线通信 关闭 关闭 无用
irqbalance cpu负载均衡 开启 自定 多核cup需要
iscsi 网络存储相关 开启 关闭  
iscsid 网络存储相关 开启 关闭  
kdump 硬件变动检测 关闭 关闭 服务器无用
kudzu 硬件变动检测 低版本的系统中 关闭 关闭 对服务器无用
livesys 安装系统相关服务 开启 关闭  
livesys-late 安装系统相关服务 开启 关闭  
lvm2-monitor lvm监视 开启 自定 如果使用LVM逻辑卷管理就开启
blk-availability lvm2相关 开启 自定 如果用lvm,则建议开启,否则不需要
mcstrans 在开启selinux时用于检查context 开启 关闭  
matahari-broker   关闭 关闭 此服务不清楚,我关闭
matahari-host   关闭 关闭 此服务不清楚,我关闭
matahari-network   关闭 关闭 此服务不清楚,我关闭
matahari-service   关闭 关闭 此服务不清楚,我关闭
matahari-sysconfig   关闭 关闭 此服务不清楚,我关闭
mdmonitor 软raid监视 开启 自定  使用软raid的服务器开启
mdmpd 软raid管理 关闭 关闭  
multipathd   关闭 关闭  
messagebus 负责在各个系统进程之间传递消息 开启 开启 如停用,haldaemon启动会失败
microcode_ctl cpu微码管理升级 开启 关闭  
netconsole   关闭 关闭  
netfs 系统启动时自动挂载网络文件系统 开启 关闭 如果使用nfs服务,就开启
network 系统启动时激活所有网络接口 开启 开启 网络基础服务,必需!
netplugd 网线热插拔监视 关闭 关闭  
nfs 网络文件系统 关闭 关闭 nfs文件服务,用到就开启
nfslock nfs相关 开启 关闭 nfs相关服务,用到就开启
nscd name cache,应该与DNS相关 关闭 关闭  
ntpd 自动对时工具 关闭 自定 网络对时服务,用到就开启
ntpdate 自动对时工具 关闭 关闭  
oddjobd 与D-BUS相关 关闭 关闭  
portreserve RPC 服务相关 开启 自定 可以关闭
pcscd pc/sc smart card daemon 开启  关闭  
portmap 使用NFS、NIS时的port map 开启 关闭  
postfix 替代sendmail的邮件服务器 开启 自定 如果无邮件服务,可关闭
psacct 负荷检测 关闭 关闭 可以关闭
qpidd 消息通信 开启 开启  
quota_nld   关闭 关闭 可以关闭
rdisc 自动检测路由器 关闭 关闭  
rawdevices raw设备支持 开启 开启  
readahead_early 提前预读相关 开启 开启  
readahead_later   关闭 关闭  
restorecond selinux相关 关闭 关闭 如果开启了selinux,就需开启
rpcbind   开启 开启 关键的基础服务,nfs服务和桌面环境都依赖此服务!相当于CentOS 5.x里面的portmap服务。
rpcgssd NFS相关 开启 关闭 NFS相关服务,可选
rpcidmapd RPC name to UID/GID mapper 开启 关闭 NFS相关服务,可选
rpcsvcgssd NFS相关 关闭 关闭 NFS相关服务,可选
rsyslog 提供系统的登录档案记录 开启 开启 系统日志关键服务,必需!
syslog 系统日志相关 开启 开启  
saslauthd sasl认证服务相关 关闭 关闭  
smartd 硬盘自动检测守护进程 关闭 关闭  
spice-vdagentd   开启 开启  
sshd ssh服务端,可提供安全的shell登录 开启 开启 SSH远程登录服务,必需!
sssd   关闭 关闭  
sendmail 邮件服务 开启 自定义  
sysstat   开启 开启 一组系统监控工具的服务,常用
tcsd   关闭 关闭  
udev-post 设备管理系统 开启 开启  
wdaemon   关闭 关闭  
wpa_supplicant 无线认证相关 关闭 关闭  
xfs x windows相关 开启 关闭  
ypbind network information service客户端 关闭 关闭  
yum-updatesd yum自动升级 开启 关闭  

表格转载于:http://www.ha97.com/4815.html

查看当前开机启动服务列表

chkconfig --list | grep '3:on' | awk '{print $1}'

我的优化项目

history | grep 'chkconfig' | awk '{print $2,$3,$4}' | grep 'off'
chkconfig bluetooth off
chkconfig auditd off
chkconfig cups off
chkconfig yum-updatesd off
chkconfig smartd off
chkconfig sendmail off
chkconfig ip6tables off
chkconfig atd off
chkconfig iscsi off
chkconfig iscsid off
chkconfig microcode_ctl off

需要因机器和环境而异,仅做记录备忘。

推荐阅读

《生产服务器环境最小化安装后 Centos 6.5优化配置》http://www.lvtao.net/server/centos-server-setup.html