一.修改默认端口:原文本内容为#Port 22,将注释去掉,并修改成其它的端口,例如修改为Port 1433。
二.禁止root用户远程登陆:原文本内容为#PermitRootLogin yes,修改为PermitRootLogin no。
一般情况下用普通用户ssh登录,如需root权限,再su。
三.禁止空密码用户登陆:原文本内容为#PermitEmptyPasswords no,修改为PermitEmptyPasswords no
四.限制登陆密码输错为6次:原文本内容为#MaxAuthTries 6,修改为MaxAuthTries 6
五.增加警示信息:vi /etc/ssh/ssh-banner.txt,输入以下内容:
*This is a private SSH service. Only allow appointed employee login.*
*Please leave immediately if you no gained accredit.Thank you a lot. *
保存退出,然后修改原文本内容#Banner /some/path为Banner /etc/ssh/ssh-banner.txt
六.阻止超过登陆密码输错次数的ip:
1.使用工具Denyhost,下载地址:http://rpm.pbone.net/index.php3/stat/4/idpl/12670968/com/DenyHosts-2.6-python2.4.noarch.rpm.html
2.检查安装环境:
ldd /usr/sbin/sshd |grep wrap #得到:libwrap.so.0 => /usr/lib64/libwrap.so.0 (0x00002aaaaacc6000)
python -V #得到:Python 2.4.3
3.安装并做成系统服务:
cd /usr/share/denyhosts
cp daemon-control-dist daemon-control
chmod 700 daemon-control
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
chkconfig --add denyhosts
chkconfig --level 345 denyhosts on
4.做相应的配置:
cp denyhosts.cfg-dist denyhosts.cfg
chmod 600 denyhosts.cfg
vi denyhosts.cfg
修改默认参数至如下:
PURGE_DENY = 15d #过多久后从/etc/hosts.deny清除已经禁止的ip,即阻止ip的时间,m表示分钟、d表示天、w表示周
DENY_THRESHOLD_INVALID = 3 #允许无效用户(/etc/passwd未列出的)登录失败的次数
DENY_THRESHOLD_VALID = 6 #允许有效(普通)用户登录失败的次数
DENY_THRESHOLD_ROOT = 6 #允许root登录失败的次数
HOSTNAME_LOOKUP=NO #是否做域名反解
5.启动服务:
service denyhosts start #启动
service denyhosts restart #重启
6.还有Fail2Ban和sshfilter这两个小工具也可达到相应的目的。
通过tail -f /var/log/secure,可查看试图非法ssh的信息。
通过vi /etc/hosts.deny,可查看恶意连接的ip。
通过cat /var/log/denyhosts查看Denyhost日志文件。
再加上Linux/Unix系统分支太多、版本延续等原因,导致设置环境变量的涉及文件差别太大。于是,除长期使用某Linux平台用户外,大都对环境变量设置比较浆糊,只能随用随查。
注意:本文内容可能随Linux版本不同有细微差异。
一、Linux环境变量文件
涉及文件有:
/etc/environment - 在登录时首先加载。
/etc/profile - 系统初始化文件,全局用户环境变量,登录时执行.
~/.bash_profile - 登录时设置生效,当用户登录时,该文件执行一次。
~/.bashrc - 个人交互式SHELL启动生效。当登录时及每次打开新Shell时,该该文件被执行。
~/.bash_login -个人登录Shell生效,登录时执行。
~/.bash_logout - 个人登录Shell清理文件,退出Shell时执行。
按照IBM网站说法/etc/environment本来是属于交互式登录时第一个执行的(先于/etc/profile),但是,天缘查看最新的CentOS 6.3上/etc/environment已为空文件,从/etc/profile说明来看,似乎系统更加倾向于要求用户不要修改这些默认的配置文件,而是把自己的配置文件放入专门的目录(/etc/profile.d/*.sh等位置)。
二、交互式登录SHELL
登录时执行顺序:
IF ~/.bash_profile exists THEN
execute ~/.bash_profile
ELSE
IF ~/.bash_login exist THEN
execute ~/.bash_login
ELSE
IF ~/.profile exist THEN
execute ~/.profile
END IF
END IF
登出时执行:
execute ~/.bash_logout
END IF
请注意~/.bashrc执行的是/etc/bashrc:
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
三、交互式非登录SHELL
execute ~/.bashrc
END IF
备注:
~/.profile 表示 $HOME/.profile
交互式登陆Shell与交互式非登录Shell区别:前者执行/etc/profile和~/.bash_profile, ~/.bash_login, and ~/.profile,后者只执行/etc/bash.bashrc和~/.bashrc。
您可能感兴趣的文章:
Linux环境变量的设置与查看
设置Linux环境变量的三种方法
Linux环境变量配置小结
Linux下卸载软件不如windows下方便,卸载Linux平台软件非常麻烦,而且提示不清,经常还会为路径问题煞费脑筋,因为有些源码编译安装的,所以路径一般不会使用默认路径,那么有依赖关系的软件就很容易出问题,找不到依赖执行或配置文件。而有一些又是系统默认安装的,路径一般比较分散,再加上平台多,卸载起来更是麻烦。
本文总结了常见的几种Linux软件卸载方式,希望可以帮助大家掌握如何卸载Linux下的各种软件。
注:以下命令均在终端SHELL中进行。X-WINDOW也有对应的文件管理工具,但终究使用较少。安装和卸载软件前最好看看README,一般均有说明,国内软件就不说了,有时作者都不清楚如何卸载的软件都会往外发。
一、绿色软件
这类软件大多是以压缩包(*.tar.gz,...)形式发放的,跟下文的源码包类似,但是不需要编译,直接解压到某个目录即可运行。这类软件直接到对应目录下删除即可。不涉及相关系统变量修改,至多再加上相关启动选项修改或启动链接。
rm -rf softname_version
二、使用RPM包安装的软件
1、确定软件版本
rpm -qa|grep softname*
softname为软件名称,不确定部分可使用*通配符。接着就会有相关的软件包列表。
2、卸载软件包
rpm -e softname_version
softname_version为完整的软件包名称。
当卸载RPM安装包时,经常会遇到系统提示如下错误:
error: specifies multiple packages,出现该错误一般是因为有两个或多个同名包,(典型:是x86和x64包都安装),Linux无法区分卸载目标。这时可使用--allmatches参数,告诉卸载程序,只要匹配就卸载,相当于同名的同时都卸载。
常见卸载错误xxx.so is needed by yyy时,说明这些库跟这些程序有依赖关系(运行需要),如果确认没有问题,可以 使用--nodeps 参数,不考虑依赖关系而直接卸载gd包,比如# rpm -e gd --allmatches --nodeps
3、定制的安装和卸载软件
这类软件很少了,但是某些商业软件则会提供,安装卸载会跟WINDOWS平台一样,一般只需运行一个脚本就可完成。
三、自编译安装的软件
这类软件有*.tar.gz,*.tar.bz,*.tar.bz2等,都是源程序,需要编译才能安装(当然也有上文的绿色解压安装的,但也使用tar.gz这样打包的,不在此列)。这类软件使用上文的rpm命令查不到任何信息。只有天知道(自己过些日子可能也不知道)安装到了哪里。
1、卸载自编译软件
make uninstall
注意该命令要在源码包目录下执行,使用此命令卸载软件,会比较彻底,而且各相关路径全部都会列出来。
但是,往往我们安装后,源码包会删除掉,只剩安装目标了,那么在找到安装时的配置就很麻烦(路径可能是默认路径,也可能指定路径)。而且也未必能够找到。安装LOG也未必能帮得上忙。
2、XXX卸载方法
如果遇到上面说的那种情况(其实是经常遇到),又找不到路径的,只能手动删除了,确保没有运行干扰的程序就可以了。
此外,还有*.src.rpm形式的源代码包,也需要编译安装,卸载方法同第二节。