Linux服务器远程自动异地备份

异地备份可以防止本地服务器硬盘故障以及攻击之类等,防止数据丢失。

在自动备份中,我们用到一个命令scp 用来远程复制文件,类似于ftp的作用。因为我们需要实现的是自动备份,scp是需要输入密码认证的,有一个交互过程,那么我们现在就必须通过密钥来认证,在备份过程需就无需输入密码了。

由于密钥认证是用本地的私钥去解锁目标服务器的公钥实现登陆。所以在本地机器上生成公钥和私钥。

[root@rhel6www ~]# ssh-keygen -t rsa          //生成密钥 -t rsa 加密类型
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):                   //直接回车
Enter passphrase (empty for no passphrase):                //直接回车 (为密钥密码验证)
Enter same passphrase again:                 //直接回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
8f:1f:3c:4b:4c:7c:1c:7d:53:02:87:c3:b8:e7:b4:da root@rhel6www
The key’s randomart image is:
+–[ RSA 2048]—-+
|           o.oo .|
|          . +o ..|
|           ……|
|         …o. ..|
|        S o+o.   |
|         * .o    |
|        . Bo     |
|         o.+E    |
|          o      |
+—————–+
[root@rhel6www ~]#

在/root/.ssh/下会生成id_rsa(私钥)和id_rsa.pub(公钥)。

将id_rsa.pub复制到远程计算机并更名为:/root/.ssh/authorized_keys

可以通过 ssh-copy-id -i id_rsa.pub root@172.17.1.121 复制到目标服务器,会自动创建authorized_keys文件并修改400权限。通过ssh-copy-id好处就是,当有多个客户端通过密钥方式连接同一个目标服务器的时候,此命令会将客户端生成的公钥追加到authorized_keys中,免去手动修改的麻烦。这里通过手动方式上传到目标服务器。

[root@rhel6www .ssh]# scp id_rsa.pub root@172.17.1.121:/root/.ssh/authorized_keys
root@172.17.1.121’s password:                //我们可以看到默认是需要密码认证的
id_rsa.pub                                   100%  395     0.4KB/s   00:00

[root@rhel5 ~]# chmod 400 authorized_keys             //在远程服务器中更改为400权限,否则还会提示需要密码的

[root@rhel6www .ssh]# touch b               //测试经过密钥认证后是否还需要密码
[root@rhel6www .ssh]# scp b root@172.17.1.121:/root/.ssh/c   //如果ssh运行在非22端口上,请在scp后加-P 指定端口号
b                                            100%    0     0.0KB/s   00:00
[root@rhel6www .ssh]#                //没有提示需要密码,说明密钥认证配置成功。

现在就开始写脚本,订制备份时间、文件等。自由发挥,比如说我之前有个自动备份数据库的脚本:


#!/bin/bash
 backdir="/mnt/sdb1/backup"
 dirname="$(date +%Y-%m-%d-%H-%M)"
 DIR="www db"
 for dir in $DIR
 do
 mkdir -p $backdir/$dirname/$dir
 done

# web backup
 www="www.tar.gz"
 tar zcfP $backdir/$dirname/www/$www /var/www

# database backup
 clubdb="club.tar.gz"
 cd /var/lib/mysql
 mysqldump --opt -u root -p --password=YOURDATABASEPASSWORD club > $backdir/$dirname/db/club.sql
 tar zcfP $backdir/$dirname/db/$clubdb $backdir/$dirname/db/club.sql
 $backdir/$dirname/db/$clubdb root@172.17.1.121:/root/test_backup
 rm -rf $backdir/$dirname/db/club.sql

添加任务计划:
#crontab -e
#24 15 * * * /back.sh

查看mysql版本

1:终端:mysql -V

[root@localhost~]# mysql -V
mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)

    2:在mysql中:mysql> status;

mysql> status;
————–
mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)

Connection id:          416
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ”
Using delimiter:        ;
Server version:         3.23.56-log
Protocol version:       10
Connection:             Localhost via UNIX socket
Client characterset:    latin1
Server characterset:    latin1
UNIX socket:            /tmp/mysql_3311.sock
Uptime:                 62 days 21 hours 21 min 57 sec

Threads: 1 Questions: 584402560 Slow queries: 424 Opens: 59664208 Flush tables: 1 Open tables: 64 Queries per second avg: 107.551

    3:在help里面查找

[root@localhost~]# mysql –help | grep Distrib
mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)

    4:使用mysql的函数

mysql> select version();
+————-+
| version()   |
+————-+
| 3.23.56-log |
+————-+
1 row in set (0.00 sec)

