Linux基础及总结18之ftp,nfs,samba,rsync,iptables

ftp、nfs、samba、rsync、iptables

1、实现基于MYSQL验证的vsftpd虚拟用户访问
   10.0.30.120    ftp server
   10.0.30.122    mysql server
  1)分别在两台服务器上安装对应的软件包
      ftp服务器安装软件包
      yum -y install vsftp  mariadb-devel
      无对应pam-mysql的rpm包,需手动编译安装
        yum -y groupinstall "Development Tools"
        wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz
        tar xf pam_mysql-0.7RC1.tar.gz
      mysql服务器安装mariadb包
      yum -y install mariadb-server
      ./configure --with-pam-mods-dir=/lib64/security
      make && make install
  2)创建ftp库、虚拟用户表及授权登录账号
      create database vsftp;
      grant all on vsftp.* to 'ftp'@'10.0.30.%' identified by 'ftp';
      CREATE TABLE users (
        id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
        name CHAR(50) BINARY NOT NULL,
        password CHAR(48) BINARY NOT NULL
        );
        添加虚拟用户,根据需要添加所需要的用户,为了安全应该使用PASSWORD函数加密其密码后存储
          INSERT INTO users(name,password) values('ftpu1',password('centos'));
          INSERT INTO users(name,password) values('ftpu2',password('centos'));
  3)在ftp服务器上修改vsftp配置
        vim /etc/pam.d/vsftpd.mysql
        auth required pam_mysql.so user=ftp passwd=ftp host=10.0.30.122 db=vsftp table=users usercolumn=name passwdcolumn=password crypt=2
        account required pam_mysql.so user=ftp passwd=ftp host=10.0.30.122 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
      注意:参考README文档,选择正确的加密方式
     crypt是加密方式,0表示不加密,1表示crypt(3)加密,2表示使用mysql
     password()函数加密,3表示md5加密,4表示sha1加密
     auth 表示认证
     account 验证账号密码正常使用
     required 表示认证要通过
     pam_mysql.so模块是默认的相对路径,是相对/lib64/security/路径而言,也可以写绝对路径;后面为给此模块传递的参数
    user=vsftpd为登录mysql的用户
    passwd=magedu 登录mysql的的密码
    host=mysqlserver mysql服务器的主机名或ip地址
    db=vsftpd 指定连接msyql的数据库名称
    table=users 指定连接数据库中的表名
    usercolumn=name 当做用户名的字段
    passwdcolumn=password 当做用户名字段的密码
    crypt=2 密码的加密方式为mysql password()函数加密
4)建立相应用户和修改vsftpd配置文件,使其适应mysql认证
     建立虚拟用户映射的系统用户及对应的目录
      useradd -s /sbin/nologin -d /data/ftpadmin ftpadmin
      修改ftpadmin用户home目录的权限,centos7 需除去ftp根目录的写权限
      chmod 555 /data/ftpadmin
      创建数据目录
      mkdir /data/ftpadmin/{upload,pub}
      setfacl –m u:ftpadmin:rwx /data/ftpadmin/upload
  
      修改vsftp配置文件,添加两行配置
      vim /etc/vsftpd/vsftpd.conf
      guest_enable=YES  #所有系统用户都映射成guest用户
      guest_username=ftpadmin #配合上面选项才生效,指定guest用户
       修改下面一项,原系统用户无法登录,使用数据库虚拟账号登录
      pam_service_name=vsftpd.mysql
 5)启动vsftp服务,在客户端机器使用虚拟账号登录ftp验证
      systemctl  start vsftpd
image.png

6)在FTP服务器上配置虚拟用户具有不同的访问权限
vsftpd可以在配置文件目录中为每个用户提供单独的配置文件以定义其ftp服务访
问权限,每个虚拟用户的配置文件名同虚拟用户的用户名。配置文件目录可以是任
意未使用目录,只需要在vsftpd.conf指定其路径及名称即可
vim /etc/vsftpd/vsftpd.conf
添加如下选项
user_config_dir=/etc/vsftpd/vusers_config

   创建所需要目录,并为每个虚拟用户提供独立的配置文件
  mkdir /etc/vsftpd/vusers_config/
  cd /etc/vsftpd/vusers_config/
  touch ftpu1 ftpu2
7)配置虚拟用户的访问权限
    虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。如
    要让用户ftpu1具有上传文件的权限,可修改/etc/vsftpd/vusers_config/ftpu1文

件,在里面添加如下选项并设置为YES即可,只读则设为NO
注意:需确保对应的映射用户对于文件系统有写权限
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/ftpadmin 登录目录改变至指定的目录

8)重启vsftp服务,登录上传文件验证
    mkdir -p /ftpadmin/upload
    chmod 555 /ftpadmin
    setfact -m u:ftpadmin:rwx /ftpadmin/upload
    systemctl restart vsftpd
    分别使用虚拟账户ftpu1和ftpu2登录并验证上传文件。
    ftpu1用户上传文件正常,且根目录为/ftpadmin
