Git传输协议 gre、pptp

Git传输协议+gre、pptp…

前日补充

ssh方式发送git
案例
#2.100
git init /var/lib/git/project   #建立仓库

#2.200
ssh-keygen -f /root/.ssh/id_rsa -N ''  #生成密钥 密码为空
ssh-copy-id 192.168.2.100          #发送密钥到2.100

git clone 192.168.2.100:/var/lib/git/project   #克隆仓库  发现不用密码了

cd project                         #进入工作目录
echo "no password" > 1.txt            #创建新文件 添加进本地仓库
git add 1.txt
git commit -m "1.txt++"
git push                      #推送本地仓库到服务器2.100仓库  发现不用输入密码了
git方式发送git
案例
#2.100
git init /var/lib/git/project #建立仓库
yum -y install git-daemon  #下载git协议所需包
vim /usr/lib/systemd/system/git@.service   #修改配置文件
=============================
[Unit]
Description=Git Repositories Server Daemon
Documentation=man:git-daemon(1)

[Service]
User=nobody
ExecStart=-/usr/libexec/git-core/git-daemon --base-path=/var/lib/git --export-all --user-path=public_git --syslog --inetd --verbose --enable=receive-pack  #添加--enable 使得仓库可写
#为了让2.200客户端能够推送本地仓库到2.100这个服务器仓库
StandardInput=socket

==============================

systemctl stop firewalld
setenforce 0
systemctl start git-socket   #启动git服务   测试先关闭防火墙和selinux的干扰
chmod -R 777 /var/lib/git           #权限全开 测试无所谓不需要太精确


#2.200
git clone git://192.168.2.100/project  #因为用的是git协议 所以进入就是/var/lib/git/了
cd project
echo "git no password" > 2.txt
git add 2.txt
git commit -m "git 2.txt++"
git push
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 303 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0) 
To git://192.168.2.100/project                 #注意这里发送的协议是git 
   6f436f2..615dc7b  master -> master

网站http方式发送git
#2.100
yum -y install httpd gitweb #安装相关包
git init /var/lib/git/project

vim +10 /etc/gitweb.conf  #打开并且光标到第10行
=======================================
out $projectroot = "/var/lib/git";        #去掉注释
=======================================
systemctl start httpd     #启动httpd服务

#浏览器输入  http://192.168.2.100/git/       即可看见仓库了
制作rpm包
yum -y install rpm-build 
rpmbuild -ba nginx.spec  #会失败 但是会创建rpmbuild目录
ls rpmbuild
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS  #有一堆东西

cp nginx-1.17.6.tar.gz rpmbuild/SOURCES/  #将压缩包放入SOURCES目录下
vim rpmbuild/SPECS/nginx.spec   #修改配置文件
=========================================
Name:	nginx								#对应压缩包名字
Version:	1.17.1                             #对应压缩包版本
Release:        1
Summary:		test						#描述  随便写

#Group:
License:		GPL						#协议GPL
URL:			www.wojia.com			#自家网站
Source0:		nginx-1.17.6.tar.gz		#SOURCES目录下对应包信息 要一字不差

#BuildRequires:					#提示安装所需前置包  	
#Requires:						#提示运行所需包   都是提示 不会自己下的

%description	
test~~~~~~							#详细描述

%post								#添加额外操作
useradd nginx -s /sbin/nologin      #下面编译指定了用户  所以附加个创建用户操作

%prep								#上面写完了 下面开始本机测试
%setup -q							#解包 进入包目录


%build								#宣告开始编译
./configure	--user=nginx					#调用gcc开始编译
make %{?_smp_mflags}


%install
make install DESTDIR=%{buildroot}


