韩艺博的博客 https://www.hanyibo.com/ zh-CN 韩艺博的个人博客,学习笔记,主要记录Linux,PHP,Python网络方面内容。 Wed, 07 Nov 2018 19:06:00 +0800 Wed, 07 Nov 2018 19:06:00 +0800 Nginx开启TLS 1.3 https://www.hanyibo.com/linux/nginx-enable-tls1-3-brotli.html https://www.hanyibo.com/linux/nginx-enable-tls1-3-brotli.html Wed, 07 Nov 2018 19:06:00 +0800 HanYibo 随着互联网安全越来越受到重视,越来越多的网站选择启用https来保证数据的加密传输,TLS1.2发布于2008年8月,至今正好有10年,所以新协议TLS1.3呼之欲出。Google chrome在最近的版本更新中也开始对TLS1.3进行支持,TLS1.3对于TLS1.2有重大改写,提高了安全性并且提高了速度,

安装依赖

我用的是Ubuntu 16.04+lnmp.org一键脚本系统,首先安装依赖和编译工具:

sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g-dev unzip git

下载Brotli

不需要可略过,可以参考Nginx启用Brotli压缩算法

最新版已经无需安装额外依赖 bagder/libbrotli

cd /usr/local/src/
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
git submodule update --init
cd ..

下载OpenSSL

为了支持 TLS 1.3 final,需要使用 OpenSSL 1.1.1 正式版:

wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
tar -zxvf openssl-1.1.1.tar.gz
mv openssl-1.1.1.tar.gz openssl

编译并安装 Nginx

cd /usr/local/src
VERSION=1.14.1 #换成你想要的版本
wget http://nginx.org/download/nginx-${VERSION}.tar.gz
tar -xvzf nginx-${VERSION}.tar.gz

cd /usr/local/src/nginx-${VERSION}
./configure  --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=../openssl --with-openssl-opt='enable-tls1_3 enable-weak-ssl-ciphers' --add-module=/usr/local/src/ngx_brotli

make
sudo make install

如果要支持IE8,添加enable-weak-ssl-ciphers选项

以上步骤会把 Nginx 装到 /usr/local/nginx/ 目录,如需更改路径可以在 configure 时指定。

站点配置

我的站点配置文件在/usr/local/nginx/conf/vhost/hanyibo.com
修改一下两处参数:

ssl_protocols              TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # 增加 TLSv1.3
ssl_ciphers                TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;

如果你不打算继续支持 IE8,可以去掉包含 3DESCipher Suite

测试

Chrome
chrome-tls13-test.png
Firefox
firefox-tls13-test.png

]]>
0 https://www.hanyibo.com/linux/nginx-enable-tls1-3-brotli.html#comments https://www.hanyibo.com/feed/linux/nginx-enable-tls1-3-brotli.html
DNSmasq搭建自己的递归DNS服务器 https://www.hanyibo.com/linux/install-dnsmasq.html https://www.hanyibo.com/linux/install-dnsmasq.html Sun, 14 Oct 2018 19:59:00 +0800 HanYibo DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。

安装DNSmasq

#centos
yum -y install dnsmasq
#ubuntu
apt-get -y install dnsmasq

配置DNSmasq

编辑配置文件/etc/dnsmasq.conf

# 指定上游dns服务器
resolv-file=/etc/resolv.dnsmasq.conf

#严格按照resolv-file文件中的顺序从上到下进行DNS解析
strict-order
#监听地址
listen-address=10.0.0.1

#使用DNS服务器
server=119.29.29.29

#防止dns劫持
bogus-nxdomain=119.29.29.29
阿里云一定要开启 serverbogus-nxdomain
#创建resolv.dnsmasq.conf文件

vim /etc/resolv.dnsmasq.conf

#写入以下内容
nameserver 119.29.29.29
nameserver 223.5.5.5

放行端口

iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT

启动

