RedHat 7.0及CentOS 7.0禁止Ping的三种方法(附:ICMP数值类型与功能表)

作者:荒原之梦
前言:
“Ping”属于ICMP协议(即“Internet控制报文协议”),而ICMP协议是TCP/IP协议的一个子协议,工作在网际层。ICMP协议主要用于传输网络是否连通、主机是否可达以及路由是否可用等控制信息。Ping可以回显TTL生存时间,网络延迟等信息,而且响应Ping请求也会消耗服务器资源。因此,在服务器上禁用ICMP响应可以尽可能的隐藏服务器在Internet上的踪迹,降低受攻击面。本文介绍三种方法禁用(或启用)ICMP响应,即禁止(或允许)Ping.

操作环境:

RedHat 7.0(CentOS 7.0的操作方法与此一致)

方法一 临时禁用ICMP协议

修改文件 /proc/sys/net/ipv4/icmp_echo_ignore_all 的值。
切换到root,输入命令:
这样就将 /proc/sys/net/ipv4/icmp_echo_ignore_all 文件里面的 0 临时改为了 1 ,从而实现禁止ICMP报文的所有请求,达到禁止Ping的效果,网络中的其他主机Ping该主机时会显示“请求超时”,但该服务器此时是可以Ping其他主机的。
如果想启用ICMP响应,则输入:

 

注0:由于 /proc/sys/net/ipv4/icmp_echo_ignore_all 这个文件是只读的,即使我们使用root用户登陆,vim打开 /proc/sys/net/ipv4/icmp_echo_ignore_all ,将里面的 0 该为 1 之后使用 qw! 强制保存也无法完成修改。因此上面这个方法只是临时的,一旦服务器重启就又会回到默认的 0 状态(假设修改前 /proc/sys/net/ipv4/icmp_echo_ignore_all 里面的值就是 0 )。如果想永久修改(当然也可以改回来,只是不再受服务器关机或重启的影响)请使用方法二或方法三。

方法二 永久禁用ICMP协议:

禁用ICMP协议,输入:

 

添加一条信息:
保存并退出。
输入:
使配置生效。
启用ICMP协议,输入:

 

将:

 

修改为:

 

如果没有 net.ipv4.icmp_echo_ignore_all = 1 就添加:
保存并退出。
输入:
使配置生效。
注1:如果想启用ICMP响应,不能直接在 /etc/sysctl.conf 里删除 net.ipv4.icmp_echo_ignore_all = 1 之后 sysctl -p . 这样做仍然是禁止Ping的状态,此时使用命令: vim /proc/sys/net/ipv4/icmp_echo_ignore_all 查看发现其值仍然是 1 , 即仍处于拒绝ICMP响应的状态。

方法三 配置IPTABLES防火墙

Iptables防火墙是集成于Linux内核的IP信息包过滤系统。方法三不能和上面的方法一和方法二组合使用。即,在使用方法三时不能已经使用方法一或方法二禁止了Ping.
禁止Ping,输入:

 

停止禁用Ping,输入:

 

上面两条命令的简要解释:


 

注2:由于方法三是对防火墙进行的设置,所以使用方法三禁止Ping后只会阻止来自外网的Ping请求,内网主机的Ping请求仍然会正常响应。使用方法一和方法二禁止Ping后不仅会阻止外网的Ping请求也会阻止内网的Ping请求。
注3:ICMP数值类型与功能表
Type
Code
Description
Query
Error
0
0
Echo Reply
x
3
0
Network Unreachable
x
3
1
Host Unreachable
x
3
2
Protocol Unreachable
x
3
3
Port Unreachable
x
3
4
Fragmentation needed but no frag. bit set
x
3
5
Source routing failed
x
3
6
Destination network unknown
x
3
7
Destination host unknown
x
3
8
Source host isolated (obsolete)
x
3
9
Destination network administratively prohibited
x
3
10
Destination host administratively prohibited
x
3
11
Network unreachable for TOS
x
3
12
Host unreachable for TOS
x
3
13
Communication administratively prohibited by filtering
x
3
14
Host precedence violation
x
3
15
Precedence cutoff in effect
x
4
0
Source quench
5
0
Redirect for network
5
1
Redirect for host
5
2
Redirect for TOS and network
5
3
Redirect for TOS and host
8
0
Echo request
x
9
0
Router advertisement
10
0
Route solicitation
11
0
TTL equals 0 during transit
x
11
1
TTL equals 0 during reassembly
x
12
0
IP header bad (catchall error)
x
12
1
Required options missing
x
13
0
Timestamp request (obsolete)
x
14
Timestamp reply (obsolete)
x
15
0
Information request (obsolete)
x
16
0
Information reply (obsolete)
x
17
0
Address mask request
x
18
0
Address mask reply

