VPN 网络隧道
搭建VPN:VPN有很多个版本GRE(Linux专用),PPTP(兼容Windows和Linux),L2TP+IPSec(安全的加密)等
GRE--VPN
(要搭建VPN的两个设备都要进行,不过注意配置的时候里面的IP要分清楚自己的和对方的)
1. 启用模块
modprobe ip_gre
查看是否加载了 lsmod | grep ip_gre
2. 创建VPN
ip tunnel add tun0 mode gre remote 目标IP local 本机IP # 新建一个VPN网卡
ip link show | grep tun0 # 查看隧道信息
ip link set tun0 up # 启动隧道
3. 赋予VPN中的IP
ip addr add 本机设置的VPN内部IP/网关 peer 另一个机器的VPN内部IP/网关 dev tun0
查看IP : ip a s
PPTP--VPN
1. 装包:pptpd-1.4.0-2.el7.x86_64.rpm,这个不在默认光盘,可以到资源中下载,也可以去官网下载
2. 配置:修改配置文件
主配置文件: /etc/pptpd.conf 在末尾有模板,将其修改为:
localip 本机的IP
remoteip 配置VPN中的IP范围 格式:IP1-IP2连续的IP IP3,IP4不连续的IP
设置配置文件:/etc/ppp/options.pptpd 也是有模板的,搜索ms-dns就可以了,去掉注释进行修改
ms-dns 具体DNS服务器的IP
# 其中有一行 name 后面是pptp的服务器名,不需要改,只要知道即可
密码配置文件:/etc/ppp/chap-secrets
# client server secret IP addresses
用户名 服务器标记(*) 密码 客户端(*)
路由配置文件:/proc/sys/net/ipv4/ip_forward 打开Linux的路由转发功能,1是开,0是关45
命令:echo "1" > /proc/sys/net/ipv4/ip_forward
L2TP+IPSec--VPN
搭建IPSec加密软件
1. 装包:yum install -y libreswan
2. 修改配置文件:
主配置文件 /etc/ipsec.conf
最后有一个句话:include /etc/ipsec.d/*.conf
这就和httpd的配置文件一样,在/etc/ipsec.d/文件名.conf都可以作为配置文件
所以只要创建一个文件,然后就可以操作了
conn IDC-PSK-NAT
rightsubnet=vhost:%priv
also=IDC-PSK-noNAT
# 加密算法
conn IDC-PSK-noNAT
authby=secret
ike=3des-sha1;modp1024
phase2alg=aes256-sha1;modp2048
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=3h
type=transport
left=服务器VPN的真实IP
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
预共享密钥 PSK 的配置文件:/etc/ipsec.secrets
和主配置文件一样,在 /etc/ipsec.d/文件名.secrets都可以作为其配置文件
VPN服务器的真实IP %any: PSK "psk密钥信息"
3. 启服务:systemctl restart ipsec
查看服务: netstat -ntlup | grep pluto
注意:这软件,软件包名是libreswan,配置文件和启动服务是ipsec,查看服务的是pluto
搭建XL2TP服务
1. 装包:yum install xl2tpd-1.3.8-2.el7.x86_64.rpm
2. 配置:修改配置文件
主配置文件: /etc/xl2tpd/xl2tpd.conf
…………
ip range = 分配给客户端的IP范围
local ip = VPN服务器的IP地址
认证配置文件: /etc/ppp/options.xl2tpd
修改配置文件:
删除或者注释 crtscts
删除或者注释 lock
开启 require-mschap-v2
或者用命令:
sed -i '/\(crtscts\)\|\(lock\)/s/^/#/' /etc/ppp/options.xl2tpd
sed -i '/require-ms/s/#//' /etc/ppp/options.xl2tpd
修改密码文件: /etc/ppp/chap-secrets ,和上文的PPTP配置一样
用户名 服务器标记(*) 密码 客户端(*)
3. 启动服务
systemctl start xl2tpd
查看服务是否启动netstat -ntulp |grep xl2tpd
附注:
如想作VPN转发,搭建完VPN后需要开启路由功能,配置好NAT才能实现与外界通讯
路由配置文件:/proc/sys/net/ipv4/ip_forward 打开Linux的路由转发功能,1是开,0是关45
命令:echo "1" > /proc/sys/net/ipv4/ip_forward
配置路由功能的 NAT, 将私有IP转为公网IP
命令: iptables -t nat -A POSTROUTING -s 隧道内的私有IP(也可以是 网段/子网掩码) -j SNAT --to-source 公有IP
NTP
Network Time Protocol(网络时间协议)
采用的是分层设计,每个设备可以连接其他服务器同步时间,同步后自己也可以成为服务器,为其他设备同步时间,这就是分层设计,不需要每次都和一个服务器进行同步,实现分压,不过Stratum层的总数限制在15以内。
举例说就是,国家一个NTP服务器,一个设备a链接它,进行时间同步后,他和设备b、设备c链接后,设备b和c就会把a当作NTP服务器同步时间,这就形成了3层结构,以此类推可以理解多层的含义了。
当然NTP如果要作为一个服务器,配置中需要修改,开启服务功能
搭建NTP服务
1. 装包: yum -y install chrony
2. 修改配置文件: /etc/chrony.conf
server 服务器的IP iburst
allow IP 或者是 网段/子网掩码
deny IP 或者是 网段/子网掩码
local stratum 层数(必须大于上一层服务器的层数,小于15)
3. 启动服务
systemctl restart chronyd
systemctl enable chronyd
注意:时间同步的一个问题 !闰秒(某分钟59秒后一秒是60秒再之后才调转00,诸多软件不识别 某分60秒)! 在出现闰秒出现前关闭连接外网的NTP服务器。
pssh
远程套件工具,同时对多个程序进行远程控制与操作
1. 装包 :rpm -ivh pssh-2.3.1-5.el7.noarch.rpm (这个包不在光盘中)
2. 命令 pssh 选项 ( 这些选项在下面所有命令中都能用 )
-A | 使用密码远程其他主机(不写默认使用密钥),一会交互式输入密码即可 |
-i | 将输出显示在屏幕 |
-H '主机名或者IP' | 设置需要连接的主机 |
-h '记录了主机名或者IP的文件' | 设置主机列表文件 |
-p | 设置并发数量 |
-t | 设置超时时间 |
-o 目录 | 设置标准输出信息保存的目录,然后目录下会出现 -H 后的数据,或者 -h 读取的文件中的数据同名的文件 |
-e 目录 | 设置错误输出信息保存的目录,如果目录下有同名文件会覆盖 |
-x ssh后要添加的参数 | 传递参数给ssh( -o StrictHostKeyChecking=no 的意思就是第一次连接的时候不需要输入yes) |
第一次用的时候: pssh -A -H 'IP' -x '-o StrictHostKeyChecking=no' 命令
之后使用就不需要 -x '-o StrictHostKeyChecking=no'了
如果没有-i,命令返回的信息不会出现在屏幕上,但是,pssh会根据命令执行成功与否反映出来SUCCESS或FAILURE。
可以在一个文件和中写好IP信息,文件中每列格式是(可以不写用户,默认以当前使用命令的用户的身份): [root@]IP ,然后用 -h 文件名 即可,就不需要反复写IP了
附: 非交互的创建密钥 ssh-keygen -N '' -f /root/.ssh/id_rsa
这样就可以在脚本中创建密钥,不过没必要重复创建,所以可以判断一下密钥是否存在
[ ! -f /root/.ssh/id_rsa ] && ssh-keygen -N '' -f /root/.ssh/id_rsa
创建密钥后,传递密钥到指定IP即可 ssh-copy-id IP
有密钥后,就不需要使用 -A 来输入密码了。
3. 批量拷贝命令 pscp.pssh
拷贝文件:pscp.pssh -A -H 'IP' 本地文件1 本地文件2 …… 本地文件n 目标主机保存的位置(不需要IP,直接写绝对路径)
把多个文件进行批量拷贝,最后一个路径就当作目标主机保存的位置
拷贝目录:pscp.pssh -A -r -H 'IP' 本地目录1 本地目录2 …… 本地目录n 目标主机保存的位置
和拷贝文件差不多,只需要一个选项-r即可
4. 批量收集 pslurp
pslurp -A -H 'IP' [ -L 指定下载到的位置 ] 目标主机的文件位置 /下载后文件的命名
先在指定位置下按照IP创建同名的目录,再把目标主机中的某个文件全部下载到本地指定位置下指定IP的目录,并命名成指定名字
如果没有 -L 位置默认为 当前目录
加上 -r 就可以收集目录
5. 批量杀死 pnuke
pnuke -A -H 'IP' 关键字
其实就是远程到另外设备上用pkill进行查杀