#启动
/etc/init.d/dnsmasq start
#停止
/etc/init.d/dnsmasq stop
#重启
/etc/init.d/dnsmasq restart
]]>
0 https://www.hanyibo.com/linux/install-dnsmasq.html#comments https://www.hanyibo.com/feed/linux/install-dnsmasq.html
Ubuntu 编译安装Python3.6 https://www.hanyibo.com/python/Ubuntu-install-Python3-6.html https://www.hanyibo.com/python/Ubuntu-install-Python3-6.html Mon, 30 Jul 2018 21:23:26 +0800 HanYibo Ubuntu 编译安装Python3.6

安装环境 Ubuntu 16.04 amd64
最好不要卸载系统自带的Python,可能会导致系统错误,因为系统中的好多软件都依赖Python

安装依赖

#安装编译套件
sudo apt install build-essential checkinstall

#安装其他依赖
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev 

下载源码并编译

Python下载地址https://www.python.org/downloads/ 选择自己需要的版本下载,我下载的是3.6.6版本

prefix:指定安装目录;enable-optimizations:启用优化选项(LTO,PGO等),启用编译很慢;
# 下载源码
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
# 解压
tar -zxvf Python-3.6.6.tgz
# 进入目录
cd Python-3.6.6/
#编译安装 
./configure --prefix=/usr/local/python3.6 --enable-optimizations
make -j4 && make -j4 install

建立软连接

# 备份原有Python命令的软连接
mv -f /usr/bin/python /usr/bin/python.bak
# 建立新的Python链接
ln -sf /usr/local/python3.6/bin/python3.6 /usr/bin/python
ln -sf /usr/local/python3.6/bin/python3.6 /usr/bin/python3

# 备份原有pip命令的软连接
mv -f /usr/bin/pip /usr/bin/pip.bak
# 建立新的pip链接
ln -sf /usr/local/python3.6/bin/pip3 /usr/bin/pip
ln -sf /usr/local/python3.6/bin/pip3 /usr/bin/pip3

输入python -V 出现Python 3.6.6表示安装成功

]]>
1 https://www.hanyibo.com/python/Ubuntu-install-Python3-6.html#comments https://www.hanyibo.com/feed/python/Ubuntu-install-Python3-6.html
为Nginx启用Brotli压缩算法 https://www.hanyibo.com/web/nginx-gzip-change-brotli.html https://www.hanyibo.com/web/nginx-gzip-change-brotli.html Wed, 24 Jan 2018 21:18:00 +0800 HanYibo 什么是Brotli

项目地址:https://github.com/google/ngx_brotli

Brotli最初发布于2015年,用于网络字体的离线压缩。Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式API已被改进,增加更多压缩质量级别。新版本还展现了跨平台的性能改进,以及减少解码所需的内存。

与常见的通用压缩算法不同,Brotli使用一个预定义的120千字节字典。该字典包含超过13000个常用单词、短语和其他子字符串,这些来自一个文本和HTML文档的大型语料库。预定义的算法可以提升较小文件的压缩密度。

使用brotli取代deflate来对文本文件压缩通常可以增加20%的压缩密度,而压缩与解压缩速度则大致不变。

浏览器支持情况

  • Mozilla Firefox在Firefox 44中实现Brotli。
  • Google Chrome从Chrome 49开始支持Brotli。
  • Opera从Opera 36开始支持Brotli。

安装配置

我用的环境是Ubuntu + lnmp.org一键脚本 只需要重新编译一遍nginx就好

下载Brotli源码

最新版已经无需安装额外依赖 bagder/libbrotli

cd /usr/local/src/
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
git submodule update --init

下载Nginx的源码

我使用的是nginx/1.12.2

cd /usr/local/src
VERSION=1.12.2 #换成你想要的版本
wget http://nginx.org/download/nginx-${VERSION}.tar.gz
tar -xvzf nginx-${VERSION}.tar.gz

获取Nginx原来的编译选项

root@HAN:# nginx -V
nginx version: nginx/1.12.2
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.6) 
built with OpenSSL 1.0.2n  7 Dec 2017
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-ld-opt=-ljemalloc  --with-openssl=../openssl 

configure arguments: 后面就是你原先的编译选项

编译Nginx

cd /usr/local/src/nginx-${VERSION}
./configure {添加上原先的编译选项} --add-module=/usr/local/src/ngx_brotli
# 例如: ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-ld-opt=-ljemalloc  --with-openssl=../openssl --add-module=/usr/local/src/ngx_brotli
make && make install