修改WordPress后台默认登陆地址提高网站安全性

作者:荒原之梦
安装完WordPress后,默认的登陆地址就是:
(其中”XXX.XXX”表示你的网站域名)
由于这个时候网站后台登陆地址相当于是公开的,所以就很容易受到攻击,例如暴力破解。
下面我们通过在WordPress的默认登陆地址后面添加一段标记代码的方法防止发生这种情况。

具体步骤如下:

1 打开当前使用的WordPress主题中的functions.php文件

在末尾加上代码:

2 保存并退出

1 其中 master(标记信息) 、 hello(标记信息) 和 XXX.XXX(网址) 都可以自定义。
2 URL是区分大小写字母的,所以设置标记信息时大小写字母和数字都可以使用(参见:HTML and URLs )。
3 由于URL编码中特殊字符一般都有专用含义,所以如果标记信息中使用了特殊字符需要确认一下是否能正常登陆。
这样WordPress后台的登陆地址就变成了:
由于网站安装目录不同,如果上述地址无法登陆,可以尝试使用下面的地址登陆
这样一来,如果登陆地址错误就会跳转到 XXX.XXX .
如果 XXX.XXX 是你的网站的首页,那么就会跳转到首页。

解决WordPress用户名密码都正确但点击登陆就清空密码的问题

作者:荒原之梦

问题产生的环境与问题描述:

今天我在浏览器的书签里将我保存的用于登陆WordPress的书签名字改了一下,之后再登陆WordPress就出现提示说Cookies被阻止,要启用Cookies,但是启用了Cookies后再输入账号和密码进行登陆却发现一点击“登陆”按钮,密码就会被清空而且无法登陆。

解决办法:

将登陆地址由:

 

改为:

 

之后换了一个浏览器重新在:
登陆,发现可以正常登陆。
至此,问题解决,尚未发现异常。

Windows上使用Git托管代码到Coding

作者:荒原之梦

Git简介:

Git是一款分布式版本控制系统,可用于项目的版本管理。Git可以管理本地代码仓库与远程代码仓库间的连接以及进行版本控制,使得我们可以在本地离线进行修改等操作,之后再将代码提交到远程代码仓库,方便团队协作。

Git官网:

https://git-scm.com/

Git百度百科:

https://baike.baidu.com/item/GIT/12647237?fr=aladdin

Git Github主页:

https://github.com/git

在使用Git与远程仓库进行代码交互的时候会遇到一些操作动作,如“克隆”、“推送”和“拉取”等,这些动作的英文名称以及对应的含义如下:

名称
功能
Clone(克隆) 将远程仓库里面的代码复制一份到本地
Push(推送) 将代码推送到远程仓库中
Fetch(获取) 获取远程仓库中发生变化的代码
Merge(合并) 将远程仓库中发生变化的代码与本地存储的没有发生变化的代码合并以使本地仓库和远程仓库代码保持一致
Pull(拉取) 功能等同于“fetch+merge”
Commit(提交) 将修改推送到本地仓库中
Fork 将代码从别人的远程仓库复制到自己的远程仓库
Pull request 将自己远程仓库中的代码复制一份到别人的远程仓库(该操作将会询问对方是否接受)

如果要将修改Push到别人的远程仓库,必须首先Fork别人的代码到自己的远程仓库,修改完再Push. 而不能直接Clone别人的代码到本地,这样再想Push到别人的远程仓库是不行的。另外,经实践发现,直接Clone自己的远程仓库到本地再Push到自己的远程仓库也是不行的。

