CentOS如何禁用root本地或远程ssh登录及升级OpenSSH

有些特殊的情况我们需要禁止root在本地或远程使用ssh登录以增加安全性。

禁止root本地登录

修改/etc/pam.d/login文件增加下面一行

auth required pam_succeed_if.so user != root quiet

禁止root远程ssh登录

修改/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

Linux下让一个普通用户并且获得root权限

用户权限的配置文件保住在/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 命令查看一下

wKioL1O2eCfxY1OXAABQkoc8a3E421.jpg

#安装相关的组件

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

你可能感兴趣的:(ssh)