检查是否安装正常

nginx -V
nginx -t

修改Nginx配置文件

找到Nginx的全局配置文件,我的在/usr/local/nginx/conf/nginx.conf

在 http 段加入一下代码

brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;

重启Nginx

/etc/init.d/nginx restart

打开Chrome开发者模式 Network,刷新网页,看到Content-Encoding: br响应头表示成功

]]>
2 https://www.hanyibo.com/web/nginx-gzip-change-brotli.html#comments https://www.hanyibo.com/feed/web/nginx-gzip-change-brotli.html
Linux screen命令 https://www.hanyibo.com/linux/linux-screen-command.html https://www.hanyibo.com/linux/linux-screen-command.html Sun, 30 Jul 2017 16:26:00 +0800 HanYibo screen 是一个非常有用的命令,平时我们在配置一些云服务器的时候,一旦网络掉线,不小心ssh被关掉等等原因,造成进程中断,如果我们在运行命令前,执行screen命令,只要screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户很有用。

常用命令

新建一个会话

$ screen -S lnmp

暂时离开当前会话

按下Ctrl+A+D键 将目前的会话丢到后台执行,并会回到还没进 screen 时的状态

恢复会话

如果你有多个会话,可以列出所有会话,然后在恢复指定的会话。
$ screen -r  

列出所有会话

$ screen -ls 
There are screens on:
    28085.lnmp    (07/30/2017 04:17:19 PM)    (Detached)
    27423.lnmp    (07/30/2017 04:07:03 PM)    (Detached)
    780.lnmp    (07/03/2017 05:34:41 PM)    (Detached)
3 Sockets in /var/run/screen/S-root.

恢复指定会话

$ screen -r lnmp 

终止会话

$ exit  #或者Ctrl+D

要查看screen命令所有功能,可以查看screen的手册man screnn

]]>
2 https://www.hanyibo.com/linux/linux-screen-command.html#comments https://www.hanyibo.com/feed/linux/linux-screen-command.html
Linux vim基本命令 https://www.hanyibo.com/linux/vim-basic-command.html https://www.hanyibo.com/linux/vim-basic-command.html Sat, 08 Apr 2017 21:03:00 +0800 HanYibo Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。

三种常用模式

vim启动进入普通模式,处于插入模式或命令行模式时只需要按Esc即可进入普通模式。普通模式中按i(插入)或a(附加)键都可以进入插入模式,普通模式中按:进入命令行模式。命令行模式中输入wq回车后保存并退出vim。

文件命令

命令作用
vim hello.txt打开hello.txt
:open hello.txt在vim窗口中打开一个新文件
:split hello.txt在新窗口中打开文件
:bn切换到下一个文件
:bp切换到上一个文件
:e ftp://192.168.1.1/hello.txt打开远程文件

插入命令

命令作用
i在当前位置生前插入
I在当前行首插入
a在当前位置后插入
A在当前行尾插入
o在当前行之后插入一行
O在当前行之前插入一行

光标移动

命令作用
h,j,k,l移动光标h往左,j往下,k往右,l往上
Ctrl+f上一页
Ctrl+b下一页
w移动到下一个单词第一个字母
e移动到下一个单词最后一个字母
b 向后移动一个单词 2b 向后移动2个单词
^移动到行首非空白字符
0,<home>移动到行首
$移动光标到行尾2$移动到下面2行尾
gg移动到文件头
G移动到文件尾
Ctrl + e向下滚动一行
Ctrl + y向上滚动一行
Ctrl + d向下滚动半屏
Ctrl + u向上滚动半屏
Ctrl + f向下滚动一屏
Ctrl + b向上滚动一屏

搜索命令

命令作用
/hello向下查找hellon健查找下一个,按N健查找前一个
?hello反向查找hello按n健查找下一个,按N健查找前一个

替换命令

命令作用
ra将当前字符替换为a,当期字符即光标所在字符。
s/old/new/old替换new,替换当前行的第一个匹配
s/old/new/g用old替换new,替换当前行的所有匹配
%s/old/new/用old替换new,替换所有行的第一个匹配
%s/old/new/g用old替换new,替换整个文件的所有匹配
:10,20 s/^/ /g在第10行知第20行每行前面加四个空格,用于缩进。
ddp交换光标所在行和其下紧邻的一行。

