有些特殊的情况我们需要禁止root在本地或远程使用ssh登录以增加安全性。
修改/etc/pam
.d
/login文件增加下面一行
auth required pam_succeed_if.so user != root quiet
修改/etc/ssh/sshd_config文件将
#PermitRootLogin yes
修改为
PermitRootLogin no
重启ssdh服务即可默认情况下PermitRootLogin参数是注释的把注释去掉把值改为no就可以。
/etc/rc.d/init.d/sshd restart
注意禁止以后可以使用普通用户登录登录后若需要root权限可以使用“su”切换到root用户。或者配置sudo使普通用户使用某些root权限。
sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/' /etc/ssh/sshd_config sed -i '/#UseDNS yes/a\UseDNS no' /etc/ssh/sshd_config
用户权限的配置文件保住在/etc/sudoers,此文件为只读文件使用root用户登陆然后给此文件加上写权限权以用如下命令chmod u+w /etc/sudoers然后用vi编辑
用户 别名(可用all)=NOPASSWD:命令1命令2 wangming linuxfan=NOPASSWD:/sbin/apache start,/sbin/apache restart UserName ALL=(ALL) ALL peterli ALL=(ALL) NOPASSWD:/sbin/service
添加fuquanjun ALL=(ALL) ALL赋予root权限
## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL fuquanjun ALL=(ALL) NOPASSWD: ALL
然后保存退出再把写权限给去掉chmod uw /etc/sudoers这样用户了获得了root用户的所有权限
如果只想给用户相关命令权限可以按下面这样写
nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/check_mem Defaults requiretty # sudo不允许后台运行,注释此行既允许 Defaults !visiblepw # sudo不允许远程,去掉!既允许
同时禁止ssh的22号端口登录
在/etc/ssh/sshd_config文件中找到"Port 22”这个选项将它修改成"Prot yourID”并且在iptables里面修改允许端口即在/etc/sysconfig/iptables里面添加一条“-A INPUT -m state --state NEW -m tcp -p tcp --dport yourID -j ACCEPT”
重启sshd服务即可。
linux下升级 OpenSSH版本
可以参考http://blog.csdn.net/luojiafei/article/details/7262796
一、下载最新版本 OpenSSH
OpenSSH 的官方网站http://www.openssh.com
这里我下载的是openssh-6.6p1
使用ssh -V 命令查看一下
#安装相关的组件
yum -y install gcc openssl-devel pam-devel rpm-build
二、下面开始升级SSH这里我写了两种升级方法
1、编译安装 OpenSSH
wget http://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/openssh-6.6p1.tar.gz tar xf openssh-6.6p1.tar.gz cd openssh-6.6p1 ./configure --prefix=/usr --sysconfdir=/etc/ssh make mkdir /etc/sshbak
下载的是源码包要编译一***意我的编译路径我是讲OPENSSH安装在原来的路径下这样后面安装完成后就不用在重新copy SSHD服务到/etc/init.d/下了可以根据实际情况定制安装路径。
由于我使安装在原路径下,所以我将旧的配置文件挪了一下位置,不然make install 会报错! make install
/etc/init.d/sshd restart 这里注意安全如果你前面编译报错了还强制安装SSHD服务可能就起不来了 chkconfig --add sshd chkconfig sshd on
重启过SSH服务后查看版本
[root@test01 ~]# ssh -V OpenSSH_6.6p1, OpenSSL 1.0.1e-fips 11 Feb 2013
已经成功升级至6.6版本
2、rpm包安装
编译源程序为 RPM 安装包
cp /root/openssh-6.2p1/contrib/redhat/openssh.spec /usr/src/redhat/SPECS/ cp openssh-6.2p1.tar.gz /usr/src/redhat/SOURCES/ cp x11-ssh-askpass-1.2.4.1.tar.gz /usr/src/redhat/SOURCES/ perl -i.bak -pe 's/^%define no_gnome|x11_askpass\s+0$/$1 1/' openssh.spec //备份这个文件 rpmbuild -bb openssh.spec //制作生成rpm包
安装编译好了的 RPM 包
cd /usr/src/redhat/RPMS/`uname -i` rpm -Uvh openssh*rpm