在安装ssh,常常出现 ssh: connect to host localhost port 22: Connection refusedsql
从如下几点去检查:安全
1.是否安装ssh-server:服务器
打开"终端窗口",输入"sudo ps -e |grep ssh"-->回车-->有sshd,说明ssh服务已经启动,若是没有启动,输入"sudo service ssh start"-->回车-->ssh服务就会启动。若无sshd:网络
打开"终端窗口",输入"sudo apt-get install openssh-server"-->回车-->输入"y"-->回车-->安装完成。
ssh
2.命令行用户名输错:tcp
ssh user@ip ,注意不少状况下user不对形成了这个问题,有时root并不能登陆,须要当前用户名oop
passwd root:修改root密码spa
3.关闭或修改防火墙配置:命令行
4.配置文件:orm
使用gedit修改配置文件"/etc/ssh/sshd_config"
打开"终端窗口",输入"sudo gedit /etc/ssh/sshd_config"-->回车-->把配置文件中的"PermitRootLogin without-password"加一个"#"号,把它注释掉-->再增长一句"PermitRootLogin yes"-->保存,修改为功。
或修改查看其它配置参数
在向你们介绍复杂防火墙规则以前,仍是先上一些简单的料,让你们对IPTables最为基本的命令有一些简单了解。
首先要说明的是IPTables命令必需以root权限运行,这意味着你须要使用root身份登陆或者可以有权限使用su或sudo -i取得root Shell。下面的内容中咱们都使用sudo,这也是Ubuntu系统上的首选方法。
最好的起点就是先经过“-L”参数来查看下当前系统的全部IPTables规则:
sudo iptables -L
咱们能够看到Linux中都有的3个经常使用默认链(INPUT、OUTPUT和FORWARD),同时也能够看到每一个链的缺省策略(每一个链对默认策略都是接受),在此咱们能够看到Ubuntu中并无添加任何默认规则集。
若是你但愿经过命令来查看每一个链的默认规则,可使用“-S”参数:
sudo iptables -S
若是你看到IPTables里面已经有规则了,并但愿取消这些规则后从新更配置话,可使用“-F”参数来清空已有的规则集:
sudo iptables -F
虽然“-F”参数能够清空并刷新链中全部的现有规则集,但并不会对链的默认策略进行更改。所以,若是你是在更改远程VPS防火墙策略的话须要在“-F”清空全部规则时先将INPUT和OUTPUT链的默认策略恢复到ACCEPT,以避免规则清空后SSH链接被阻断。要作到这一点可执行以下命令:
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
在配置好容许SSH链接后(下面介绍),再将INPUT和OUTPUT链的默认规则更改成DROP便可。
如今就要开始为咱们的VPS建立自定义的防火墙规则啦,正如上篇文章中所说,因为INPUT链会处理全部链接到服务器的入站数据包,所以咱们的全部操做都与INPUT链有关。如今先来配置服务器容许SSH链接。
完整命令应该是这样的:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
大多朋友可能会以为看起来怎么这么复杂,那咱们来逐一分拆说明下。
配置好后咱们来看一下:
sudo iptables -L
如今,你应该已经知道IPTables的基本语法了,下面咱们继续添加规则打怪,以期尽快升级为高手。
你们的VPS上通常SSH服务的22端口,Web服务器的80端口及Mysql的3306端口都是须要打开的,否则怎么对外提供服务呢。所以咱们也须要经过以下命令在IPTables中打开这些端口:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
为了保证咱们的VPS可以正常运行,还须要添加一条容许规则。一般,计算机上的服务都会发送网络数据包以保持彼此之间的通讯。而这种通讯会利用到一个名叫loopback的伪网卡将流量引导回本身。所以,咱们还须要为loopback网卡添加一条容许规则。
sudo iptables -I INPUT 1 -i lo -j ACCEPT
前面讲的内容其实都是基于一个前提假设的,但事先咱们须要先把防火墙的2种经常使用模式说明一下。一种是明肯定义容许经过防火墙的规则,不匹配的都丢弃。另一种是明肯定义拒绝经过防火墙的规则,其他的都容许。咱们的前提假设采用的就是第一种方式,这样配置起来相对简单,规则也较少,也更加安全。
前面咱们已经为INPUT连接定义了一些容许规则,但默认INPUT链是容许全部包,因此咱们如今须要将INPUT链的默认规则更改成“Drop”即丢弃。经过以下命令完成更改:
sudo iptables -P INPUT DROP
IPTables的配置是当即生效的,前面已经介绍过,在配置好以后咱们能够直接用“-L”参数进行查看,这里再另外增长一个“–line-numbers”参数,它主要用于显示行数,对于规则较多时的查看很是方便。
sudo iptables -L --line-numbers
虽然IPTables的命令执行后会当即生效,但这个生效过程实际上是临时的,系统在重启以后便会丢失。所以,咱们还须要将这些配置添加到配置文件当中,以保证系统在下次重启后会自动载入咱们的IPTables防火墙规则。
sudo apt-get update
sudo apt-get install iptables-persistent
该命令脚本下载执行后会询问咱们是否对IPTables配置进行保存,若是肯定的话选择“是”便可。保存后下次重启系统也不会形成配置丢失了。