撤销命令

命令作用
u撤销
UU 撤销对整行的操作
Ctrl + r重做(Redo),即撤销的撤销。

删除命令

命令作用
x删除当前字符,3x 删除向后三个字符
X删除当前字符的前一个字符。X=dh
dl删除当前字符, dl=x
dh删除前一个字符
dd删除当前行
dj删除上一行
dk删除下一行
10d删除当前行开始的10行。
D删除当前字符至行尾。D=d$

拷贝和粘贴

命令作用
yy拷贝当前行
nyy拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。
p在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。
shift+p在当前行前粘贴
ddp交换当前行和其下一行
xp交换当前字符和其后一个字符
正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按y即可复制\

剪切命令

正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按d即可剪切

ndd 剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴

退出命令

命令作用
:wq保存并退出 同:x
ZZ保存并退出
:q!强制退出并忽略所有更改
:e!放弃所有修改,并打开原来文件。

窗口命令

命令作用
:split水平方向分割出一个窗口
:vsplit垂直方向分割出一个窗口
:close关闭窗口
Ctrl+W 切换窗口, +h到左边窗口,+j到下方窗口,+k到上方窗口,+l到右边窗口

参考:http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html

]]>
2 https://www.hanyibo.com/linux/vim-basic-command.html#comments https://www.hanyibo.com/feed/linux/vim-basic-command.html
Centos 配置openvz 开启nat转发 https://www.hanyibo.com/linux/centos-install-openvz-nat.html https://www.hanyibo.com/linux/centos-install-openvz-nat.html Sat, 18 Mar 2017 21:04:00 +0800 HanYibo 安装 OpenVZ

建议为虚拟机(默认是/vz目录)分配一个单独的分区上,并格式化为ext4文件系统。
下载 openvz.repo 文件到/etc/yum.repos.d/ 目录下

wget -P /etc/yum.repos.d/ http://ftp.openvz.org/openvz.repo

导入 OpenVZ GPG key 用于签名 RPM 包

rpm --import http://ftp.openvz.org/RPM-GPG-Key-OpenVZ

开始安装
OpenVZ 现已支持 Linux 3.x内核,但目前仍在用着2.6.x的内核。
yum -y install vzkernel

还需要安装一些额外的软件包:vzctl,用于管理虚拟机;vzquota,用于控制硬盘容量分配;ploop,用于 OpenVZ 的文件系统管理。
执行以下命令:

yum -y install vzctl vzquota ploop

同时,禁止SELinux,运行命令:

setenforce 0

修改 /etc/sysctl.conf 配置文件

# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0

# Enables source route verification
net.ipv4.conf.all.rp_filter = 1

# Enables the magic-sysrq key
kernel.sysrq = 1

# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

使上面的配置文件生效

modprobe bridge

lsmod|grep bridge

到这一步完成后,重启机器。系统会自动加载 OpenVZ 内核(默认选择),启动完成后,检查是否正确安装内核:

uname -a
会输出类似以下结果:

Linux hostname 2.6.32-042stab081.8 #1 SMP Mon Nov 05 17:50:24 MSK 2013 x86_64 GNU/Linux

检查开机是否设置为启动

chkconfig --list vz

启动检查openvz是否启动

service vz status

如果没自动启动执行,默认情况下会开机自动启动

service vz start

OpenVZ 官网模板下载地址 下载的模板放在/vz/template/cache/下

http://openvz.org/Download/template/cache

安装OpenVZ Web Panel

开发3000端口

iptables -I INPUT -p tcp --dport 3000 -j ACCEPT

保存

/etc/rc.d/init.d/iptables save

重启

/etc/init.d/iptables restart

执行安装脚本

wget -O - https://raw.githubusercontent.com/sibprogrammer/owp/master/installer/ai.sh | sh

下载汉化包

wget -P /opt/ovz-web-panel/config/locales http://mise.tianji.me/zh_CN.yml

恢复并启动被覆盖的Hardware Deamon程序

