① centos怎么上传文件
使用Vsftpd服务传输文件。
你可以配置一个vsftpd服务,具体步骤参考如下:
[root@linuxprobe ~]# yum install vsftpd -y
Loaded plugins: langpacks, proct-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, proct-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服务器上面。
具体步骤参考文档:http://www.linuxprobe.com/chapter-11.html,可以部署一个vsftpd服务
② 硬件防火墙如何配置
一般来说,硬件防火墙的例行检查主要针对以下内容:
1.硬件防火墙的配置文件
不管你在安装硬件防火墙的时候考虑得有多么的全面和严密,一旦硬件防火墙投入到实际使用环境中,情况却随时都在发生改变。硬件防火墙的规则总会不断地变化和调整着,配置参数也会时常有所改变。作为网络安全管理人员,最好能够编写一套修改防火墙配置和规则的安全策略,并严格实施。所涉及的硬件防火墙配置,最好能详细到类似哪些流量被允许,哪些服务要用到代理这样的细节。
在安全策略中,要写明修改硬件防火墙配置的步骤,如哪些授权需要修改、谁能进行这样的修改、什么时候才能进行修改、如何记录这些修改等。安全策略还应该写明责任的划分,如某人具体做修改,另一人负责记录,第三个人来检查和测试修改后的设置是否正确。详尽的安全策略应该保证硬件防火墙配置的修改工作程序化,并能尽量避免因修改配置所造成的错误和安全漏洞。
2.硬件防火墙的磁盘使用情况
如果在硬件防火墙上保留日志记录,那么检查硬件防火墙的磁盘使用情况是一件很重要的事情。如果不保留日志记录,那么检查硬件防火墙的磁盘使用情况就变得更加重要了。保留日志记录的情况下,磁盘占用量的异常增长很可能表明日志清除过程存在问题,这种情况相对来说还好处理一些。在不保留日志的情况下,如果磁盘占用量异常增长,则说明硬件防火墙有可能是被人安装了Rootkit工具,已经被人攻破。
因此,网络安全管理人员首先需要了解在正常情况下,防火墙的磁盘占用情况,并以此为依据,设定一个检查基线。硬件防火墙的磁盘占用量一旦超过这个基线,就意味着系统遇到了安全或其他方面的问题,需要进一步的检查。
3.硬件防火墙的CPU负载
和磁盘使用情况类似,CPU负载也是判断硬件防火墙系统运行是否正常的一个重要指标。作为安全管理人员,必须了解硬件防火墙系统CPU负载的正常值是多少,过低的负载值不一定表示一切正常,但出现过高的负载值则说明防火墙系统肯定出现问题了。过高的CPU负载很可能是硬件防火墙遭到DoS攻击或外部网络连接断开等问题造成的。
4.硬件防火墙系统的精灵程序
每台防火墙在正常运行的情况下,都有一组精灵程序(Daemon),比如名字服务程序、系统日志程序、网络分发程序或认证程序等。在例行检查中必须检查这些程序是不是都在运行,如果发现某些精灵程序没有运行,则需要进一步检查是什么原因导致这些精灵程序不运行,还有哪些精灵程序还在运行中。
5.系统文件
关键的系统文件的改变不外乎三种情况:管理人员有目的、有计划地进行的修改,比如计划中的系统升级所造成的修改;管理人员偶尔对系统文件进行的修改;攻击者对文件的修改。
经常性地检查系统文件,并查对系统文件修改记录,可及时发现防火墙所遭到的攻击。此外,还应该强调一下,最好在硬件防火墙配置策略的修改中,包含对系统文件修改的记录。
6.异常日志
硬件防火墙日志记录了所有允许或拒绝的通信的信息,是主要的硬件防火墙运行状况的信息来源。由于该日志的数据量庞大,所以,检查异常日志通常应该是一个自动进行的过程。当然,什么样的事件是异常事件,得由管理员来确定,只有管理员定义了异常事件并进行记录,硬件防火墙才会保留相应的日志备查。
上述6个方面的例行检查也许并不能立刻检查到硬件防火墙可能遇到的所有问题和隐患,但持之以恒地检查对硬件防火墙稳定可靠地运行是非常重要的。如果有必要,管理员还可以用数据包扫描程序来确认硬件防火墙配置的正确与否,甚至可以更进一步地采用漏洞扫描程序来进行模拟攻击,以考核硬件防火墙的能力。
③ 如何保存防火墙配置文件到本地计算机
保存现有防火墙配置到本地计算机
选择"save to file",会弹出下载提示,选择保存目录就可以讲防火墙的配置保存到本地了。
命令行:save config from flash to tftp 192.168.1.10 ssg140.cfg (须要开启TFTP服务,192.168.1.10为TFTP服务器地址,下面的命令行操作都须要 TFTP支持)
导入新配置覆盖原有配置
选择Replace Current Configuration,点击Browse按钮,选择一个配置文件。点击Apply确认。重启防火墙。
命令行: save config from tftp 192.168.1.10 ssg140.cfg to flash
导入新配置与原有配置合并
运用根用户或具有读写权限的帐号进入Web界面,在Configuration > Update > Config File界面中,选择Merge to Current Configuration,点击Browse按钮,选择一个配置文件。点击Apply确认。重启防火墙。
命令行:
SSG140-> save config from tftp 192.168.1.1 ssg140.cfg merge from trustLoad config from 192.168.1.10/cfg from trust .!!!!!!!!!!!!!tftp received ctets = 2655tftp success!TFTP SucceededSave config ... ......................................................................SSH version 2 already active.................Save System Configuration ...DoneDone