linux centos防止暴力破解,封掉多次失败的IP地址

2017-5-13 寒川 计算机

一次偶然机会看到服务器的日志secure文件(路径:/var/log/secure)非常大,有上百MB了,打开发现有大量的用户尝试使用ssh登录服务器,看来是有人想暴力破解了,幸好服务器密码还足够强健,不然估计被沦陷了。如何事防止服务器暴力破解呢?网站找到了现成的方法,记录下来,或许以后还会用到。

思路是查找/var/log/secure中验证失败且出现的次数较多的ip,对其进行封IP处理。具体方法如下:

vi /usr/local/bin/secure.sh
#输入以下脚本
#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list
for i in `cat  /usr/local/bin/black.list`
do
  IP=`echo $i |awk -F= '{print $1}'`
  NUM=`echo $i|awk -F= '{print $2}'`
  if [ ${#NUM} -gt 1 ]; then
    grep $IP /etc/hosts.deny > /dev/null
    if [ $? -gt 0 ];then
      echo "sshd:$IP:deny" >> /etc/hosts.deny
    fi
  fi
done
然后将secure_ssh.sh加入到cron计划任务中即可。


vi /var/spool/cron/root
#增加以下命令,一分钟执行一次
*/1 * * * *  sh /usr/local/bin/secure.sh


标签: 脚本 计算机 linux CentOS ssh 暴力破解

评论(3) 浏览(5256)

windows如何像linux使用ln一样创建目录链接

2017-5-2 寒川 计算机

之前的博客《linux创建目录链接》一文中提到linux系统如何使用ln创建目录链接,那么windows系统呢?今天突发奇想,windows如何像linux一样创建目录链接?百度了一下,我屮,还真有这样的需求,也有相应的解决方案,记录下来,或许某天就用上了呢?

下载附件,解压到想要的位置(我一般喜欢放到:C:\Windows\System32,这样就能在cmd中随便什么地方调用该程序)。创建文件连接命令如下:


#目标文夹 源文夹
junction "D:\wwwroot\demo2.com\uploads" D:\www\demo1.com\uploads


这样一执行,就会在D:\wwwroot\demo2.com\下创建一个D:\www\demo1.com\uploads目录链接,D:\www\demo1.com\uploads文件夹中文件更新,D:\wwwroot\demo2.com\uploads下的也就更新了,是不是很神奇?这对于建网站来说非常有用哦~~


2017年7月19日增补:

对于不部分系统junction工具无法使用的,其实windows还有个微软开发的工具可以使用,那就是linkd工具,其下载地址:
http://download.microsoft.com/download/8/e/c/8ec3a7d8-05b4-440a-a71e-ca3ee25fe057/rktools.exe

使用方式如下:


linkd 目标文件夹 源文件夹
删除目录链接:



linkd 目标文件夹


附件:

Junction.zip

标签: linux windows ln

评论(0) 浏览(4509)

如何让linux支持rar压缩文件格式压缩和解压

2017-5-2 寒川 计算机

众所周知,linux默认情况下是不支持rar压缩文件压缩和解压的,那要怎么才能上linux支持rar压缩文件格式压缩和解压呢?有相应的软件。

先到http://www.rarlab.com/download.htm下载对应版本的软件到linux,我本地虚拟机测试时用的以下命令:


#下载软件
wget http://www.rarlab.com/rar/rarlinux-x64-5.5.b1.tar.gz
#解压软件
tar -xvf rarlinux-x64-5.5.b1.tar.gz cd rar
#进入软件目录
cd rar
#编译安装较件
make
#完成安装
软件使用命令如下:



#将test.rar压缩文件解压到当前目录,aa文件中原包含的目录全没有。
rar e test.rar
#将demo.rar压缩文件解压到aa目录下,并保持原来压缩之前aa文件的目录组织结构。
rar x demo.rar 

Good luck!

标签: 计算机 linux 压缩 解压 rar

评论(0) 浏览(4086)

如何创建一个自签名的SSL证书【转】

2017-5-1 寒川 计算机

引言
使用HTTP(超文本传输)协议访问互联网上的数据是没有经过加密的。也就是说,任何人都可以通过适当的工具拦截或者监听到在网络上传输的数据流。但是有时候,我们需要在网络上传输一些安全性或者私秘性的数据,譬如:包含信用卡及商品信息的电子订单。这个时候,如果仍然使用HTTP协议,势必会面临非常大的风险!相信没有人能接受自己的信用卡号在互联网上裸奔。
HTTPS(超文本传输安全)协议无疑可以有效的解决这一问题。所谓HTTPS,其实就是HTTP和SSL/TLS的组合,用以提供加密通讯及对网络服务器的身份鉴定。HTTPS的主要思想是在不安全的网络上创建一安全信道,防止黑客的窃听和攻击。
SSL(安全套接层)可以用来对Web服务器和客户端之间的数据流进行加密。
SSL利用非对称密码技术进行数据加密。加密过程中使用到两个秘钥:一个公钥和一个与之对应的私钥。使用公钥加密的数据,只能用与之对应的私钥解密;而使用私钥加密的数据,也只能用与之对应的公钥解密。因此,如果在网络上传输的消息或数据流是被服务器的私钥加密的,则只能使用与其对应的公钥解密,从而可以保证客户端与与服务器之间的数据安全。
数字证书(Certificate)
在HTTPS的传输过程中,有一个非常关键的角色——数字证书,那什么是数字证书?又有什么作用呢?
所谓数字证书,是一种用于电脑的身份识别机制。由数字证书颁发机构(CA)对使用私钥创建的签名请求文件做的签名(盖章),表示CA结构对证书持有者的认可。数字证书拥有以下几个优点:
使用数字证书能够提高用户的可信度
数字证书中的公钥,能够与服务端的私钥配对使用,实现数据传输过程中的加密和解密
在证认使用者身份期间,使用者的敏感个人数据并不会被传输至证书持有者的网络系统上
X.509证书包含三个文件:key,csr,crt。
key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息
备注:在密码学中,X.509是一个标准,规范了公开秘钥认证、证书吊销列表、授权凭证、凭证路径验证算法等。
创建自签名证书的步骤
注意:以下步骤仅用于配置内部使用或测试需要的SSL证书。
第1步:生成私钥
使用openssl工具生成一个RSA私钥
openssl genrsa -des3 -out server.key 2048
说明:生成rsa私钥,des3算法,2048位强度,server.key是秘钥文件名。
注意:生成私钥,需要提供一个至少4位的密码。
第2步:生成CSR(证书签名请求)
生成私钥之后,便可以创建csr文件了。
此时可以有两种选择。理想情况下,可以将证书发送给证书颁发机构(CA),CA验证过请求者的身份之后,会出具签名证书(很贵)。另外,如果只是内部或者测试需求,也可以使用OpenSSL实现自签名,具体操作如下:
openssl req -new -key server.key -out server.csr

说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。
 
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:joyios
Organizational Unit Name (eg, section) []:info technology
Common Name (e.g. server FQDN or YOUR name) []:demo.joyios.com
Email Address []:liufan@joyios.com
 
第3步:删除私钥中的密码
在第1步创建私钥的过程中,由于必须要指定一个密码。而这个密码会带来一个副作用,那就是在每次Apache启动Web服务器时,都会要求输入密码,这显然非常不方便。要删除私钥中的密码,操作如下:
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
 
第4步:生成自签名证书
如果你不想花钱让CA签名,或者只是测试SSL的具体实现。那么,现在便可以着手生成一个自签名的证书了。
需要注意的是,在使用自签名的临时证书时,浏览器会提示证书的颁发机构是未知的。
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
说明:crt上有证书持有人的信息,持有人的公钥,以及签署者的签名等信息。当用户安装了证书之后,便意味着信任了这份证书,同时拥有了其中的公钥。证书上会说明用途,例如服务器认证,客户端认证,或者签署其他证书。当系统收到一份新的证书的时候,证书会说明,是由谁签署的。如果这个签署者确实可以签署其他证书,并且收到证书上的签名和签署者的公钥可以对上的时候,系统就自动信任新的证书。
第5步:安装私钥和证书
将私钥和证书文件复制到Apache的配置目录下即可,在Mac 10.10系统中,复制到服务器对应目录中即可。

标签: 计算机 linux web apache ssl https

评论(0) 浏览(3574)

使用centos搭建Shadowsocks服务器

2017-4-3 寒川 计算机

    客户有一台香港的CentOS 5 32bit服务器,准备拿来“你懂的”使用。之前一直用pptpd,感觉相当不稳定,于是准备搭建Shadowsocks服务器。废话不多说,直接上教程,希望对您有所帮助。
    由于系统版本比较老,python版本为2.4.2,需要先对py时行升级。这之前还升级还闹出了一小段风波。下面将python升级一起也写进来。

    1、python 版本升级

下载新版py:

wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz

解压:

tar -xvf Python-2.7.12.tgz

安装python

cd Python-2.7.12
./configure --prefix=/usr/local/python2.7
make all
make install

建立软连接

mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python2.7 /usr/bin/python

注:有些版本的Centos应为(得根据自身系统而定,建议擦看一下python2.7.12的安装位置):

ln -s /usr/local/python2.7/bin/python2.7 /usr/bin/python 

保留旧版的py,解决系统 Python 软链接指向 Python2.7 版本后,因为yum是不兼容 Python 2.7的问题

vi /usr/bin/yum
# 修改 python 指向,第一行的“#!/usr/bin/python”改为:
#!/usr/bin/python2.4.2

至此,完成python的升级安装,同时保留原有的python2.4.2,别问我为什么要保留,而不能卸载旧的py。

2、安装shadowsocks

yum install python-setuptools && easy_install pip
pip install shadowsocks

不过貌似源中没easy_install pip,于是,单独安装之,如下:

# install setup tools
curl https://bitbucket.org/pypa/setuptools/downloads/ez_setup.py | python -
# install pip
curl https://bootstrap.pypa.io/get-pip.py | python -
安装后再装执行一下
pip install shadowsocks

OK,完成shadowsocks安装。

3、配置

vim /etc/shadowsocks.json
{
"server":"your_server_ip",
"server_port":8388,
"password":"yourpassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open":false,
"workers": 1
}
server:服务器 IP地址 (IPv4/IPv6)

server_port:服务器监听的端口,一般设为80,443等,注意不要设为使用中的端口

password:设置密码,自定义

timeout:超时时间(秒)

method:加密方法,可选择 “aes-256-cfb”, “rc4-md5”等等。推荐使用 “rc4-md5”

fast_open:true 或 false。如果你的服务器 Linux 内核在3.7+,可以开启 fast_open 以降低延迟。

workers:workers数量,默认为 1。

备注:如要你需要分享SS服务给朋友或家人,可以配置多个SS账户,具体可以参考下面的代码。

{
"server":"your_server_ip",
"port_password":{
     "8381":"pass1",
     "8382":"pass2",
     "8383":"pass3",
     "8384":"pass4"
     },
"timeout":60,
"method":"rc4-md5",
"fast_open":false,
"workers":1
}

启动

ssserver -c /etc/shadowsocks.json -d start

关闭

ssserver -d stop

新增启动项:
vi /etc/rc.d/rc.local
#文件尾加入
ssserver -c /etc/shadowsocks.json -d start

日志文件

/var/log/shadowsocks.log

帮助

ssserver -h 

标签: 计算机 linux CentOS shadowsocks python

评论(0) 浏览(4677)

centos 搭建git php自动部署。

2016-10-15 寒川 计算机

最近没什么事儿,研究了一下git自动部署,采用webhook用php执行同步git的方式进行自动部署。最开始整了好几小时,用的https连接git仓库,最终解决了,写下来作个简单的总结。

    在centos上搭建git,因centos上用yum install 命令默认装的是1.7.x的git,与最新的相差较大,同时带用户密码的https远程库无法访问,出现类似以下错误:

error: The requested URL returned error: 401 Unauthorized while accessing
因此需要安装最新版的git,安装如下:

1. 需要给 CentOS 下载安装编译工具。

yum groupinstall "Development Tools"
2.安装一些 git 构建或执行时需要的其他依赖。
yum install zlib-devel perl-ExtUtils-MakeMaker asciidoc xmlto openssl-devel
3. 下载 git 最新版本的源代码
$ wget -O git.zip https://github.com/git/git/archive/master.zip

4.解压源文件

unzip git.zip
5、编译安装
cd git-master
autoconf
./configure
make && make install
ln -s /usr/local/bin/git /usr/bin/ #如果在/usr/bin/下存在git,先删除后再执行此句
6、查看git版本,恭喜安装完成
git --version
6、其它:在git安装过程中出现如下错误:
No rule to make target `usr/lib64/per15/CORE/config.h`, needed by `perl.mak`. Stop
请执行
yum install -y perl-devel.x86_64
安装后重新执行第5步进行git的安装。

自动部署:

先cd进web服务器的web目录,再执行(注意用的www用户,www为php运行时的用户):

sudo -u www git init #初始化库
sudo -u www git remote add origin https://user:pass@git.oschina.net/xx/xx.git #添加一个仓库,注意,用户密码中有@时用%40代替。
加一个webhook,文件名为:git.php,内容如下:
<?php
$dir = __DIR__;
$handle = popen('cd '.$dir.' && git fetch --all && git pull origin master','r');
$read = stream_get_contents($handle);
print_r($read);
pclose($handle);
然后在git库中加些git.php为webhook即可。

标签: php linux CentOS git

评论(4) 浏览(5259)

wget递归下载ftp内容,用户或密码中含有@。

2016-6-24 寒川

@符号原本分隔用户信息和主机信息,当用户或密码中含有@时就不能直接wget,得以参数形式。

比如:

wget -r -c ftp://user:pass@host

改为:

wget -r -c ftp://host --ftp-user=user --ftp-password=pass


标签: linux ftp wget

评论(6) 浏览(6510)

Powered by emlog 蜀ICP备12030225号

川公网安备 51042102000001号

sitemap