STUN,首先在RFC3489中定义,作为一个完整的NAT穿透解决方案,英文全称是Simple Traversal of UDP Through NATs,即简单的用UDP穿透NAT。
TURN,首先在RFC5766中定义,英文全称是Traversal Using Relays around NAT:Relay Extensions to Session Traversal Utilities for NAT,即使用中继穿透NAT:STUN的扩展
简单的说,TURN与STURN的共同点都是通过修改应用层中的私网地址达到NAT穿透的效果,异同点是TURN是通过两方通讯的“中间人”方式实现穿透。
ICE的全称Interactive Connectivity Establishment(互动式连接建立),由IETF的MMUSIC工作组开发出来的,它所提供的是一种框架,使各种NAT穿透技术可以实现统一。
STUN和TURN服务器和ICE可以参考阅读: P2P技术详解(三):P2P技术之STUN、TURN、ICE详解
本文介绍如何通过DOCKER搭建STUN和TURN服务器,步骤如下
1:创建Dockerfile,内容如下:
FROM ubuntu:1404
MAINTAINER Patxi Gortázar <patxigortazar@gmailcom>
RUN apt-get update && apt-get install -y \
curl \
libevent-core-20-5 \
libevent-extra-20-5 \
libevent-openssl-20-5 \
libevent-pthreads-20-5 \
libhiredis010 \
libmysqlclient18 \
libpq5 \
telnet \
wget
RUN wget >1 首先,使用管理员身份登录到CentOS7系统。2 确定系统中是否已经安装了Git。可以通过运行以下命令来检查: ``` git --version ``` 如果该命令返回Git的版本信息,则说明Git已经安装了,并且可以跳过接下来的步骤。3 如果你的系统上没有Git,可以通过运行以下命令来安装Git: ``` sudo yum install git ``` 这将下载并安装最新的Git版本。4 在安装完成后,运行以下命令来确保Git已经正确安装并运行: ``` git --version ``` 输出应该显示Git的版本信息。现在Git已经在CentOS7上成功安装并运行,你可以使用它来管理你的代码了。1、用在线安装
yum install vsftpd pam db4-y
使用命令将vsftp配置为系统服务
chkconfig --level 35 vsftpd on
2、配置vsftpd服务的宿主
useradd vsftpdadmin -s /sbin/nologin -M
这个vsftpdadmin只是用来替换root的,并不需要登录
3、建立ftp虚拟宿主帐户
useradd vsftpuser -s /sbin/nologin -M
这ftpuser只个虚拟帐户的宿主,本身是不用登录的
4、配置vsftpdconf 配置之前要先备份一下原来的
vi /etc/vsftpd/vsftpdconf
anonymous_enable=YES --> anonymous_enable=NO //不允许匿名用户访问,默认是允许。
chroot_list_enable=YES --> chroot_list_enable=YES //不允许FTP用户离开自己主目录
增加
#设定虚拟用户个人Vsftp的配置文件存放路径。也就是说,这个被指定的目录里,将存放每个Vsftp虚拟用户个性的配置文件,一个需要注意的地方就是这些配置文件名必须和虚拟用户名相同。
user_config_dir=/etc/vsftpd/vconf/userlocal
#这一步非常重要,要记住这一步。一会要根据这个配置新建文件夹
#修改端口号
ftp_data_port=4040
reverse_lookup_enable=NO
pasv_enable=yes
pasv_min_port=48790
pasv_max_port=48800
listen_port=48796 #端口可以根据你自己实际情况配置,也可以用默认端口。但是为了安全考虑根据自己实际情况配置
5、建立虚拟用户文件
mkdir /etc/vsftpd/vconf
touch /etc/vsftpd/vonf/vir_user
6、建立虚拟用户
vi /etc/vsftpd/vonf/vir_user
virtualuser //用户名
12345678 //密码
7、生成数据库
db_load -T -t hash -f /etc/vsftpd/vconf/vir_user /etc/vsftpd/vconf/vir_userdb
8、设置数据库文件访问权限
chmod 600 /etc/vsftpd/vconf/vir_user
chmod 600 /etc/vsftpd/vconf/vir_userdb
9、修改/etc/pamd/vsftpd
auth sufficient pam_userdbso db=/etc/vsftpd/vconf/vir_user
account sufficient pam_userdbso db=/etc/vsftpd/vconf/vir_user
(要想同时使用系统用户和虚拟用户,就需要把required改成sufficient)
10
根据第四步配置的user_config_dir=/etc/vsftpd/vconf/userlocal
新建userlocal文件夹
mkdir /etc/vsftpd/vconf/userlocal
11、根据第六步建立的用户名建立一个文件
例如第六步建立的帐号是virtualuser,则新建一个virtualuser文件
touch /etc/vsftpd/conf/userlocal/virtualuser
12、编辑该用户访问的文件路径
vi /etc/vsftpd/conf/userlocal/virtualuser
输入如下
local_root= //需要指定的网站根目录,例如>详解Linux中搭建一个ftp服务器。
ftp工作是会启动两个通道:
控制通道 , 数据通道
在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和pasv(被动模式)
PORT模式:
在客户端需要接收数据时,ftp_client(大于1024的随机端口)-PORT命令->ftp_server(21) 发送PORT命令,这个PORT命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ftp_server将通过自己的TCP 20 端口和PORT中包含的端口建立新的连接来传送数据。
PASV模式:
传送数据时,ftp_client--PASV命令-->ftp_server(21) 发送PASV命令时,ftp_server自动打开一个1024--5000之间的随机端口并且通知ftp_client在这个端口上传送数据,然后客户端向指定的端口发出请求连接,建立一条数据链路进行数据传输。
安装ftp
#rpm -qa vsftpd 查看是否已经安装
#yum install -y vsftpd
#rpm -ql vsftpd
/etc/logrotated/vsftpd vsftpd的日志文件
/etc/pamd/vsftpd PAM认证文件
/etc/rcd/initd/vsftpd 启动脚本
/etc/vsftpd vsftpd的配置文件存放的目录
/etc/vsftpd/ftpusers 禁止使用vsftpd的用户列表文件
/etc/vsftpd/user_list 禁止或允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpdconf 主配置文件
/etc/vsftpd/vsftpd_conf_migratesh vsftpd *** 作的一些变量和设置
/usr/sbin/vsftpd vsftpd的主程序
其他一些说明文档和手册文件略!
/var/ftp 用户主目录
/var/ftp/pub 用户的目录
#service vsftpd start
#chkconfig --level vsftpd
#chkconfig --level 2345 vsftpd on
2 用户的登录名:ftp(anonymous) 密码空 ,登录的目录为/var/ftp
用用户登录的时候默认是只有的权限,没有上传,创建和删除的权限:
#vim /etc/vsftpd/vsftpdconf
anon_upload_enable=YES 上传
anon_mkdir_write_enable=YES 创建
anon_other_write_enable=YES 删除
#service vsftpd restart
为了安全应该禁止用户的登录:
#vim /etc/vsftpd/vsftpdconf
anonymous_enable=NO
#anon_upload_enable=YES 上传
#anon_mkdir_write_enable=YES 创建
#anon_other_write_enable=YES 删除
#service vsftpd restart
3 创建一个直接登录系统用户来登录ftp:
#useradd -s /sbin/nologin viong
#passwd viong安装
yum -y install vsftpd
安装后修改配置
vi /etc/vsftpd/vsftpdconf
不允许匿名 *** 作
开启用户管理列表
在文件最后面新增allow_writeable_chroot=YES,允许已登录用户进行上传
编辑用户管理列表
vi /etc/vsftpd/chroot_list
添加ftpuser用户
mkdir -p /home/ftp
创建ftp的根路径
useradd -d /home/ftptest -s /sbin/nologin ftpuser
新增用户并配置为ftpuser用户的主文件夹
usermod -aG ftp ftpuser
将ftpuser用户放置在ftp用户组中
chown ftpuser /home/ftp
修改ftp文件的所属
passwd ftpuser
修改ftpuser用户密码
vi /etc/selinux/config
如图配置
firewall-cmd --permanent --zone=public --add-service=ftp
开启ftp服务
firewall-cmd --reload
重加载firewall
systemctl start vsftpd
重启
systemctl status vsftpd
查看firewall状态
输入ftpuser的账号密码
文件服务器ftp文件夹根目录FTP不安全,万不得已情况下,才可使用。
vsftp安全性相对较好
可采用sftp代替FTP
Linux另外常用的FTP:
proftp
vsftp
pureftp
下面以VSFTP为例:
安装方式一:源码包安装
useradd -s /bin/false -d /var/ftp ftpvirtual
cd
make
make install
cp vsftpdconf /etc
/usr/local/sbin/vsftpd & #启动
安装方式二:rpm安装,推荐
rpm -ivh vsftpd-201-5i386rpm
或者 yum install vsftpd
/etc/initd/vsftpd start
两种方式安装完成后,配置方法都一样,下面开始讲配置。
首先讲主配置文件常见配置
vi /etc/vsftpd/vsftpdconf
anonymous_enable=NO #禁止匿名登录
local_enable=NO #禁止本地用户登录
write_enable=YES #对本地用户的写权限
local_umask=022 #本地用户文件生成掩码
dirmessage_enable=YES #显示隐藏文件
xferlog_enable=YES #启用上传和下载日志
connect_from_port_20=YES #服务器将启用FTP数据端口的连接请求
xferlog_std_format=YES #服务器将使用标准的ftpd xferlog日志格式
pam_service_name=vsftpd #设置PAM认证服务的配置文件名称
userlist_enable=YES #设置文件中指定的用户是否可以访问vsftpd服务器
listen=YES #FTP服务器将处于独立启动模式
tcp_wrappers=YES #使用tcp_wrappers作为主机访问控制方式
chroot_local_user=YES #将FTP本地用户禁锢在宿主目录中
chroot_list_enable=YES #将用户禁锢在宿主目录中
listen_address=19216802 #侦听地址
pasv_enable=YES #是否允使用被动模式,默认是允许的。
pasv_min_port=10000 #指定使用被动模式时打开端口的最小值
pasv_max_port=10004 #指定使用被动模式时打开端口的最大值。
max_clients=100 #设置FTP服务器所允许的最大客户端连接数,值为0时表示不限制
max_per_ip=5 #同一IP地址允许的最大客户端连接数,值为0时表示不限制,即线程
local_max_rate=500000 #设置本地用户的最大传输速率,单位为bytes/sec,值为0时表示不限制
anon_max_rate=200000 #设置匿名用户的最大传输速率,单位为bytes/sec,值为0表示不限制
use_localtime=YES #在vsftp之中的时间默认值是显式GMT时间,因此我们会发现上面的时间与我们时寄存取的时间差八小时。改了这一项就好了。
listen_port=10021 改端口
one_process_model=NO yes可增加性能,增加负载,便降低安全,建议NO
nopriv_user=nobody 默认以nobody运行vsftp
对外服务,建议使用stand alone方式启动,性能好。
仅内部人员,建议用super daemon启动,修改如下:
listen=NO
……略
vsftp默认使用GMT时间,建议修改如下:
use_localtime=YES
/etc/vsftpdftpusers #保存不允许进行FTP登录的本地用户帐号,提高系统的安全性
/etc/vsftpduser_list
#禁止vsftpduser_list中的用户
userlist_enable=YES
userlist_deny=YES
#仅允许vsftpduser_list中的用户
userlist_enable=YES
userlist_deny=NO
日志:
vsftpd_log_file=/var/log/vsftpdlog
下面开始讲vsftp四种“用户认证”的方式
一、匿名用户 ftp anonymous
/var/ftp 默认主目录
在/etc/vsftpd/vsftpdconf中:
anonymous_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES #可删除
chmod -R 777 /var/ftp/pub/
修改/var/ftp/pub的SELinux权限
执行以下命令,修改/var/ftp/pub这目录的类型:
chcon -R -t ftpd_anon_rw_t /var/ftp/pub/
anon_root=/var/>作者:SpookZanG
linux搭建NFS服务器
一、什么是NFS服务
NFS是Network
File
System的简写,即网络文件系统
网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS
NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。
二、NFS的优势
1本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。
2用户不必在每个网络上机器里头都有一个home目录。Home目录
可以被放在NFS服务器上并且在网络上处处可用。
3诸如软驱,CDROM,和
Zip®
之类的存储设备可以在网络上面被别的机器使用。这可以减少整个网络上的可移动介质设备的数量。
NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机。客户机远程访问存放在服务器上的数据。为了正常工作,一些进程需要被配置并运行。
三、NFS的搭建
1、服务器端
安装NFS的服务程序
yum
install
-y
nfs-utils
写配置文件
写入
/music
19216800/2552552550(rw,sync)
格式是:
要共享的目录
共享的IP及掩码或者域名(权限,同步更新)
启动服务
/etc/initd/portmap
restart
/etc/initd/nfs
restart
chkconfig
nfs
on
chkconfig
portmap
on
然后关闭防火墙以及更改Selinux关于NIS的选项
/etc/initd/iptables
stop
(防护墙服务关闭)
chkconfig
iptables
off
system-config-selinux
(设置selinux)
2、客户端
编辑fstab文件,实现开机自动挂载
mount
-t
nfs
IP:/目录
挂载到的目录
(此为临时挂载)
如:mount
-t
nfs
19216809:/doce
/doc
编辑FSTAB文件
vim
/etc/initd/fstab
IP:/目录
挂载到的目录
nfs
defaults
0
0
然后关闭防火墙以及更改Selinux关于NIS的选项
/etc/initd/iptables
stop
(防护墙服务关闭)
chkconfig
iptables
off
system-config-selinux
(设置selinux)
至此,搭建完毕。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)