linux实用实战(2)

1、搭建vsftpd,并实现虚拟用户

一、安装

    1. 查看是否安装vsftpd

        rpm -qa | grep vsftpd

    2. 安装 

        yum -y install vsftpd

    3. 设置开机启用

        ckconfig vsftpd on


二、配置vsftpd

    打开vsftpd配置文件

    # vi /etc/vsftpd/vftpd.conf


    #设定不允许匿名访问 

    anonymous_enable=NO

    #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问

    local_enable=YES

    write_enable=YES

    local_umask=022

    dirmessage_enable=YES

    #记录上传下载文件的日志

    xferlog_enable=YES

    connect_from_port_20=YES

    chown_uploads=YES

    chown_username=ftp

    #日志记录文件位置

    xferlog_file=/var/log/vsftpd.log

    #格式化日志

    xferlog_std_format=YES

    #设定支持ASCII模式的上传和下载功能

    ascii_upload_enable=YES

    ascii_download_enable=YES


    //使用户不能离开主目录 

    chroot_list_enable=YES

    #chroot_list_file=/etc/vsftpd/chroot_list 


    ls_recurse_enable=YES

    #监听IPv4 sockets

    listen=YES

    #注释IPv6 sockets监听

    #listen_ipv6=YES


    #PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证 //已下三个请在配置文件中手动添加 

    pam_service_name=vsftpd 

  userlist_enable=YES

    userlist_deny=YES

    #/etc/vsftpd/user_list中的用户禁止登录ftp

    #如果只配置userlist_enable=YES,有可能出现错误 “530 Permission denied”,因此加上如下配置

    userlist_file=/etc/vsftpd/user_list

    tcp_wrappers=YES

#设定启用虚拟用户功能 

    guest_enable=YES 

    //指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了 

    guest_username=ftp 

    #设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)

    user_config_dir=/etc/vsftpd/vuser_conf 

   pasv_min_port=61001        (被动模式开放端口)

    pasv_max_port=62000

 #文件上传下载权限设置

    allow_writeable_chroot=YES

    anon_umask=022

    file_open_mode=777

#虚拟用户和本地用户有相同的权限

    virtual_use_local_privs=YES

三、创建chroot list,将vftpd.conf配置文件中的guest_username加入其中:

    # touch /etc/vsftpd/chroot_list

    # echo ftp >> /etc/vsftpd/chroot_list

四、创建用户密码文件

    # touch /etc/vsftpd/vuser_passwd.txt

    ##注意奇行是用户名,偶行是密码

    test

    111222


五、生成虚拟用户认证的db文件

    如果没有db4需要先进行安装。安装Berkeley DB工具:

    # yum install db4 db4-utils

    生成虚拟用户认证的db文件:

    # db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

六、编辑认证文件:

    # vi /etc/pam.d/vsftpd

全部注释掉原来语句再增加以下两句:

    ##查看系统版本号    

    # getconf LONG_BIT

    #系统为32位的

    auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd

    account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

    #系统为64位的

    auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

    account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

七、创建虚拟用户配置文件

    # mkdir /etc/vsftpd/vuser_conf/

    #文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效

    # vi /etc/vsftpd/vuser_conf/test

    ##内容如下:

    #虚拟用户根目录,根据实际情况修改(如果没有需要创建)。该目录必须要有读写权限 chmod -R 777 目录。

    local_root=/var/ftp/upload

    #可写 

    write_enable=YES

    #掩码 

    anon_umask=022

    anon_world_readable_only=NO 

    anon_upload_enable=YES 

    anon_mkdir_write_enable=YES

    anon_other_write_enable=YES

八、设置防火墙

    打开防火墙设置:

    # vi /etc/sysconfig/iptables

    注释其他,新加如下

    # -A INPUT –m state --state NEW –m tcp –p tcp –dport 22 –j ACCEPT

    # -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

    # -A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10090 -j ACCEPT     (被动模式开放端口)

    然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:

    # systemctl restart firewalld.service

