centos tftp 重启(重启tftp服务器的命令)
大家好,关于centos tftp 重启很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于重启tftp服务器的命令的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
如何在CentOS Linux下安装ASTERISK和FreePBX
安装ASTERISK和FreePBX
一、环境要求:
操作系统:centos 5.0以上(以最小化形式安装)
Linux内核版本:2.6.22
Asterisk版本:asterisk V.1.6.2.18
FreePBX版本:FreePBX:2.9.0
以rpm方式安装好的LAMP环境
以root身份登录
二、所需软件包
三、安装步骤
1、Lamp的安装
下载所有软件包到/usr/local/src路径
配置yum源,安装相关软件
yum–y update
yum install–y httpd http-devel mysql mysql-devel mysql-server php php-devel php-mysql
yum install php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl php5-gd php-db
mkdir/var/lib/mysql
chown–R mysql:mysql/var/lib/mysql
/etc/init.d/httpd start
chkconfig–level 35 httpd on
mysql_install_db
chown–R mysql.mysql/var/lib/mysql
/etc/init.d/mysqld start
chkconfig–level 35 mysqld on
mysqladmin–uroot password 123456#设置mysql密码为123456
cp/usr/share/doc/mysql-server-5.0.22/my-medium.cnf/etc/my.cnf
yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml
/etc/init.d/httpd restart
vim/var/www/html/index.php
测试一下:
测试php连接apache:<? phpinfo();?>
测试php连接mysql: vim/usr/local/apache2/htdocs/aaa.php
<?php
$link=mysql_connect(“localhost”,”root”,”123456″);
if(!$link) echo“FAILD!”;
else echo“OK!”;
?>
访问下即可。
service iptables stop
iptables–F
setenforce 0
vi/etc/selinux/config
修改SElinux= disable
重启系统
2、asterisk的安装
1
cd/usr/local/src/asterisk-1.6.2.18/
useradd-c“Asterisk PBX”-d/var/lib/asterisk asterisk
mkdir/var/run/asterisk
mkdir/var/log/asterisk
chown-R asterisk:asterisk/var/run/asterisk
chown-R asterisk:asterisk/var/log/asterisk
chown-R asterisk:asterisk/var/lib/php/session/
chown-R asterisk/var/lib/php#比较重要
vim+231/etc/httpd/conf/httpd.conf将用户、组修改为 asterisk
vim+327/etc/httpd/conf/httpd.conf将 None修改为 All
./configure
make
make install
make samples
make progdocs
/etc/init.d/mysqld restart
3、freePBX的安装:
yum install e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp php-pear php-pear-DB php-gd php-mysql php-pdo kernel-devel ncurses-devel audiofile-devel libogg-devel openssl-devel mysql-devel zlib-devel perl-DateManip sendmail-cf sox
yum install gcc gcc-c++ wget bison mysql-devel mysql-server php php-mysql php-pear php-pear-DB php-mbstring nano tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel php-gd audiofile-devel gtk2-devel subversion kernel-devel
yum install festival festival-dev
yum install ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev
yum install zlib1g zlib1g-dev
yum install bison bison-doc
yum install install libxml2 libxml2-dev
yum install libtiff4 libtiff4-dev
yum install libasound2 libgsm1 libltdl3 libpq4 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev
yum install libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl
cd/usr/local/src/freepbx-2.9.0/
mysqladmin create asterisk–uroot–p123456
mysqladmin create asteriskcdrdb–uroot–p123456
mysql asterisk< SQL/newinstall.sql–uroot–p123456
mysql asteriskcdrdb< SQL/cdr_mysql_table.sql–uroot–p123456
mysql–uroot–p123456
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asterisk@localhost IDENTIFIED BY‘123456’;
GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY‘123456’;
grant all privileges on*.* to asterisk@localhost identified by“123456”;
flush privileges;
exit
用asterisk登陆一下mysql试试:mysql–uasterisk–p123456
如果成功,表明设置正确。
./start_asterisk start
mkdir/var/www/html/asterisk/
mkdir/var/www/html/asterisk/cgi-bin
chown-R asterisk:asterisk/var/www/html/asterisk
./install_amp
如图:保持默认,回车即可
将【asteriskuser】设置为 asterisk(连接数据库的用户名)
将【amp109】设置为 123456(连接数据库的密码)
再上面的选项上键入需要访问的ip地址。如:192.168.1.43
保持默认配置即可。
即可访问!!!!!!!!!!!!!!!
如果访问不成功
rm-rf/etc/amportal.conf
再./install_amp重新配置一遍
如果还不成功,那么:
rm-rf/etc/asterisk/*
./install_amp
用这条命令检查一下文件是否存在:
vim/etc/asterisk/sip.conf
四、配置内部通讯:
1、登录freepbx管理界面
2、选择setup菜单栏的Extensions选项。如图所示:
然后选择右边的Add Extension,如图:
如图所示:
选择:Submit
出现添加对话框,如图所示:
在User Extension一项填入用户分机号,如888
在 Disply Name一项填入用户显示名,如888
下拉对话框,如图:
填入密码:如123456。
选择提交即可。这时服务器端已经添加了一个内部账号,接着在客户端注册这个账号。
打开eyebeam软件,如图所示:
选择上面的向下箭头show menu
然后选择 SIP account setting
打开如图所示对话框:
选择 Add添加一个账号
Display Name中填入服务器上设置好的内容,如:888
User name中填入服务器上设置好的user extension内容,如:888
Password中填入刚才设置好的密码,如123456
Authorization user name中填入服务器上设置好的user extension内容,如:888
Domain中填入服务器的ip地址,如192.168.1.43
完成后点击确定即可。
再点击close关闭SIP Accounts对话框,完成注册。
最后按照如上注册步骤再注册一个客户端,就可以实现内部互相拨打电话了。
Linux centos7下ftp默认端口修改后firewalld如何设置
centos 7中防火墙是一个非常的强大的功能了,但对于centos 7中在防火墙中进行了升级了,下面我们一起来详细的看看关于centos 7中防火墙使用方法。
FirewallD提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 IPv4, IPv6防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。以前的 system-config-firewall/lokkit防火墙模型是静态的,每次修改都要求防火墙完全重启。这个过程包括内核 netfilter防火墙模块的卸载和新配置所需模块的装载等。而模块的卸载将会破坏状态防火墙和确立的连接。
相反,firewall daemon动态管理防火墙,不需要重启整个防火墙便可应用更改。因而也就没有必要重载所有内核防火墙模块了。不过,要使用 firewall daemon就要求防火墙的所有变更都要通过该守护进程来实现,以确保守护进程中的状态和内核里的防火墙是一致的。另外,firewall daemon无法解析由 ip*tables和 ebtables命令行工具添加的防火墙规则。
守护进程通过 D-BUS提供当前激活的防火墙设置信息,也通过 D-BUS接受使用 PolicyKit认证方式做的更改。
“守护进程”
应用程序、守护进程和用户可以通过 D-BUS请求启用一个防火墙特性。特性可以是预定义的防火墙功能,如:服务、端口和协议的组合、端口/数据报转发、伪装、ICMP拦截或自定义规则等。该功能可以启用确定的一段时间也可以再次停用。
通过所谓的直接接口,其他的服务(例如 libvirt)能够通过 iptables变元(arguments)和参数(parameters)增加自己的规则。
amanda、ftp、samba和 tftp服务的 netfilter防火墙助手也被“守护进程”解决了,只要它们还作为预定义服务的一部分。附加助手的装载不作为当前接口的一部分。由于一些助手只有在由模块控制的所有连接都关闭后才可装载。因而,跟踪连接信息很重要,需要列入考虑范围。
静态防火墙(system-config-firewall/lokkit)
使用 system-config-firewall和 lokkit的静态防火墙模型实际上仍然可用并将继续提供,但却不能与“守护进程”同时使用。用户或者管理员可以决定使用哪一种方案。
在软件安装,初次启动或者是首次联网时,将会出现一个选择器。通过它你可以选择要使用的防火墙方案。其他的解决方案将保持完整,可以通过更换模式启用。
firewall daemon独立于 system-config-firewall,但二者不能同时使用。
使用iptables和ip6tables的静态防火墙规则
如果你想使用自己的 iptables和 ip6tables静态防火墙规则,那么请安装 iptables-services并且禁用 firewalld,启用 iptables和ip6tables:
yum install iptables-services
systemctl mask firewalld.service
systemctl enable iptables.service
systemctl enable ip6tables.service
静态防火墙规则配置文件是/etc/sysconfig/iptables以及/etc/sysconfig/ip6tables.
注: iptables与 iptables-services软件包不提供与服务配套使用的防火墙规则.这些服务是用来保障兼容性以及供想使用自己防火墙规则的人使用的.你可以安装并使用 system-config-firewall来创建上述服务需要的规则.为了能使用 system-config-firewall,你必须停止 firewalld.
为服务创建规则并停用 firewalld后,就可以启用 iptables与 ip6tables服务了:
systemctl stop firewalld.service
systemctl start iptables.service
systemctl start ip6tables.service
什么是区域?
网络区域定义了网络连接的可信等级。这是一个一对多的关系,这意味着一次连接可以仅仅是一个区域的一部分,而一个区域可以用于很多连接。
预定义的服务
服务是端口和/或协议入口的组合。备选内容包括 netfilter助手模块以及 IPv4、IPv6地址。
端口和协议
定义了 tcp或 udp端口,端口可以是一个端口或者端口范围。
ICMP阻塞
可以选择 Internet控制报文协议的报文。这些报文可以是信息请求亦可是对信息请求或错误条件创建的响应。
伪装
私有网络地址可以被映射到公开的IP地址。这是一次正规的地址转换。
端口转发
端口可以映射到另一个端口以及/或者其他主机。
哪个区域可用?
由firewalld提供的区域按照从不信任到信任的顺序排序。
丢弃
任何流入网络的包都被丢弃,不作出任何响应。只允许流出的网络连接。
阻塞
任何进入的网络连接都被拒绝,并返回 IPv4的 icmp-host-prohibited报文或者 IPv6的 icmp6-adm-prohibited报文。只允许由该系统初始化的网络连接。
公开
用以可以公开的部分。你认为网络中其他的计算机不可信并且可能伤害你的计算机。只允许选中的连接接入。(You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.)
外部
用在路由器等启用伪装的外部网络。你认为网络中其他的计算机不可信并且可能伤害你的计算机。只允许选中的连接接入。
隔离区(dmz)
用以允许隔离区(dmz)中的电脑有限地被外界网络访问。只接受被选中的连接。
工作
用在工作网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。
家庭
用在家庭网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。
内部
用在内部网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。
受信任的
允许所有网络连接。
我应该选用哪个区域?
例如,公共的 WIFI连接应该主要为不受信任的,家庭的有线网络应该是相当可信任的。根据与你使用的网络最符合的区域进行选择。
如何配置或者增加区域?
你可以使用任何一种 firewalld配置工具来配置或者增加区域,以及修改配置。工具有例如 firewall-config这样的图形界面工具, firewall-cmd这样的命令行工具,以及D-BUS接口。或者你也可以在配置文件目录中创建或者拷贝区域文件。@PREFIX@/lib/firewalld/zones被用于默认和备用配置,/etc/firewalld/zones被用于用户创建和自定义配置文件。
如何为网络连接设置或者修改区域
区域设置以 ZONE=选项存储在网络连接的ifcfg文件中。如果这个选项缺失或者为空,firewalld将使用配置的默认区域。
如果这个连接受到 NetworkManager控制,你也可以使用 nm-connection-editor来修改区域。
由NetworkManager控制的网络连接
防火墙不能够通过 NetworkManager显示的名称来配置网络连接,只能配置网络接口。因此在网络连接之前 NetworkManager将配置文件所述连接对应的网络接口告诉 firewalld。如果在配置文件中没有配置区域,接口将配置到 firewalld的默认区域。如果网络连接使用了不止一个接口,所有的接口都会应用到 fiwewalld。接口名称的改变也将由 NetworkManager控制并应用到firewalld。
为了简化,自此,网络连接将被用作与区域的关系。
如果一个接口断开了,NetworkManager也将告诉firewalld从区域中删除该接口。
当firewalld由systemd或者init脚本启动或者重启后,firewalld将通知NetworkManager把网络连接增加到区域。
由脚本控制的网络
对于由网络脚本控制的连接有一条限制:没有守护进程通知 firewalld将连接增加到区域。这项工作仅在 ifcfg-post脚本进行。因此,此后对网络连接的重命名将不能被应用到firewalld。同样,在连接活动时重启 firewalld将导致与其失去关联。现在有意修复此情况。最简单的是将全部未配置连接加入默认区域。
区域定义了本区域中防火墙的特性:
使用firewalld
你可以通过图形界面工具 firewall-config或者命令行客户端 firewall-cmd启用或者关闭防火墙特性。
使用firewall-cmd
命令行工具 firewall-cmd支持全部防火墙特性。对于状态和查询模式,命令只返回状态,没有其他输出。
一般应用
获取 firewalld状态
firewall-cmd--state
此举返回 firewalld的状态,没有任何输出。可以使用以下方式获得状态输出:
firewall-cmd--state&& echo"Running"|| echo"Not running"
在 Fedora 19中,状态输出比此前直观:
# rpm-qf$( which firewall-cmd)
firewalld-0.3.3-2.fc19.noarch# firewall-cmd--state
not running
在不改变状态的条件下重新加载防火墙:
firewall-cmd--reload
如果你使用–complete-reload,状态信息将会丢失。这个选项应当仅用于处理防火墙问题时,例如,状态信息和防火墙规则都正常,但是不能建立任何连接的情况。
获取支持的区域列表
firewall-cmd--get-zones
这条命令输出用空格分隔的列表。
获取所有支持的服务
firewall-cmd--get-services
这条命令输出用空格分隔的列表。
获取所有支持的ICMP类型
firewall-cmd--get-icmptypes
这条命令输出用空格分隔的列表。
列出全部启用的区域的特性
firewall-cmd--list-all-zones
输出格式是:
<zone>
interfaces:<interface1>..
services:<service1>..
ports:<port1>..
forward-ports:<forward port1>..
icmp-blocks:<icmp type1>....
输出区域<zone>全部启用的特性。如果生略区域,将显示默认区域的信息。
firewall-cmd [--zone=<zone>]--list-all
获取默认区域的网络设置
firewall-cmd--get-default-zone
设置默认区域
firewall-cmd--set-default-zone=<zone>
流入默认区域中配置的接口的新访问请求将被置入新的默认区域。当前活动的连接将不受影响。
获取活动的区域
firewall-cmd--get-active-zones
这条命令将用以下格式输出每个区域所含接口:
<zone1>:<interface1><interface2>..<zone2>:<interface3>..
根据接口获取区域
firewall-cmd--get-zone-of-interface=<interface>
这条命令将输出接口所属的区域名称。
将接口增加到区域
firewall-cmd [--zone=<zone>]--add-interface=<interface>
如果接口不属于区域,接口将被增加到区域。如果区域被省略了,将使用默认区域。接口在重新加载后将重新应用。
修改接口所属区域
firewall-cmd [--zone=<zone>]--change-interface=<interface>
这个选项与–add-interface选项相似,但是当接口已经存在于另一个区域的时候,该接口将被添加到新的区域。
从区域中删除一个接口
firewall-cmd [--zone=<zone>]--remove-interface=<interface>
查询区域中是否包含某接口
firewall-cmd [--zone=<zone>]--query-interface=<interface>
返回接口是否存在于该区域。没有输出。
列举区域中启用的服务
firewall-cmd [--zone=<zone> ]--list-services
启用应急模式阻断所有网络连接,以防出现紧急状况
firewall-cmd--panic-on
禁用应急模式
firewall-cmd--panic-off
代码如下复制代码
应急模式在 0.3.0版本中发生了变化
在 0.3.0之前的 FirewallD版本中, panic选项是–enable-panic与–disable-panic.
查询应急模式
firewall-cmd--query-panic
此命令返回应急模式的状态,没有输出。可以使用以下方式获得状态输出:
firewall-cmd--query-panic&& echo"On"|| echo"Off"
处理运行时区域
运行时模式下对区域进行的修改不是永久有效的。重新加载或者重启后修改将失效。
启用区域中的一种服务
firewall-cmd [--zone=<zone>]--add-service=<service> [--timeout=<seconds>]
此举启用区域中的一种服务。如果未指定区域,将使用默认区域。如果设定了超时时间,服务将只启用特定秒数。如果服务已经活跃,将不会有任何警告信息。
例:使区域中的ipp-client服务生效60秒:
firewall-cmd--zone=home--add-service=ipp-client--timeout=60
例:启用默认区域中的http服务:
firewall-cmd--add-service=http
禁用区域中的某种服务
firewall-cmd [--zone=<zone>]--remove-service=<service>
此举禁用区域中的某种服务。如果未指定区域,将使用默认区域。
例:禁止home区域中的http服务:
firewall-cmd--zone=home--remove-service=http
区域种的服务将被禁用。如果服务没有启用,将不会有任何警告信息。
查询区域中是否启用了特定服务
firewall-cmd [--zone=<zone>]--query-service=<service>
如果服务启用,将返回1,否则返回0。没有输出信息。
启用区域端口和协议组合
firewall-cmd [--zone=<zone>]--add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]
此举将启用端口和协议的组合。端口可以是一个单独的端口<port>或者是一个端口范围<port>-<port>。协议可以是 tcp或 udp。
禁用端口和协议组合
firewall-cmd [--zone=<zone>]--remove-port=<port>[-<port>]/<protocol>
查询区域中是否启用了端口和协议组合
firewall-cmd [--zone=<zone>]--query-port=<port>[-<port>]/<protocol>
如果启用,此命令将有返回值。没有输出信息。
启用区域中的IP伪装功能
firewall-cmd [--zone=<zone>]--add-masquerade
此举启用区域的伪装功能。私有网络的地址将被隐藏并映射到一个公有IP。这是地址转换的一种形式,常用于路由。由于内核的限制,伪装功能仅可用于IPv4。
禁用区域中的IP伪装
firewall-cmd [--zone=<zone>]--remove-masquerade
查询区域的伪装状态
firewall-cmd [--zone=<zone>]--query-masquerade
如果启用,此命令将有返回值。没有输出信息。
启用区域的ICMP阻塞功能
firewall-cmd [--zone=<zone>]--add-icmp-block=<icmptype>
此举将启用选中的Internet控制报文协议(ICMP)报文进行阻塞。ICMP报文可以是请求信息或者创建的应答报文,以及错误应答。
禁止区域的ICMP阻塞功能
firewall-cmd [--zone=<zone>]--remove-icmp-block=<icmptype>
查询区域的ICMP阻塞功能
firewall-cmd [--zone=<zone>]--query-icmp-block=<icmptype>
如果启用,此命令将有返回值。没有输出信息。
例:阻塞区域的响应应答报文:
firewall-cmd--zone=public--add-icmp-block=echo-reply
在区域中启用端口转发或映射
firewall-cmd [--zone=<zone>]--add-forward-port=port=<port>[-<port>]:proto=<protocol>{:toport=<port>[-<port>]|:toaddr=<address>|:toport=<port>[-<port>]:toaddr=<address>}
端口可以映射到另一台主机的同一端口,也可以是同一主机或另一主机的不同端口。端口号可以是一个单独的端口<port>或者是端口范围<port>-<port>。协议可以为 tcp或udp。目标端口可以是端口号<port>或者是端口范围<port>-<port>。目标地址可以是 IPv4地址。受内核限制,端口转发功能仅可用于IPv4。
禁止区域的端口转发或者端口映射
firewall-cmd [--zone=<zone>]--remove-forward-port=port=<port>[-<port>]:proto=<protocol>{:toport=<port>[-<port>]|:toaddr=<address>|:toport=<port>[-<port>]:toaddr=<address>}
查询区域的端口转发或者端口映射
firewall-cmd [--zone=<zone>]--query-forward-port=port=<port>[-<port>]:proto=<protocol>{:toport=<port>[-<port>]|:toaddr=<address>|:toport=<port>[-<port>]:toaddr=<address>}
centos怎么上传文件
使用Vsftpd服务传输文件。
你可以配置一个vsftpd服务,具体步骤参考如下:
[root@linuxprobe~]# yum install vsftpd-y
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分输出信息………………
=
iptables防火墙管理工具中默认禁止了ftp传输协议的端口号,因此咱们在正式配置vsftpd服务程序前还需要清空一下iptables防火墙的默认策略,并将当前已经被清理的防火墙策略状态保存下来:
[root@linuxprobe~]# iptables-F
[root@linuxprobe~]# service iptables save
iptables: Saving firewall rules to/etc/sysconfig/iptables:[ OK ]
vsftpd服务程序的主配置文件(/etc/vsftpd/vsftpd.conf)中参数总共有123行左右,但大多数都是以#(井号)开头的注释信息,咱们可以用grep命令的-v参数来过滤并反选出没有包含#(井号)的参数行,也就是把所有的注释信息都过滤掉,这样再通过输出重定向符写会到原始的主配置文件名称中即可:
[root@linuxprobe~]# mv/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf_bak
[root@linuxprobe~]# grep-v"#"/etc/vsftpd/vsftpd.conf_bak>/etc/vsftpd/vsftpd.conf
[root@linuxprobe~]# cat/etc/vsftpd/vsftpd.conf
anonymous_enable=YES
l
刘遄老师给同学们整理出了vsftpd服务程序的主配置文件中常用的参数及作用介绍,您现在只要简单的浏览一下,接下来的实验中如果不明白再过来查阅就可以。
编辑
参数作用
listen=[YES|NO]是否以独立运行的方式监听服务。
listen_address=IP地址设置要监听的IP地址。
listen_port=21设置FTP服务的监听端口。
download_enable=[YES|NO]是否允许下载文件。
userlist_enable=[YES|NO]
userlist_deny=[YES|NO]是否启用“禁止登陆用户名单”。
max_clients=0最大客户端连接数,0为不限制。
max_per_ip=0同一IP地址最大连接数,0位不限制。
anonymous_enable=[YES|NO]是否允许匿名用户访问。
anon_upload_enable=[YES|NO]是否允许匿名用户上传文件。
anon_umask=022匿名用户上传文件的umask值。
anon_root=/var/ftp匿名用户的FTP根目录。
anon_mkdir_write_enable=[YES|NO]是否允许匿名用户创建目录。
anon_other_write_enable=[YES|NO]是否开放匿名用户其他写入权限。
anon_max_rate=0匿名用户最大传输速率(字节),0为不限制。
local_enable=[YES|NO]是否允许本地用户登陆FTP。
local_umask=022本地用户上传文件的umask值。
local_root=/var/ftp本地用户的FTP根目录。
chroot_local_user=[YES|NO]是否将用户权限禁锢在FTP目录,更加的安全。
local_max_rate=0本地用户最大传输速率(字节),0为不限制。
11.2 Vsftpd服务程序
vsftpd作为更加安全的FTP文件传输协议的服务程序,可以让用户分别通过匿名开放、本地用户和虚拟用户三种身份验证方式来登陆到FTP服务器上面,匿名开放是一种最不安全的验证模式,任何人都可以无需密码验证就登陆到FTP服务端主机,本地用户是通过Linux系统本地的帐号密码信息进行的验证模式,这种模式相比较匿名开放模式来说比较安全,配置起来也十分简单,不过如果被骇客暴力破解出FTP帐号信息,也就可以通过这个口令登陆到咱们的服务器系统中了,从而完全控制整台服务器主机,最后的虚拟用户是相比较最为安全的验证模式,需要为FTP传输服务单独建立用户数据库文件,虚拟出用来口令验证的帐户信息,这些帐号是在服务器系统中不存在的,仅供FTP传输服务做验证使用,因此这样即便骇客破解出了帐号口令密码后也无法登录到咱们的服务器主机上面,有效的降低了破坏范围和影响。
ftp命令是用来在命令行终端中对ftp传输服务进行控制连接的客户端工具,咱们需要先手动的安装一下这个ftp客户端工具,以便于接下来的实验中校验效果:
[root@linuxprobe~]# yum install ftp
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分输出信息………………
Installing:
ftp x86_64 0.17-66.el7 rhel 61 k
Transaction Summary
================================================================================
Install 1 Package
Total download size: 61 k
Installed size: 96 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing: ftp-0.17-66.el7.x86_64 1/1
Verifying: ftp-0.17-66.el7.x86_64 1/1
Installed:
ftp.x86_64 0:0.17-66.el7
Complete!
11.2.1匿名访问模式
vsftpd服务程序中匿名开放是一种最不安全的验证模式,任何人都可以无需密码验证就登陆到FTP服务端主机,这种模式一般只用来保存不重要的公开文件,尤其是在生产环境中更要注意不放敏感文件,当然也非常推荐用咱们第八章中学习的防火墙管理工具(例如Tcp_wrappers)将vsftpd服务程序的允许访问主机范围设置为企业内网,这样还算能够保证基本的安全性。
vsftpd服务程序默认已经开启了匿名访问模式,咱们需要做的就是进一步允许匿名用户的上传、下载文件的权限,以及让匿名用户能够创建、删除、更名文件的权限,这些权限对于匿名用户来讲非常的危险,咱们只是为了练习Linux系统中vsftpd服务程序的配置能力,十分不推荐在生产环境中使用,匿名用户的权限参数及介绍:
编辑
参数作用
anonymous_enable=YES允许匿名访问模式。
anon_umask=022匿名用户上传文件的umask值。
anon_upload_enable=YES允许匿名用户上传文件
anon_mkdir_write_enable=YES允许匿名用户创建目录
anon_other_write_enable=YES允许匿名用户修改目录名或删除目录
[root@linuxprobe~]# vim/etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
确认参数填写正确后保存并退出vsftpd服务程序的主配置文件,还需要重启vsftpd服务程序来让新的配置服务参数生效,并且同学们在生产环境中或者红帽RHCSA、RHCE、RHCA认证考试中也请记得一定要把配置过的服务程序加入到开机启动项中,以保证下次服务器重启后依然能够为用户正常提供ftp文件传输服务:
[root@linuxprobe~]# systemctl restart vsftpd
[root@linuxprobe~]# systemctl enable vsftpd
ln-s'/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service
这样咱们就可以在客户端上面使用ftp命令连接到远程的FTP服务器上面了,FTP服务的匿名开放模式的帐号统一为anonymous,密码为空。匿名模式登陆到FTP服务器后默认所在位置为/var/ftp目录,咱们可以切换至里面的pub目录中,然后尝试创建一个新的目录文件来检验是否已经有了写入权限:
[root@linuxprobe~]# ftp 192.168.10.10
Connected to 192.168.10.10(192.168.10.10).
220(vsFTPd 3.0.2)
Name(192.168.10.10:root): anonymous
331 Please specify the password.
Password:此处敲击回车即可
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir files
550 Permission denied.
刚刚咱们已经把iptables防火墙策略清空,而且也在vsftpd服务程序的主配置文件中添加了允许匿名用户创建目录和写入文件的权限,那么为什么还会被拒绝呢?建议同学们先不要往下面看,思考后用自己的方法尝试解决下这个问题,长期这样您的Linux系统排错能力就一定会练出来的。
回想起前面操作的细节,咱们FTP服务的匿名开放模式是默认登陆到了/var/ftp目录中,查看下这个目录的权限后才发现原来只有root管理员用户才有写入权限的,怪不得会提示写入出错呢,咱们只需要把目录的所有者身份改成系统帐户ftp即可,这样就应该可以了吧~
[root@linuxprobe~]# ls-ld/var/ftp/pub
drwxr-xr-x. 3 root root 16 Jul 13 14:38/var/ftp/pub
[root@linuxprobe~]# chown-Rf ftp/var/ftp/pub
[root@linuxprobe~]# ls-ld/var/ftp/pub
drwxr-xr-x. 3 ftp root 16 Jul 13 14:38/var/ftp/pub
[root@linuxprobe~]# ftp 192.168.10.10
Connected to 192.168.10.10(192.168.10.10).
220(vsFTPd 3.0.2)
Name(192.168.10.10:root): anonymous
331 Please specify the password.
Password:此处敲击回车即可
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir files
550 Create directory operation failed.
又报错了!!此时再次使用ftp命令登入到FTP服务器主机后依然会提示写入操作失败,但细心的同学一定发现报错信息已经产生了变化,在刚刚没有写入权限的时候提示说权限拒绝(Permission denied.)所以咱们怀疑是权限的问题,但现在是提示创建目录的操作失败(Create directory operation failed.)那么咱们同学应该也能马上意识到是SELinux服务在限制这个操作了吧,查看下所有与ftp相关的SELinux域策略有那些吧:
[root@linuxprobe~]# getsebool-a| grep ftp
ftp_home_dir--> off
ftpd_anon_write--> off
ftpd_connect_all_unreserved--> off
ftpd_connect_db--> off
ftpd_full_access--> off
ftpd_use_cifs--> off
ftpd_use_fusefs--> off
ftpd_use_nfs--> off
ftpd_use_passive_mode--> off
httpd_can_connect_ftp--> off
httpd_enable_ftp_server--> off
sftpd_anon_write--> off
sftpd_enable_homedirs--> off
sftpd_full_access--> off
sftpd_write_ssh_home--> off
tftp_anon_write--> off
tftp_home_dir--> off
根据策略的名称和经验可以猜测出是哪一条规则策略,咱们在设置的时候请记得使用-P参数来让配置过的策略永久生效,保证在服务器重启后依然能够顺利写入文件,咱们可以分别尝试下创建目录文件、对文件进行改名以及删除目录文件等等操作。最后,恭喜同学们完成了这个实验课程,建议您在进行一次实验课程前还原虚拟机到最初始的状态,以免多个配置参数之间产生冲突。
[root@linuxprobe~]# setsebool-P ftpd_full_access=on
[root@linuxprobe~]# ftp 192.168.10.10
Connected to 192.168.10.10(192.168.10.10).
220(vsFTPd 3.0.2)
Name(192.168.10.10:root): anonymous
331 Please specify the password.
Password:此处敲击回车即可
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir files
257"/pub/files" created
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
ftp> rmdir database
250 Remove directory operation successful.
ftp> exit
221 Goodbye.
11.2.2本地用户模式
本地用户模式是通过Linux系统本地的帐号密码信息进行的验证方式,这种模式相比较匿名开放模式来说比较安全,不过如果被骇客暴力破解出FTP帐号信息,也就可以通过这个口令登陆到咱们的服务器系统中了,从而完全控制整台服务器主机。本地用户模式配置起来十分简单,而且既然本地用户模式确实要比匿名开放模式更加的安全,因此推荐既然开启了本地用户模式,就把匿名开放模式给关闭了吧~咱们对本地用户模式需要使用的权限参数及介绍如下表:
编辑
参数作用
anonymous_enable=NO禁止匿名访问模式。
local_enable=YES允许本地用户模式。
write_enable=YES设置可写入权限。
local_umask=022本地用户模式创建文件的umask值。
userlist_deny=YES参数值为YES即禁止名单中的用户,参数值为NO则代表仅允许名单中的用户。
userlist_enable=YES允许“禁止登陆名单”,名单文件为ftpusers与user_list。
[root@linuxprobe~]# vim/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
当咱们确认参数信息已经填写正确就可以保存退出了,要想让新的配置参数生效还要记得重启一下vsftpd服务程序,并且在刚刚实验后还原了虚拟机的同学还请记得再把配置的服务加入到开机启动项中,让咱们的vsftpd服务程序在重启后依然能够正常使用。
[root@linuxprobe~]# systemctl restart vsftpd
[root@linuxprobe~]# systemctl enable vsftpd
ln-s'/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service
按道理来说咱们现在就已经可以使用本地用户登陆到FTP服务器中了,但使用root用户登陆后会提示如下的错误信息:
[root@linuxprobe~]# ftp 192.168.10.10
Connected to 192.168.10.10(192.168.10.10).
220(vsFTPd 3.0.2)
Name(192.168.10.10:root): root
530 Permission denied.
Login failed.
ftp>
在咱们输入root管理员用户的密码前就已经提示被拒绝了,看来有什么东西再禁止着用户登陆,这是因为咱们vsftpd服务程序目录中默认存在着两个文件(ftpusers或user_list),这两个文件叫做禁止用户名单,不知道同学们有没有看过一个叫做“死亡笔记”的日本电影,里面就提到有一个黑色封皮的小本本,任何人的名字写进去都会死亡,其实咱们在配置的这个vsftpd服务程序的禁止文件也有类似的功能,只要里面写有某个用户的名字,那么就不再允许这个用户登陆到咱们的FTP服务器上面。
具体步骤参考文档:,可以部署一个vsftpd服务