%files
%doc
/usr/local/nginx/*                 #源码编译完成  把/usr/local/nginx/下的所有东西打包


%changelog


==========================================
yum -y install gcc pcre-devel openssl-devel #nginx源码编译所需组件
rpmbuild -ba rpmbuild/SPECS/nginx.spec   #开始解压在制作rpm包
ls rpmbuild/RPMS/x86_64/                   #看下
nginx-1.17.6-1.x86_64.rpm  nginx-debuginfo-1.17.6-1.x86_64.rpm   #有两个包了 
#成功
rpm -qpi  rpmbuild/RPMS/x86_64/nginx-1.17.6-1.x86_64.rpm #查看rpm包信息
Name        : nginx
Version     : 1.17.6
Release     : 1
Architecture: x86_64
Install Date: (not installed)
Group       : Unspecified
Size        : 765158
License     : GPL
Signature   : (none)
Source RPM  : nginx-1.17.6-1.src.rpm
Build Date  : Thu 17 Dec 2020 06:27:53 AM EST
Build Host  : web1
Relocations : (not relocatable)
URL         : www.wojia.com
Summary     : test
Description :
test~~~~~~~~~~~~
											#有之前自己添加的信息

gre pptp l2tp

使用gre技术实现(两台linux2.100 2.200)
GRE介绍
  • GRE隧道是一种IP-over-IP的隧道,是通用路由封装协议,可以对某些网路层协议的数据报进行封装,使这些被封装的数据报能够在IPv4/IPv6 网络中传输。Tunnel 是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够在这个通路上传输,并且在一个Tunnel 的两端分别对数据报进行封装及解封装。一个X协议的报文要想穿越IP网络在Tunnel中传输,必须要经过加封装与解封装两个过程。
  • 要在Linux上创建GRE隧道,需要ip_gre内核模块,它是GRE通过IPv4隧道的驱动程序。
实现案例
#2.100
modprobe ip_gre    #内核开启
lsmod | grep ip_gre  #看一下
ip_gre                 22707  0
ip_tunnel              25163  1 ip_gre
gre                    13144  1 ip_gre

ip tunnel add tun1 mode gre remote 192.168.2.200 local 192.168.2.100
#add tun1  取名tun1  mode gre 使用gre  remote  目标2.200  local 本机2.100  一般是公网Ip 测试就私网了

ip address show
....
6: tun1@NONE: <POINTOPOINT,NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1000
    link/gre 192.168.2.100 peer 192.168.2.200
#有了tun1

ip tunnel del tun0 #删除

ip address add 10.10.10.10/8 peer 10.10.10.5/8 dev tun1
ip address show
.....
6: tun1@NONE: <POINTOPOINT,NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1000
    link/gre 192.168.2.100 peer 192.168.2.200
    inet 10.10.10.10 peer 10.10.10.5/8 scope global tun1    #这里
       valid_lft forever preferred_lft forever
#多了两个私有ip 分别定义自己为10.10.10.10  对方是10.10.10.5


ip link set tun1 up    #激活配置
ip address show    #再看下
6: tun1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1476 qdisc noqueue state UNKNOWN group default qlen 1000    #多了UP LOWER_UP
    link/gre 192.168.2.100 peer 192.168.2.200
    inet 10.10.10.10 peer 10.10.10.5/8 scope global tun1
       valid_lft forever preferred_lft forever
    inet6 fe80::5efe:c0a8:264/64 scope link
       valid_lft forever preferred_lft forever
       

#2.200
modprobe ip_gre #开启模块
ip tunnel add tun0 mode gre remote 192.168.2.100 local 192.168.2.200#建立公网连接
ip address add 10.10.10.5/8 peer 10.10.10.10/8 dev tun0      #定义私网ip
ip link set tun0 up     #激活
ip address show
......
5: tun0@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1476 qdisc noqueue state UNKNOWN group default qlen 1000
    link/gre 192.168.2.200 peer 192.168.2.100
    inet 10.10.10.5 peer 10.10.10.10/8 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::5efe:c0a8:2c8/64 scope link
       valid_lft forever preferred_lft forever
#2.200也完成了

#用私网地址ping一下
ping 10.10.10.10     #本机私网地址为10.10.10.10  目标为10.10.10.5
使用pptp实现(支持windows)

pptp不怎么安全

#自己先弄到pptpd-1.4.0-2.el7.x86_64.rpm
yum -y install pptpd-1.4.0-2.el7.x86_64.rpm
vim /etc/pptpd.conf       #修改配置文件
==================================
localip 192.168.2.100  					#自身公网ip   测试就用私网了
remoteip 10.10.10.10-18                  #分配私网ip   10.10.10.10~18
==================================

vim /etc/ppp/options.pptpd   #配置DNS服务器
====================================
ms-dns 8.8.8.8			#谷歌DNS  全球可用   可以自己搜所在城市的DNS服务器
====================================

vim /etc/ppp/chap-secrets   #建立客户端账户密码
=============================================
#client		server 		secret		IP addresses   #用户  服务  密码  ip限制
tom			*			123456		*
===============================================

#配置完了 开服务
systemctl start pptpd     #开启服务
ss -nutlp | grep pptpd    #查看服务端口
tcp    LISTEN     0      3         *:1723                  *:*                   users:(("pptpd",pid=6797,fd=6))
											#占用端口1723

#windows下访问
#打开网络和Internet设置
#VPN对话框  然后配上相应信息  保存   连接  断网一气呵成
使用l2tp+IPsec 实现(支持windows)

l2tp完成配置 IPsec提供安全性

#2.100
yum -y install libreswan		#加密包
cp myipsec.conf /etc/ipsec.d/  #配置文件自己找的
vim /etc/ipsec.d/myipsec.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=192.168.2.100                        #公网ip  测试用私网
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any
==========================================

vim /etc/ipsec.secrets
==========================================
include /etc/ipsec.d/*.secrets
192.168.2.100 %any: PSK "randpass"
#自己ip        能访问的客户机ip    PSK预共享秘钥,密码是randpass
==========================================

#加密完成
yum -y install xl2tpd-1.3.8-2.el7.x86_64.rpm #xl2tpd包自己下的
vim /etc/xl2tpd/xl2tpd.conf
=================================
[lns default]
ip range = 9.9.9.9-9.9.9.18       #给客户分配私网Ip范围
local ip = 192.168.2.100                    #vpn服务器公网IP
require chap = yes
refuse pap = yes
require authentication = yes
name = LinuxVPNserver
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
==================================
vim /etc/ppp/options.xl2tpd
===================================
ipcp-accept-local
ipcp-accept-remote
ms-dns 8.8.8.8
noccp
auth
#crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
#lock
proxyarp
connect-delay 5000
require-mschap-v2
===================================
vim /etc/ppp/chap-secrets   #客户端账号密码
=====================================
tom *	123456	* 
====================================

systemctl start ipsec
systemctl start xl2tpd
ss -nutlp | grep xl2tpd
ss -nutlp | grep :500

#windows中测试  同上

将命令添加到systemctl中

ls /usr/lib/systemd/system
#一堆.service
vim /opt/test.sh         #自己写个脚本测试 当成命令用
==================
#!/bin/bash
while :
do
	ehco xyz
	echo yyy
	sleep 1
done
=====================
chmod a+x test.sh
cd /usr/lib/systemd/system
cp crond.service test.service
vim test.service
==========================
[Unit]
Description=test     #修改为自己的服务  描述信息
After=auditd.service systemd-user-sessions.service time-sync.target
#After  必须在这些网络服务启动后才会开启服务
[Service]
#EnvironmentFile=/etc/sysconfig/crond      #测试不需要
ExecStart=/opt/test.sh			#执行东西
ExecReload=/bin/kill -HUP $MAINPID       #重新加载配置文件  MAINPID变量
KillMode=process						#关闭主进程

[Install]
WantedBy=multi-user.target  #开机自启的前提

=============================
systemctl daemon-reload  #重新加载一下 刷出新加的test
systemctl start test		#启动看下
systemctl status test     #查看下  发现后台输出了
systemctl stop test     #关了






#添加nginx进去
cd /usr/lib/systemd/system
cp httpd.service nginx.service
==============================
[Unit]
Description=nginx
After=network.target remote-fs.target nss-lookup.target
#		网络服务		远程文件服务			DNS服务
[Service]
Type=forking  #多进程
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT ${MAINPID}#不用nginx -s stop  因为nginx要是出问题就关不了

[Install]
WantedBy=multi-user.target
==============================
systemctl daemon-reload  #刷新下
ss -nutlp | grep :80   #查下80端口有没有被占用  有就停掉
systemctl start nginx  #启动
curl 192.168.2.100    #直接访问测试下
ss -nutlp | grep :80  #也可以看下端口服务
systemctl restart nginx   
systemctl stop nginx   #都测试下没问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值