wget -P /opt/ovz-web-panel/utils/hw-daemon http://mise.tianji.me/hw-daemon.rb

ruby /opt/ovz-web-panel/utils/hw-daemon/hw-daemon.rb start

重启OpenVZ Web Panel服务
/etc/rc.d/init.d/owp restart

安装到此完成,默认用户名密码都是 admin

编辑/etc/owp.conf文件,其中"PORT="之后的就是端口,可以修改为想要的端口.

此外还可以通过修改"IP="之后的部分来修改默认侦听的IP地址.

** 可以根据需要开启SSL加密,修改方法:

编辑/etc/owp.conf文件,其中"SSL="之后的就是是否启用SSL加密(ON为开,OFF为关闭),SSL证书和私钥的存储位置在/opt/ovz-web-panel/config/certs目录,证书文件:server.crt,私钥文件:server.key

新建一个虚拟网卡 设置NAT转发

新建一个虚拟网卡
vim /etc/sysconfig/network-scripts/ifcfg-eth0:0

DEVICE='eth0:0'
NM_CONTROLLED='yes'
ONBOOT='yes'
IPADDR='10.233.0.1'
NETMASK='255.255.255.0'

重启网络

service network restart

iptables 设置一下 nat 转发

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

或者

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 母鸡ip

如果提示:

iptables v1.4.7: can't initialize iptables table `nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded.

vi /etc/modprobe.d/openvz.conf

options nf_conntrack ip_conntrack_disable_ve0=1

替换为

options nf_conntrack ip_conntrack_disable_ve0=0

然后重启

reboot

命令管理vps

vzctl create 100 --ostemplate centos-6-x86_64-minimal
vzctl set 100 --onboot yes --ipadd 10.233.0.100 --nameserver 8.8.8.8 --hostname localhost --diskspace 2G:2G --ram 1024G --swap 64M --userpasswd root:locmjj --save 
vzctl start 100

iptables 端口转发 ssh 端口。

iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 10022 -j DNAT --to-destination 小鸡ip:22

参考:
https://teddysun.com/296.html
https://tianji.me/index.php/centos/owp.html

]]>
0 https://www.hanyibo.com/linux/centos-install-openvz-nat.html#comments https://www.hanyibo.com/feed/linux/centos-install-openvz-nat.html
Linux tar打包压缩命令 https://www.hanyibo.com/linux/tar-compression-command.html https://www.hanyibo.com/linux/tar-compression-command.html Tue, 07 Mar 2017 16:49:00 +0800 HanYibo 用途:解压缩,打包,解包等

五个是独立的命令

  • -c建立压缩档案
  • -x解压
  • -t查看内容
  • -r向压缩归档文件末尾追加文件
  • -u更新原压缩包中的文件
以上这五个是独立的命令,压缩解压都要用到其中一个。

可选参数

  • -z有gzip属性的
  • -j有bz2属性的
  • -Z有compress属性的
  • -v显示所有过程
  • -O将文件解开到标准输出
  • -k 保留原有文件不覆盖
  • -m 保留文件不被覆盖
参数-f是必须的,这个参数是最后一个参数,后面只能接文件名

实例

  • tar -cf jpg.tar *.jpg 这条命令是将所有.jpg的文件打成一个名为jpg.tar的包。-c是表示产生新的包,-f指定包的文件名。
  • tar -rf jpg.tar *.gif 这条命令是将所有.gif的文件增加到jpg.tar的包里面去。-r是表示增加文件的意思。
  • tar -uf all.tar logo.gif 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
  • tar -tf all.tar 这条命令是列出all.tar包中所有文件,-t是列出文件的意思
  • tar -xf all.tar 这条命令是解出all.tar包中所有文件,-x是解开的意思
  • tar -tf aaa.tar.gz 在不解压的情况下查看压缩包的内容
  • tar –xvf file.tar 解压file.tar包
  • *.tar 用 tar –xvf 解压
  • *.gz 用 gzip -d或者gunzip 解压
  • *.tar.gz和*.tgz 用 tar –xzf 解压
  • *.bz2 用 bzip2 -d或者用bunzip2 解压
  • *.tar.bz2用tar –xjf 解压
  • *.Z 用 uncompress 解压
  • *.tar.Z 用tar –xZf 解压
]]>
0 https://www.hanyibo.com/linux/tar-compression-command.html#comments https://www.hanyibo.com/feed/linux/tar-compression-command.html
Linux ssh 安全设置 https://www.hanyibo.com/linux/linux-ssh-security.html https://www.hanyibo.com/linux/linux-ssh-security.html Sun, 05 Mar 2017 11:33:00 +0800 HanYibo Linux ssh 安全设置,Linux默认的SSH端口是22,为了安全性就需要修改掉默认的SSH端口号,防止被穷举密码。禁止root登录,新建普通用户登录。

