ubuntu安装配置ssh-connect to host localhost port 22: Connection refused

在安装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.关闭或修改防火墙配置:命令行

参看IPTables基本命令

4.配置文件:orm

使用gedit修改配置文件"/etc/ssh/sshd_config"

打开"终端窗口",输入"sudo gedit /etc/ssh/sshd_config"-->回车-->把配置文件中的"PermitRootLogin without-password"加一个"#"号,把它注释掉-->再增长一句"PermitRootLogin yes"-->保存,修改为功。

或修改查看其它配置参数



IPTables基本命令

在向你们介绍复杂防火墙规则以前,仍是先上一些简单的料,让你们对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便可。

建立自已的IPTables规则

如今就要开始为咱们的VPS建立自定义的防火墙规则啦,正如上篇文章中所说,因为INPUT链会处理全部链接到服务器的入站数据包,所以咱们的全部操做都与INPUT链有关。如今先来配置服务器容许SSH链接。

完整命令应该是这样的:

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

大多朋友可能会以为看起来怎么这么复杂,那咱们来逐一分拆说明下。

  • -A INPUT :代表咱们要将此规则追加到某个链的最后,因为咱们要操做INPUT连接,因此这么写。
  • -m conntrack :iptables除了本身的核心功能外还只有一些实用的扩展和模块,这个参数代表添加conntrack模块提供的能力。(conntrack模块能够根据先前的链接来肯定数据包之间的关系)
  • –ctstate :该参数是conntrack模块提供的,它能够肯定如何用如今的数据包去匹配先前得到的数据包。ESTABLISHED值将自动容许现有链接的数据包,RELATED值将容许已创建链接的相关数据包。(这样就与SSH会话特性相匹配上了)
  • -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
  • -I INPUT 1 :与“-A”不一样,它能够指定要将规则添加到该链的位置。

实施Drop规则

前面讲的内容其实都是基于一个前提假设的,但事先咱们须要先把防火墙的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配置进行保存,若是肯定的话选择“是”便可。保存后下次重启系统也不会形成配置丢失了。

相关文章
相关标签/搜索