具体步骤如下:

1 下载并安装Git

如无自定义需要,使用默认配置安装即可。

 

2 在Coding上添加一个项目

在我的这篇文章 使用Coding Pages托管网站中有在Coding上添加一个项目的介绍,可以参考。

 

3 配置SSH

生成SSH公钥,输入:

 

 

XXX@XXX.XXX 为注册Coding时使用的邮箱。

之后会提示输入用于保存公钥的文件:

 

这里直接回车,使用默认的文件 id_rsa 保存即可。

接下来会提示:

这里是提示我们是否要为提交代码的操作设置密码。 如果设置密码则在提交项目时就需要使用密码。回车表示密码为空,即不设置密码。

之后提示:

再次回车或输入刚才设置的密码。

之后会看到公钥成功创建的提示:

 

查看公钥,输入:

 

将公钥复制下来,登陆Coding,在 我的账户->SSH公钥 处粘贴刚才生成的公钥,之后点击 添加 。

如果粘贴后公钥末尾有空白行或空格要删掉它们。

 

4 创建本地代码仓库并Clone远程代码仓库

在本地新建一个文件夹A。

 “A”为远程仓库的仓库名

进入A,右键点击 Git Bash Here .

初始化仓库,输入:

 

之后会在A里面产生一个 .git 隐藏文件夹。

Clone远程仓库(远程仓库中没有代码也可以这样执行),在本地仓库中输入:

 

 

“A”为远程仓库的仓库名

其中 https://git.coding.net/XXXXXX.git  为远程仓库的HTTPS地址,可以在项目的 代码 标签处找到:

图 1

之后会弹出登录凭证验证窗口:

图 2

输入Coding的用户名(一般为邮箱)和登陆密码点击 确定 即可。

如果远程仓库里面有代码,Clone执行完毕后我们就可以在本地看到远程仓库中的代码了。

 

5 将本地代码仓库的更改推送到远程代码仓库

现在假设我们在本地代码仓库新建了一个文件 1.txt . 下面演示如何将这个更改推送到远程代码仓库:

进入本地代码仓库中,查看代码状态,输入:

git status

这时Git会用红色字体显示 1.txt ,说明这个文件是和远程仓库中的内容不一致的。

将所有更改都加入到暂存区域,准备上传:

 

也可以使用

 

指定加入到暂存区域的文件。

但是当我们输入:

 

准备提交代码时,回车却出现了下面的警示信息:

 

根据上述提示,输入:

 

回车。

输入:

 

回车。

再次执行:

 

这次没有出现错误提示,而是打开了一个文本。按下 i 开始输入所提交代码的备注,之后保存并退出。

之后输入:

 

这时我们在浏览器上再刷新Coding账号中的该项目就可以看到刚才推送过来的 1.txt 文件了。

输入:

 

会看到:

 

至此,本地更改已经全部推送到远程仓库。

使用Coding Pages托管网站

作者:荒原之梦

Coding官网:https://coding.net

Coding Pages官网页面:https://coding.net/pages/

 

具体过程如下:

1 注册Coding账户

可以先使用邮箱注册,之后再绑定手机号(如果不想升级成银牌会员也可以不绑定手机号)。

 

2 完善资料,升级成银牌会员

普通会员没有自定义域名的权限,银牌会员可以绑定自定义域名。

 

3 创建一个项目

图 1

项目名称一栏填写:

 

其中 username 必须是当前Coding账号的用户名。

项目属性设置为 私有 。

勾选 启用README.md文件初始化项目 复选框。

点击 创建项目 。

 

4 上传网页文件

点击 代码->上传文件 开始上传网页文件。

选中并打开网页文件。

填写 提交说明 。

点击 提交到master分支 。

提交代码时,不会上传文件夹。因此如果本地中在一个文件夹里面还有其他文件夹,要注意单独上传这些文件夹里面的内容,如果其他文件中引用了该文件夹中的内容要注意修改路径。

 

5 开启Coding Pages服务

