分类 默认分类 下的文章

前言

有段时间我用ssh远程登录后发现,有一串字符提示,大致意思的使用密码登录失败了几千次。登录的IP也是国内的国外都有。
看起来黑客想搞我的虚拟机,是在不断尝试啊。
目前在一家网络安全公司,虽说岗位不是安全研究之类的,但是一些安全意识也是增强不少,想起来是时候来关起门来了,把虚拟机一些整一下。

SSH 的安全设置

这里主要是sshd的配置文件/etc/ssh/sshd_config修改。

禁止root远程登录

PermitRootLogin no

禁用之后新建账号,以后用新建的账号远程登录,再切回root。

useradd aliang
passwd aliang

更换ssh端口号

Port 2222
一般也会被扫出来,只是让黑客能多费点事。

减少尝试登录次数

MaxAuthTries 3

一次登录时限为30秒

LoginGraceTime 30

仅使用密钥登录,不允许使用密码登录

PasswordAuthentication no
AuthorizedKeysFile .ssh/authorized_keys

生成密钥方法下一篇文章再说。

PAM参考这里

https://www.ibm.com/developerworks/cn/aix/library/au-sshlocks/index.html

关于git的crlf提交有如下配置。

提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true

提交时转换为LF,检出时不转换
git config --global core.autocrlf input

提交检出均不转换
git config --global core.autocrlf false

拒绝提交包含混合换行符的文件
git config --global core.safecrlf true

允许提交包含混合换行符的文件
git config --global core.safecrlf false

提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn

但是我本地采用了git config --global core.autocrlf input, 即提交和检出都不使用自动转换crlf。那么这个就需要保证自己提交文件时注意将换行改为LF。

git status -s|grep -v 'D '|awk '{print $2}'|xargs file|grep CRLF
这条命令是将未提交到本地的文件列出,排除已删除的,并且行结尾使用了CRLF的。

RPM编译时遇到这个问题

xecuting(%build): /bin/sh -e /var/tmp/rpm-tmp.HDvAfF
+ umask 022
+ cd /tmp/csmp-build-TLlpXrJT/BUILD
+ cd csmp-2.0.3sp1
+ $'\r'
/var/tmp/rpm-tmp.HDvAfF: line 29: $'\r': command not found
error: Bad exit status from /var/tmp/rpm-tmp.HDvAfF (%build)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.HDvAfF (%build)
make: *** [rpm] Error 1
make: Leaving directory `/root/rpms/xxx'

打开这个文件/var/tmp/rpm-tmp.HDvAfF时,会看到29号有个特殊的字符 ^M

这个其实是CLRF 没转成LF的问题, linux上用yum install dos2unix,修改相应的文件 即 dos2unix filename 即可