Linux开启/禁止ping

这是Linux服务器安全的一部分,后续会增加更多的文章

1、vi /proc/sys/net/ipv4/icmp_echo_ignore_all

修改值为1禁止ping
修改为0,可以ping

保存退出的时候可能提示fsync failed,我也不知道怎么回事,在某云主机上出现的这个提示,在本机上没有问题

可以使用下面的方法也可以达到禁止ping的目的

2、 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

允许ping,使用echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all就行了

- 阅读全文 -

Linux 下增加用户并赋予root权限

1、添加用户
添加用户

adduser xxxx

修改密码

passwd xxxx

连着输入2次密码

提示all authentication tokens updated successfully.则操作成功。

2、赋予root权限

vim /etc/sudoers
找到
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
在后面添加

xxxx ALL=(ALL) ALL

保存退出后使用sudo xxxx

Linux禁止root远程登陆

Linux修改SSH远程登陆port

只需要修改ssh_config即可

1、首先备份文件

cp /etc/ssh/sshd_config /etc/ssh/sshd_configbak

2、修改端口为2233

vi /etc/ssh/sshd_config

#port 22后面一行增加:

port 2233

3、重启使修改生效

/etc/init.d/sshd restart
service sshd restart

HttpClient使用代理

HttpClient本身是一个HTTP通信协议的实现,所以也是支持使用代理访问目标地址的。

maven:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpcore</artifactId>
    <version>4.4.4</version>
</dependency>
   HttpHost proxy = new HttpHost(proxyIp,proxPport);
   DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
   CloseableHttpClient httpClient = HttpClients.custom().setRoutePlanner(routePlanner).build();

- 阅读全文 -

HttpClient 模拟浏览器获取数据

HTTP协议:https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

HttpCore: http://hc.apache.org/

maven

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.2</version>
    </dependency> 

代码如下,解释在代码中

package com.oak.spider;

import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class HC {
    public static void main(String args[]) throws  Exception{
        //创建一个浏览器
        CloseableHttpClient httpClient = HttpClients.createDefault();
        //构建请求
        HttpPost post = new HttpPost("http://zhangguoli.cn");
        post.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0");
        //执行请求,获取返回数据
        CloseableHttpResponse response = httpClient.execute(post);
        //处理返回数据
        Header[] headers = response.getAllHeaders();//头部信息
        HttpEntity httpEntity = response.getEntity();//实体
        /*
        *    处理业务逻辑
        */
        //释放实体,关闭响应,关闭浏览器
        EntityUtils.consume(httpEntity);
        response.close();
        httpClient.close();
    }
}

服务器安全

操作环境:CentOS release 6.5 (Final)

1、禁ping

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

2、创建新用户

增加用户xxx

    useradd xxx

为xxx设置密码

passwd xxx

输入2次密码,提示passwd: all authentication tokens updated successfully.则用户创建成功.

赋予xxx用户root权限

vi  /etc/sudoers

找到如下内容

## Allows people in group wheel to run all commands
#%wheel    ALL=(ALL)    ALL

去掉%之前的#后如下

## Allows people in group wheel to run all commands
%wheel    ALL=(ALL)    ALL

退出vi: :wq!

修改xxx用户,使其属于root组

usermod -g root xxx

现在可以使用xxx登录了,使用su -即可获取root权限。

3、关闭root登录

vi /etc/ssh/sshd_config

修改PermitRootLogin yesPermitRootLogin no
重启sshd service sshd restart

4、修改默认SSH连接端口

vi /etc/ssh/ssh_config
vi /etc/ssh/sshd_config

取消Port前面的#注释,并修改为其他值 ,如222
重启sshd service sshd restart

5、只开放特定需要的端口

MongoDB CRUD 入门示例

环境准备

jremongo-java-driver-2.13.3.jar

层级关系

数据库 集合 文档

maven:

    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.2.2</version>
    </dependency>

Gradle:

compile group: 'org.mongodb', name: 'mongo-java-driver', version: '3.2.2'

- 阅读全文 -

正则表达式入门

一、基本字符

  1. ^ 字符 开始
  2. $ 字符 结束
  3. * 字符 0~n
  4. + 字符 1~n
  5. ? 字符 0或1
  6. {} 限定字符共6种形式

ab{}、a{+}、a{?}、a{2}、a{1,}、a{2,6}
a{
} a、ab、abb
a{+} a 、ab、abb
a{?} a、ab、 abb
a{2} aab、abb
a{1,} a、ab、abb
a{2,6} aab、abb、abbb

  1. | 两项之间可选
  2. []集合

二、转义字符

  1. \b 单词 er\b never、verb
  2. \B 非单词
  3. \d 一个数字
  4. \D 非数字
  5. \n 换行符
  6. \r 回车符
  7. \s 空白符,含空格、制表符、换行符
  8. \w 包括下划线的任何单词字符

三、贪婪模式与非贪婪模式(惰性)

  1. ? + * {min, max}在默认情况下是贪婪模式的,会尽可能的去匹配更多的字符,比如ab*在匹配abbbbbb时会尽可能的匹配更多abbbbb
  2. ?紧跟在其他限定符之后,则为非贪婪模式,ab*?则会匹配ab,而不是abbbbb

四、常用正则表达式

  1. [\u4e00-\u9fa5] 中文字符
  2. \n\s*\r 空白行
  3. [\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?Email地址
  4. [a-zA-z]+://[^\s]*网址
  5. [1-9]\d{5}(?!\d)中国邮政编码
  6. ^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$ 18位身份证号
  7. ^[1-9]\d*$正整数
  8. ^\d{m,n}$m-n位的数字
  9. ^.{m,n}$m-n位的所有字符

- 阅读全文 -

图解git常用命令

常用的命令:add、commit、push、fetch/clone、pull

git

workspace:本地工作目录/项目
index/stage:暂缓区,文件从这里开始受版本控制
local repository:本地仓库
remote repository:远程仓库,常见GitHubOSChinaCoding

maven常用地址整理

修改位置 
    maven安装目录/conf/settings.xml
                        <mirrors>
                            <mirror>

1、http://maven.aliyun.com/nexus/content/groups/public

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror> 

- 阅读全文 -