sshd服务是现代类unix系统中默认启动的服务,用于远程登陆管理维护服务器。ssh协议的整个的传输过程全程加密,保证数据无法被窃听和篡改。ssh协议和ProtocolSecurity),是直接在互联网的四层协议IP协议的加密和认证来保护IP协议的安全网络栈。IPsec建立有两部分,第一建立安全分组流密钥交换协议,互联网密钥交换IKE;第二是保护分组流的协议,封装安全载荷协议ESP和认证头协议AH。IPsec协议主要用于虚拟专用网络应用中,既常说的VPN。除了IPsec,vpn还会用到ssl协议,即sslVPN。ssh协议和openssh我们前面说了sshd是类unix系统必备服务,用于服务器管理维护。最常用的sshd服务器有openbsd出品的openssh,还有所有ssh和ssl/tsl协议基础的软件openssl以及著名的防火墙IPF。openbsd是世界上最安全的免费开源的类unix操作系统,openbsd创建20年来只发生2次远程攻击的漏洞。但是其开发团队资金比较紧张,没有太多精力保障,所以出现了opnssl让整个互联网都颤动的漏洞“心脏出血”。openssh目前最新版本是前两天发布的openssh7.7,linux版本是7.7p。openssl最新为6.3版本,为了安全起见openssh都应该要升级到至少7.5p版本。sshd安全设置前面我们说了sshd主要用户服务器的远程维护,所以sshd安全设置非常重要,所以最后回应问题说下sshd的安全设置,以centos下openssh为例说明。
1、升级到安全版本,上一部分提到了,升级openssh和底层的openssl。
2、修改sshd默认的端口22,根据虫虫的经验当你开通一个云服务器后,5分钟内你的认证日志/var/log/secure里面就有经过端口22尝试的暴力破解访问,主要用户为root,mysql等系统常用用户,如果你开放了22密码,而且root用了一个弱密码的话,估计用不了几分钟你的机器就会沦为肉鸡,沦为矿机,沦为ddos攻击源。所以在放开对外访问前第一步就是修改端口,修改为一个5位端口,基本上就可以很大程度上抵制这类暴力破解攻击。修改默认端口方法是修改配置文件/etc/ssh/sshd_config(下同),修改其中的Port22为Port注意,端口号可以自己改为别的,修改之前注意在防火墙给要开放的端口添加开放端口,比如iptables-iINPUT-ptcp-dport-jACCEPT3、设置禁止root登陆,上一步说了,暴力破解主要以root登陆,所以直接禁止root登陆就能抵制绝大多数的攻击。设置方法,配置文件增加一行:PermitRootLoginno4、禁止密码登陆,仅仅用证书登陆。现在.ssh/authorized_keys文件中添加你的公钥,并确保可以证书登陆的情况下,禁止密码登陆,这样可以完全杜绝暴力破解攻击的。禁止设置为配置增加一行:PasswordAuthenticationno5、限制sshd的访问控制,可以用三种方法进行限制,iptables(或firewall)防火墙,基于tcp_wrapper机制(hosts.deny和hosts.allow),配置文件。前两种方法常见,不在赘述,有需要回复,虫虫可以写个文章介绍。这儿再说了通过sshd配置文件设置限制的方法,其实也很简单,只需要增加一句,语句支持DenyUsers,AllowUsers,DenyGroups和AllowGroups格式为:agent@192.168.3.1允