Linux网络系统可能会遭受到的攻击类型

本文简单说一下Linux系统会受到的常见攻击类型:

“拒绝服务”攻击

所谓“拒绝服务”攻击是指黑客采取具有破坏性的方法阻塞目标网络的资源,使网络暂时或永久瘫痪,从而使Linux网络服务器无法为正常的用户提供服务。例如黑客可以利用伪造的源地址或受控的其他地方的多台计算机同时向目标计算机发出大量、连续的TCP/IP请求,从而使目标服务器系统瘫痪。

“口令破解”攻击

口令安全是保卫自己系统安全的第一道防线。“口令破解”攻击的目的是为了破解用户的口令,从而可以取得已经加密的信息资源。例如黑客可以利用一台高速计算机,配合一个字典库,尝试各种口令组合,直到最终找到能够进入系统的口令,打开网络资源。

“欺骗用户”攻击

“欺骗用户”攻击是指网络黑客伪装成网络公司或计算机服务商的工程技术人员,向用户发出呼叫,并在适当的时候要求用户输入口令,这是用户最难对付的一种攻击方式,一旦用户口令失密,黑客就可以利用该用户的帐号进入系统。

“扫描程序和网络监听”攻击

许多网络入侵是从扫描开始的,利用扫描工具黑客能找出目标主机上各种各样的漏洞,并利用之对系统实施攻击。

网络监听也是黑客们常用的一种方法,当成功地登录到一台网络上的主机,并取得了这台主机的超级用户控制权之后,黑客可以利用网络监听收集敏感数据或者认证信息,以便日后夺取网络中其他主机的控制权。

Linux网络安全防范策略

纵观网络的发展历史,可以看出,对网络的攻击可能来自非法用户,也可能来自合法的用户。因此作为Linux网络系统的管理员,既要时刻警惕来自外部的黑客攻击,又要加强对内部网络用户的管理和教育,具体可以采用以下的安全策略。

仔细设置每个内部用户的权限

为了保护Linux网络系统的资源,在给内部网络用户开设帐号时,要仔细设置每个内部用户的权限,一般应遵循“最小权限”原则,也就是仅给每个用户授予完成他们特定任务所必须的服务器访问权限。这样做会大大加重系统管理员的管理工作量,但为了整个网络系统的安全还是应该坚持这个原则。

确保用户口令文件/etc/shadow的安全

对于网络系统而言,口令是比较容易出问题的地方,作为系统管理员应告诉用户在设置口令时要使用安全口令(在口令序列中使用非字母,非数字等特殊字符)并适当增加口令的长度(大于6个字符)。系统管理员要保护好/etc/passwd和/etc/shadow这两个文件的安全,不让无关的人员获得这两个文件,这样黑客利用John等程序对/etc/passwd和/etc/shadow文件进行了字典攻击获取用户口令的企图就无法进行。系统管理员要定期用John等程序对本系统的/etc/passwd和/etc/shadow文件进行模拟字典攻击,一旦发现有不安全的用户口令,要强制用户立即修改。

加强对系统运行的监控和记录

Linux网络系统管理员,应对整个网络系统的运行状况进行监控和记录,这样通过分析记录数据,可以发现可疑的网络活动,并采取措施预先阻止今后可能发生的入侵行为。如果进攻行为已经实施,则可以利用记录数据跟踪和识别侵入系统的黑客。

合理划分子网和设置防火墙

如果内部网络要进入Internet,必须在内部网络与外部网络的接口处设置防火墙,以确保内部网络中的数据安全。对于内部网络本身,为了便于管理,合理分配IP地址资源,应该将内部网络划分为多个子网,这样做也可以阻止或延缓黑客对整个内部网络的入侵。

定期对Linux网络进行安全检查

Linux网络系统的运转是动态变化的,因此对它的安全管理也是变化的,没有固定的模式,作为Linux网络系统的管理员,在为系统设置了安全防范策略后,应定期对系统进行安全检查,并尝试对自己管理的服务器进行攻击,如果发现安全机制中的漏洞应立即采取措施补救,不给黑客以可乘之机。

制定适当的数据备份计划确保系统万无一失

没有一种操作系统的运转是百分之百可靠的,也没有一种安全策略是万无一失的,因此作为Linux系统管理员,必须为系统制定适当的数据备份计划,充分利用磁带机、光盘刻录机、双机热备份等技术手段为系统保存数据备份,使系统一旦遭到破坏或黑客攻击而发生瘫痪时,能迅速恢复工作,把损失减少到最小。