Pages服务提供有“静态Pages”和“动态Pages”两种模式,下面的过程使用的是静态Pages.

点击 Pages服务 。

部署来源 中选中 master分支点击 保存 。

这时我们就可以看到Coding Pages成功运行的提示:

图 2

6 绑定自定义域名

Coding帮助文档:绑定自定义域名

在域名注册商的域名管理页面将自己购买的域名的 CNAME 记录到 pages.coding.me .

图 3
图 4

添加解析记录时要添加 @www 两个主机纪录,绑定域名时也要绑定 XXX.XXX 和 WWW.XXX.XXX 两个。这是为了保证无论用户在输入我们的网址时是否输入了 www. 都可以打开网站。如果不添加 www 主机纪录,输入 WWW.XXX.XXX 是打不开我们的网站的。

图 5
图 5

 

Pages服务 页面分别将 XXX.XXX 和 WWW.XXX.XX 输入 自定义域名 框,点击 绑定 。

图 6

www.daohanggou.wang 是“完全限定域名FQDN”(即“网址”),而 dohanggou.wang 是“域名”。

 

 

7 开启强制HTTPS访问

使用HTTPS加密传输网站文件可以在很大程度上防止中间人攻击。为了最大程度的确保全站HTTPS加密,网站中使用的外链也应该是HTTPS加密的URL,例如图片的URL。

 

8 添加Hosted by Coding Pages信息

Hosted by Coding Pages有文字版和图片版两种,文字版代码如下:

 

如果没有购买Coding会员,可以将上面的代码(或Hosted by Coding Pages图片)添加到网站首页,之后选中 已放置 Hosted by Coding Pages 复选框就会自动提交审核,如果审核通过则我们的Coding Pages在被访问时就不会加载Pages跳转页。

Windows上设置Mozilla Thunderbird邮件客户端后台运行

作者:荒原之梦

操作系统:

Windows 10

Thunderbird版本:

52.6.0(32-bit)

Thunderbird官网页面:https://www.mozilla.org/zh-CN/thunderbird/

目前版本的Thunderbird本身并没有可以使我们在点击了关闭按钮后进入后台运行的选项,一旦我们关闭了Thunderbird可能就无法及时获得新邮件提醒。但是,如同Mozilla的Firefox浏览器一样,Mozilla Thunderbird也有很多插件可以使用,本文就通过安装插件的方法使Thunderbird可以进入后台运行模式。

一 打开Thunderbird,点击右上角的“Display the Thunderbird Menu”按钮

1

 

二 点击” Add-ons->Plugins”

2

 

三 在搜索框输入“minimize”

查找可以使Thunderbird进入后台运行的插件。

3

 

四 点击“See all 245 results”

这里我们选择搜索结果的第一个插件 Minimize To Tray results ,根据介绍它可以Minimize windows into the system tray, 正好符合我们的要求。但是该插件后面并没有显示 Add to Thunderbird 按钮,而是显示一个警示信息:

This add-ons is not compatible with your version of Thunderbird.

4

 

点击该插件会打开浏览器。

5

这时我们发现,该插件支持的Thunderbird版本是 31.0-50.* ,而我们使用的是 52.6.0 版本的Thunderbird. 不过没关系,该插件在 52.6.0 版本的Thunderbird上仍然可以使用,只是我们需要手动安装它了。

 

五 下载插件

点击 Download for Windows 下载该插件。

6

 

六 安装插件

重复第二步,在Thunderbird中打开 Add-ons Manager 页面,点击 Plugins->小齿轮->Install Add-on From File .

7

 

之后选中刚才下载的插件,依次点击 打开->Install Now , 随后会提示我们重启Thunderbird,点击 Restart Now .

七 设置插件工作模式

重启Thunderbird后我们就可以在 Extensions 里找到 Minimize To Tray revived(MinTrayR) 这个插件了,点击 Options 可以对其进行设置。这里我们选择Minimize to tray的工作模式是Instead of closing, 也就是Minimize to tray instead of closing. 这时我们再点击Thunderbird的关闭按钮时Thunderbird就会进入后台运行,有新邮件时我们就可以及时收到提示。