image.png

image.png
    ftpu2用户登录上传提示没有权限,根目录为/data/ftpadmin
image.png
2、通过NFS实现服务器/www共享访问。
  10.0.30.120    NFS server    软件包nfs-utils
  10.0.30.121   httpd server    软件包httpd
  1)安装环境所需的软件包
      yum -y install nfs-utils
      yum -y install httpd  
  2)设置共享
        创建共享目录,并修改配置
        mkdir  /www
        vim /etc/exports
         /www  10.0.30.0/24(rw)
        启动服务加载配置
        systemctl  start  nfs
       创建网页测试文件
        echo "10.0.30.120 nfs server" > /www/nfs.html
        在httpd服务器上查看nfs共享
        showmount  -e  10.0.30.120
image.png

3)在httpd服务器上将共享目录挂载到/var/www/html
mount 10.0.30.120:/www /var/www/html/


image.png

启动httpd服务,浏览器访问验证
systemctl start httpd


image.png

4)在httpd服务器上设置nfs开机自动挂载
vim /etc/fstab
10.0.30.120:/www /var/www/html nfs defaults 0 0
3、配置samba共享,实现/www目录共享
  10.0.30.120    samba server    软件包samba
  10.0.30.121   httpd server    软件包httpd   cifs-utils
  1)安装环境所需的软件包
      yum -y install samba
      yum -y install httpd cifs-utils  samba-client
  2)创建samba用户和组
      groupadd -r  sambaadmin
      useradd -s /sbin/nologin -G sambaadmin smbuser1
      smbpasswd  -a smbuser1
       useradd -s /sbin/nologin -G sambaadmin smbuser2
       smbpasswd  -a smbuser2
       mkdir /www
       echo "10.0.30.120 samba server" > /www/smb.html
  3)创建共享目录,并修改samba服务配置文件
        vim /etc/samba/smb.conf
        [www]
          path = /www
          write list = @sambaadmin
  4)启动samba服务并验证
       systemctl start smb nmb
        使用smbclient工具访问验证
        smbclient -L //10.0.30.120 -U smbuser1
image.png

image.png
5)将samba共享的目录挂载到httpd服务的根目录/var/www/html
    mount -o username=smbuser1 //10.0.30.120/www /var/www/html
image.png

6)设置samba共享开机自动挂载
创建挂载所需用户名和密码认证文件
vim /etc/smb.txt
username=smbuser1
password=centos
vim /etc/fstab
//10.0.30.120:/www /var/www/html cifs credentials=/etc/smb.txt 0 0

4、使用rsync+inotify实现/www目录实时同步
10.0.30.120   rsync服务端
 10.0.30.121  rsync客户端
  1)服务端机器安装同步和监控软件
      yum -y install inotify-tools rsync
  2)修改rsync配置文件
      uid = root
      gid = root
      use chroot = no
      max connections = 0
      ignore errors
      exclude = lost+found/
      log file = /var/log/rsyncd.log
      pid file = /var/run/rsyncd.pid
      lock file = /var/run/rsyncd.lock
      reverse lookup = no
      hosts allow = 10.0.30.0/24
      [backup]
      path = /www/
      comment = backup
      read only = no
      auth users = rsyncuser
      secrets file = /etc/rsync.pass
      
      创建同步目录
      mkdir /www
  3)服务器端生成验证文件
      echo "rsyncuser:centos" > /etc/rsync.pass
      chmod 600 /etc/rsync.pass
      启动rsync服务
      systemctl start rsyncd
  4)客户端机器上配置rsync同步数据认证的密码文件
      echo "centos" > /etc/rsync.pass
      chmod 600 /etc/rsync.pass
       客户端测试同步数据
        rsync -avz --password-file=/etc/rsync.pass /data/ rsyncuser@10.0.30.120::backup

image.png

image.png

5)客户端创建inotify_rsync.sh脚本,inotify和rsync实现实时同步
vim inotify_rsync.sh
#!/bin/bash
SRC='/data/'
DEST='rsyncuser@10.0.30.120::backup'
/usr/bin/inotifywait -mrq --timefmt '%Y-%m-%d %H:%M' --format '%T %w %f' -e create,delete,moved_to,close_write,attrib {DIR}SRC {TIME} on FILEPATH was backuped up via rsync"
>> /var/log/changelist.log
done
使用nohup将脚本运行在后台
nohup /bin/sh /data/inotify_rsync.sh 2>&1 /dev/null &
6)验证自动同步功能
在客户端机器/data/目录下创建目录rsync
image.png

rsync服务端使用watch -n1 ls -l /www监控,数据自动同步正常
image.png

5、使用iptable实现: 放行telnet, ftp, web服务,放行samba服务,其他端口服务全部拒绝
服务端机器添加规则:
iptables -A INPUT -p tcp -m multiport --dports 21,22,23,80,139,445 -j ACCEPT
iptables -I INPUT 2 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j REJECT
客户端机器验证:
image.png

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容