首页 › Category Archives › Linux shell

ssh访问控制,多次失败登录即封掉IP,防止暴力破解

一、系统:Centos6.3 64位

二、方法:读取/var/log/secure,查找关键字 Failed,例如(注:文中的IP地址特意做了删减):

Sep 17 09:08:09 localhost sshd[29087]: Failed password for root from 13.7.3.6 port 44367 ssh2
Sep 17 09:08:20 localhost sshd[29087]: Failed password for root from 13.7.3.6 port 44367 ssh2
Sep 17 09:10:02 localhost sshd[29223]: Failed password for root from 13.7.3.6 port 56482 ssh2
Sep 17 09:10:14 localhost sshd[29223]: Failed password for root from 13.7.3.6 port 56482 ssh2

从这些行中提取IP地址,如果次数达到10次(脚本中判断次数字符长度是否大于1)则将该IP写到 /etc/hosts.deny中。
继续阅读 »

GPG入门笔记

0. 简介
GPGGNU Privacy Guard的简写,是GNUPGP技术的实现。PGPPretty Good Privacy的简写,是一套用于加密的软件。
PGP加密过程如下(来自维基百科 PGP):

PGP同时利用了对称加密和非对称加密,对文件内容的加密用的是对称加密,对称加密的密钥是每次加密时生成的。由于对称密钥要随密文一起传输,采用了非对称加密算法给对称密钥进行了加密。
继续阅读 »

PXE分发安装CentOS 6.5

一.kickstart流程图

二.安装前准备
1.关闭iptables

2.关闭Selinux

继续阅读 »

通过ssh用rsync无密码传输文件

在linux平台上常用rsync协议来同步文件和目录,’rsync’也是各种linux发行版标配的命令。当我们基于linux平台开发应用程序时,常常需要从Java或者Python代码中调用rsync命令来实现文件的传输。

例如,假设我们要按照如下需求来传输文件:

  • 有两台机器:localhost和remotehost
  • Java程序deploy在localhost上,通过rsync将本机文件传送到remotehost,或者从remotehost pull文件到localhost
  • rsync通过ssh连接remotehost
  • 在remotehost有个叫test的帐户,专门用来rsync传输文件,只能用密钥文件登陆
  • 最重要的是,在rsync连接过程中不需要输入test的帐户密码,否则密码输入界面会block住Java程序的运行

要实现rsync的无密码传输,基本思路是用一对公私钥来代替帐户密码,实现ssh连接时的认证。
继续阅读 »

记录一次AWS EC2硬盘扩容的经历

在申请aws ec2时,按照向导,在选择存储的时候默认硬盘大小是 8 G,这时候可以根据自己的需要输入一个合适的数字,例如100。完成向导并启动ec2 instance 后登陆机器。使用命令:

发现硬盘的大小不是自己的设定的值,而还是 8 G,使用fdisk、mkfs来分区和格式化后,还是无法增大其空间。反复折腾多次,包括重启机器,问题依旧,后来发现其实很简单,只需要使用一条命令resize2fs就可以搞定。

注意:“/dev/xvde” 根据自己的实际情况可能会不一样。使用fdisk或df命令都可以获知具体的设备号。 如果执行上述命令收到 The filesystem is already 2096896 blocks long. Nothing to do! 的错误,那么需要先做如下操作
继续阅读 »

CentOS7 下 Zabbix3.4 源码安装

zabbix系统基于PHP环境运行,所以前提是系统上有PHP的运行环境,lnmp或者lamp环境

lnmp环境安装:http://www.cnblogs.com/rnckty/p/7642034.html

lamp环境安装:http://www.cnblogs.com/rnckty/p/4094272.html

1、下载源码包

2、安装依赖库

3、解压并编译

继续阅读 »

一键安装最新内核并开启 BBR 脚本

最近,Google 开源了其 TCP BBR 拥塞控制算法,并提交到了 Linux 内核,最新的 4.11 版内核已经用上了该算法。根据以往的传统,Google 总是先在自家的生产环境上线运用后,才会将代码开源,此次也不例外。
根据实地测试,在部署了最新版内核并开启了 TCP BBR 的机器上,网速甚至可以提升好几个数量级。
于是我根据目前三大发行版的最新内核,开发了一键安装最新内核并开启 TCP BBR 脚本。

本脚本适用环境

系统支持:CentOS 6+,Debian 7+,Ubuntu 12+
虚拟技术:OpenVZ 以外的,比如 KVM、Xen、VMware 等
内存要求:≥128M
日期  :2017 年 05 月 15 日

关于本脚本

1、本脚本已在Vultr上的 VPS 全部测试通过。
2、当脚本检测到 VPS 的虚拟方式为 OpenVZ 时,会提示错误,并自动退出安装。
3、脚本运行完重启发现开不了机的,打开 VPS 后台控制面板的 VNC, 开机卡在 grub 引导, 手动选择内核即可。
4、由于是使用最新版系统内核,最好请勿在生产环境安装,以免产生不可预测之后果。
继续阅读 »

centos7和centos6的区别

(1)桌面系统
[centos6] GNOME 2.x
[centos7] GNOME 3.x(GNOME Shell)

(2)文件系统
[centos6] ext4
[centos7] xfs

(3)内核版本
[centos6] 2.6.x-x
[centos7] 3.10.x-x

(4)启动加载器
[centos6] GRUB Legacy (+efibootmgr)
[centos7] GRUB2

(5)防火墙
[centos6] iptables
[centos7] firewalld

(6)默认数据库
[centos6] MySQL
[centos7] MariaDB

继续阅读 »

ar 打包库到另外一个库中

ar语法:

ar 命令:将多个文件打包到一个文件中,也可以从打包的文件中提取文件,且打包的文件保留原来的属性

必要参数

选择参数

继续阅读 »

在Linux下实现COM组件

COM组件是一种编程规范,它规定了软件编程的一般方法,虽然它由Microsoft公司制定和提出,但是它的规则也可以在Linux下使用,下面是在Linux下实现COM组件的方法。
—-参考《COM技术内幕》一书。
COM实现的技术,主要是C++的虚函数、多继承以及动态链接库(DLL)技术。
继续阅读 »