修改SSH默认端口

编辑/etc/ssh/sshd_config 文件

vim /etc/ssh/sshd_config

找到Port 22 改成Port 10086

# 重启ssh
/etc/init.d/ssh restart
# 添加防火墙,放行 10086端口
iptables -A INPUT -p tcp --dport 10086 -j ACCEPT

禁止root登录

禁止root登陆,新建普通用户,登陆后用su -命令转到root用户。

新建用户可参考https://www.hanyibo.com/linux/linux-user-group.html这篇文章

useradd username #新建用户
passwd username #设置密码
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config #设置禁止root登陆
/etc/init.d/ssh restart #重启SSH

一般设置这些就够了,也可以设置更强的密钥登陆。

]]>
0 https://www.hanyibo.com/linux/linux-ssh-security.html#comments https://www.hanyibo.com/feed/linux/linux-ssh-security.html
Linux du,df 命令 https://www.hanyibo.com/linux/linux-du-df.html https://www.hanyibo.com/linux/linux-du-df.html Sat, 04 Mar 2017 13:30:00 +0800 HanYibo du命令
  • 用途:概述磁盘使用情况
  • 语法:du [ -a | -s ] [ -k ] [ -m ] [ -g ][ -l ] [ -r ] [ -x ] [ -H | -L][ File ... ]

参数

  1. -a 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。将该参数与 -s 标志进行对比
  2. -g 用 GB 单位计算块数,而不是用缺省的 512 字节单位。对磁盘使用情况的输出值要用浮点数,这是因为如果用字节为单位的话,值会非常大
  3. -H 如果在命令行指定了符号链接, du 命令将统计链接引用的文件或文件层次结构的大小
  4. -k 用 1024 字节单位计算块数,而不是用缺省的 512 字节单位
  5. -L 如果在命令行指定了符号链接或者在文件层次结构的遍历中多次遇到符号链接,则 du 命令应统计链接引用的文件或文件层次结构的大小
  6. -m 用 MB 单位计算块数,而不是用缺省的 512 字节单位。对磁盘使用情况的输出值要用浮点数,这是因为如果用字节为单位的话,值会非常大
  7. -r 报告不可访问的文件或者目录名。此为缺省设置
  8. -s 为所有指定文件显示整个磁盘使用情况,或者为一个目录中的所有文件 显示总的磁盘使用情况。将该标志与 -a参数进行对比
  9. -x 在评估文件大小时,只评估那些与 File 参数指定的文件或者目录驻留在相同设备上 的文件。例如,您可以指定一个 在多个设备上包含文件的目录。这种情况下, -x 标志就为与目录驻留在相同设备的所有文件显示块的大小

实例

  • du /home/han 查看一个目录树及其每个子树的磁盘使用情况
  • du -k /home/han 通过1024字节显示一个目录的大小

df命令

  • 用途:df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况
  • 语法:df [选项] [文件]

参数

  • -a全部文件系统列表
  • -h方便阅读方式显示
  • -H等于-h,但是计算式,1K=1000,而不是1K=1024
  • -i显示inode信息
  • -k区块为1024字节
  • -l只显示本地文件系统
  • -m区块为1048576字节
  • --no-sync忽略sync命令
  • -P输出格式为POSIX
  • --sync在取得磁盘信息前,先执行sync命令
  • -T文件系统类型
]]>
0 https://www.hanyibo.com/linux/linux-du-df.html#comments https://www.hanyibo.com/feed/linux/linux-du-df.html