2、简述iptales四表五链及详细介绍iptables命令使用方法

        Linux系统上的防火墙是由iptables/netfilter组成,其中iptables是规则的制定工具,工作在用户空间,它制定的规则送到内核空间,netfilter在内核协议框架中定义了5个位置通过钩子函数对进出的数据包进行过滤。iptables四表为filter ,  nat ,mangle ,  raw 。默认表是flter,表的处理优先级为:raw ,mangle,nat,filter。filter:一般的过滤功能;nat: 用于nat功能(地址转换、映射、端口映射等)mangle:用于对特定数据包的修改(使用情况少)raw:  一般是为了不再让iptables做数据包的链接跟踪处理,从而提高性能。五个链分别是:INPUT: 通过路由表判断后目的地是本机,然后进入本机内部资源OUTPUT: 由本机产生的数据向外部转发FORWARD:通过路由表判断后目的地不是本机,然后通过路由转发到其他地方PREROUTING:流入的数据包进入路由表之前POSTROUTING:传出的数据包到达网卡出口前四个表对应的链分别为:filter: INPUT  ,   OUTPUT  ,   FORWARDnat:   PREROUTING  ,  POSTROUTING   FORWARDmangle: INPUT  OUTPUT  PREROUTING  ,  POSTROUTING   FORWARDraw:  PREROUTING  OUTPUT

iptables的语法格式:iptables   [-t  TABLE ]  COMMAND   CHAIN   [-m matchname [per-match-options]]   -j   targetname  [per-target-options]-t  TABLE:  默认为filter  ,可以是filter ,nat  ,mangle, rawCOMMAND有以下几种:    (1)查看:-L   list列出指定链上所有的规则,有以下几条子选项        -n  :   numberic 以数字格式显示地址与端口号,例如任意地址不加-n显示为anywhere 加-n显示为0.0.0.0/0        -v  :    verbose显示详细信息 , -vv  -vvv显示的信息更为详细        -x:     显示计数器结果的精确值,不加的话显示四舍五入的值,但是更有可读性        --line-numbers:   显示规则的序号    (2)链管理:        -N: new,定义一台新的自定义规则链        -X:delete  删除一条自定义规则链(仅能删除自定义的 引用计数为0的  空的 链)        -E:  重命名自定义链(仅能重命名引用计数为0的自定义链)        -P:policy  设置默认策略,对于filter表中的链来说,以三种策略:ACCEPT  /   DROP  /   REJECT    (3)规则管理        -A: append  在最后一条规则之后,追加规则        -I:   insert   插入规则,要指定位置,不指定位置则在第一条前插入规则        -D:  delete  删除规则,指定规则序号或规则本身来进行删除        -R:  replace  替换规则,替换指定链上的指定规则        -F:  flush   清空指定链上的规则        -Z:  zero   计数器置零,每条规则对匹配的报文个数和报文的大小之和进行统计。CHAIN 就是链,参考之前的链与表的关系匹配条件:    基本匹配条件:无需加载任何模块,由iptables/netfilter来提供    [!]  -s:   检查报文中的源IP地址是否符合对应IP或网络地址范围 ,前加“!"表示条件取反(下同)            如:0.0.0.0/0表示所有地址,其他地址网段可以用CIDR方式书写    [!]  -d:   检查报文中的目标IP地址是否符合对应IP或网络地址范围    [!]  -p:  网络协议,常见的有tcp  /  udp   /icmp       [!] -i   :数据报文流入的接口(即哪张网卡),只能应用于 INPUT   PREROUTING  ,   FORWARD  链    [!]  -o  :数据报文流出的接口(即哪张网卡),只能应用于OUTPUT    POSTROUTING   FORWARD链    扩展匹配条件:        隐式扩展:使用-p指定了协议后,隐式包含了一些扩展选项            tcp协议:                [!]  --source-port  或  --sport  port[:port]   匹配报文的源端口,可以是端口范围两个port之间用“:”隔开                [!]  --destination-port  或  --dport  port[:port]   匹配报文的目标端口,可以是端口范围                [!]  --tcp-flags  检查的标志位列表  必须为1的标志位列表   用于匹配报文的标志位,如果标志位出现在第一列表中,而没有出现在第二列表中,则必须为0。第二列表是第一列表的子集。                [!]  --syn   用于匹配第一次握手,相当于"--tcp-flags  SYN,ACK,FIN,RST  SYN"            udp协议:                [!]  --source-port  或  --sport  port[:port]   匹配报文的源端口,可以是端口范围两个port之间用“:”隔开                [!]  --destination-port  或  --dport  port[:port]   匹配报文的目标端口,可以是端口范围            icmp协议:                [!]  --icmp-type  {type[/code]| typename}                        echo-request  :   8                        echo-replay    :   0        显式扩展:使用-m来指明要调用的扩展模块, -m  模块名  模块对应选项,常用的模块名举例如下:            multiport:                以离散方式来指定端口号列表                [!]  --source-port  或  --sport  port,port,port ....指定多个源端口                [!]  --destination-port  或  --dport   port,port,port ..指定多个目标端口            iprange:指定IP地址范围                 [!}  --src-range   fromIP[-toIP]  来源IP范围                [!}  --dst-range   fromIP[-toIP]  目标IP范围            time:  指定日期时间范围                --timestart  hh:mm[:ss]    开始时间                --timestop   hh:mm[:ss]    结束时间                [!]  --weekdays day,day..... 周几                [!]  --monthdays   day,day,.... 每月内的几日                --datestart   YYYY[-MM[-DD[Thh[:mm[:ss]]]]]    开始日期和时间                 --datestop   YYYY[-MM[-DD[Thh[:mm[:ss]]]]]     结束日期和时间                --kerneltz   使用内核配置的时区,而不是默认的UTC            string: 匹配报文中的字符串                --algo {bm|kmp}    必选项   指定匹配字符串的算法                [!]  --string  模式字符串                [!]  --hex-string  16进制编码的模式字符串                --from  offset   指定开始检查的位置                --to   offset      指定结束检查的位置            connlimit :单IP的并发连接数限制                --connlimit-upto  n  连接数小于等于n                 --connlimit-above  n    连接数大于等于n               limit  :使用令牌桶过滤器,指定令牌生成速率                --limit-burst  n   令牌桶的大小                --limit  n[/second|/minute|/hour|/day]   限制每秒多少个包(每分钟/小时/天多少个包)            state:  连接追踪记录,在并发访问量大的主机不要开启                追踪到的连接:/proc/net/nf_conntrack                调整可记录的连接数量最大值:/proc/sys/net/nf_conntrack_max                超时时长:/proc/sys/net/netfilter/* timeout *                [!]  --state  状态                    这里的状态可以为以下几种:                    NEW:新连接请求                    ESTABLISHED:已建立的连接                    INVALID:未识别的连接                    RELATED:相关联连接,附属于某个已存在连接的新请求                    UNTRACKED:未追踪的连接-j targetname    跳转的目标或处理动作:    基本处理动作:         ACCEPT:接受        DROP:  丢弃    扩展处理动作:            REJECT:拒绝            --reject-with type 定义拒绝类型        LOG   日志记录,默认保存在/var/log/messages文件中,            --log-level   日志级别            --log-prefix   日志前缀         RETURN            从自定义链返回原链继续检查规则   自定义链名作为目标           自定义链中的规则如果都不匹配时,再返回原链继续检查原链上的规则

其它命令iptables-save  > filename   保存iptables内容到某一文件中iptables-restore <filename   从某文件中恢复iptables规则(无法恢复加载模块的内容)    -n  不清除原有规则    -t  :仅检查分析生成的规则集是否有语法错误

在centos6中    保存规则service iptables save  会将保存到/etc/sysconfig/iptables文件中覆盖保存    重载文件中的规则:service  iptables  restart

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

推荐阅读更多精彩内容

  • 1、搭建vsftpd,并实现虚拟用户 root用户登录 #yum install vsftpd -y 安装完后可以...
    卫清华阅读 249评论 0 0
  • 1.安全技术 (1)入侵检测与管理系统(Intrusion Detection Systems): 特点是不阻断任...
    尛尛大尹阅读 2,459评论 0 2
  • 图片更清晰,文字在最下面 FTP是TCP/IP的一种应用,使用TCP而不是UDP,所以是可靠的,面向连接的。 FT...
    停下浮躁的心阅读 1,686评论 0 4
  • ftp 文件传输协议 跨平台 上传下载文件 vsftpd 工具:非常安全的文件传输协议;默认的命令端口21号,数据...
    柒夏锦阅读 3,997评论 1 9
  • 1、搭建vsftpd,并实现虚拟用户 我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。 匿名登录:...
    xinxin2019阅读 228评论 0 0