Chinaunix首页 | 论坛 | 博客
  • 博客访问: 531627
  • 博文数量: 95
  • 博客积分: 1573
  • 博客等级: 上尉
  • 技术积分: 1030
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-23 10:46
个人简介

hello world!

文章分类

全部博文(95)

文章存档

2014年(1)

2013年(44)

2012年(50)

分类: LINUX

2013-02-06 14:35:40

NO.5

第四单元 标准I/O和管道

 

Linux给程序提供三种I/O频道

标准输入(STDIN)- 默认接受来自键盘的输入      /proc/self/fd/0

标准输出(STDOUT)- 默认输出到终端窗口    /proc/self/fd/1

标准错误(STDERR)- 默认输出到终端窗口    /proc/self/fd/2

支持的操作符号包括:

>  把STDOUT重导向到文件

2> 把STDERR重导向到文件

&> 把所有输出重导向到文件

可以使用操作符号来保存输出和错误

$find /etc -name passwd > find.out

$find /etc -name passwd 2> /dev/null

$find /etc -name passwd > find.out 2> find.err

 

#ls -C | tr a-z’ ‘A-Z 小写转为大写

 

某些操作符号使STDOUTSTDERR都受影响

&>:重导向所有输出:

$?find /etc -name passwd &> find.all

2>&1:把STDERR重导向给STDOUT     同时写入一个文件

$?find /etc -name passwd > find.two 2>&1

find  /etc –name passwd > right  2>  error

 

终止词 <<,可以终止一次输入而不必输入ctrl+d来结束,直到输入eof,则停止接收输入。

$mail -s "Please Call" jane@example.com <

>Hi Jane,

>Please give me a call when you get in. We may need

>to do some maintenance on server1. 

>Details when you're on-site,

>Boris

>END

 

head:显示文件的前10行,使用 -n 来改变要显示的行数

tail:显示文件的最后10行,使用 -n 来改变要显示的行数

 

按列抽取文本cut

显示文件或STDIN数据的指定列

$cut -d: -f1 /etc/passwd

$grep root /etc/passwd | cut -d: -f7

 

第六单元 管理简单分区和文件系统

swapon -s 查看现有的swap信息

swapon -a /dev/sdb7 -p -2 激活分区同时设置其丝袜优先级

 

创建swap分区:

1、用分区创建

 使用fdisk分出一个1000Mswap类型的分区

 #mkswap /dev/sdb7

2、用文件创建

 #dd if=/dev/zero of=./swapfs-test bs=1M count=1000

 #mkswap ./swapfs-test

 #vim /etc/fstab

  /root/test/swapfs-test swap       swap       defaults   0 0

 #swapon -a

 #swapon -s

3、用LVM创建

#partx -a /dev/sdb  将分区信息传递至kernel

#pvcreate /dev/sdb2

#vgcreate test /dev/sdb2

#lvcreate -n test01 -L +1G test

#mkswap /dev/test/test01

#swapon -s

#swapon -a            激活/etc/fstab中所有swap分区

#swapon -s

 

创建加密文件系统 cryptsetup

NO.6

单元访问网络文件共享服务

一、NFS

service

1#vim /etc/exports

 /var/pub/       192.168.0.*(ro)

2#service nfs restart

3#exportfs         ;验证是否共享成功

client

1、确认远程NFS服务器的共享目录

 #showmount   -e   192.168.0.254

2#mount  -t nfs 192.168.0.254:/var/pub   /nfs

 

二、autofs 自动挂载网络存储

配置autofs,实现ldapuser40登录成功后,自动挂载家目录/rhome/ldapuser40家目录在172.24.50.10上被nfs共享为:/rhome/ldapuser40。并且要求,其它的ldap用户登录成功后也能正常使用宿主目录

# chkconfig autofs on(一般默认是开)

# vim /etc/auto.master

   /rhome          /etc/auto.ldap

(左边/rhome是自动挂载点,右边/etc/auto.ldap是该挂载点的配置文件,需要手工创建,见下一行)

# cp /etc/auto.misc  /etc/auto.ldap(创建挂载选项,必须以auto.开头,这里借用了auto.misc

# vim auto.ladp

   ldapuser40   -rw,soft    172.24.50.10:/rhome/ldapuser40

   *           -rw,soft    172.16.40.10:/rhome/&

(注意目录的写法:IP之后加:/,而不是://*表示域内任意用户;&表示用户名同名目录;soft指连接中断后[重复]告警,默认是hard[持续]告警)

# service autofs stop

# service autofs start (autofs的一个bug,不能直接service autofs restart)

# showmount –e 172.24.50.10(验证,查看共享目录)

autofs注意:

1、ldapuser40不需要在客户端创建 /rhome/ldapuser40, automount会自动在/rhome下创建ldapuser40;

2、#cd /rhome ,看不到任何内容,需要 #cd ldapuser40 ,才能看到mount的内容;

3、client端的挂载点 /rhome/ldapuser40,最好与server端nfs共享的目录名/rhome/ldapuser40一致。

 

三、samba

查看samba配置:#testparm -v

server

1#vim /etc/samba/smb.conf

  security=share           ;不要密码

  [public]

       comment=Public staff

       path=/home

       public=yes

       writeable=yes

       host allow=10.3.5.

2、如果需要密码访问

  #vim /etc/samba/smb.conf security=user

  添加smb用户,必须要有同名的本地用户

  #smbpasswd -a username

             -d               ;删除

3、设置linux安全上下文

  #chcon -t samba_share_t -R /home

4/etc/init.d/smb restart

client

1#smbclient -L 192.168.0.10

2#mount //192.168.0.10/public /mnt

   如果是security=user,

   #smbclient -L 192.168.0.10 -U harry

   #mount -t cifs -o username=harry //192.168.0.10/home /mnt

有效用户

   #vim /etc/samba/smb.conf   

   valid users=username1 username2

NO.7

单元管理用户账户

#id username 显示用户的id

#usermod -g group1 user

#usermod -G group2 user     "-g"主要组,"-G"次要组

改变文件拥有者

#chown user1 file          改变文件所有者

#chgrp group1 file         改变文件所属组

#chown user1:group1 file

 

单元10  使用LDAP管理网络用户

 

单元11  文件访问控制

一、访问控制列表(ACL

为多用户或者组的文件和目录赋予访问权限rwx

getfacl  file |directory

setfacl  -m  u:gandolf:rwx file|directory            “-m”modify

setfacl  -m  g:nazgul:rw file| directory

setfacl  -m  d:u:frodo:rw  directory

等价 setfacl  -m  -d  u:frodo:rw  directory   -ddefault,文件夹继承

setfacl  -x  u:samwise  file |directory                     “-x”remove

setfacl  -b  file |directory                         “-b”remove all

setfacl  -m  m::rw  file |directory            mmask,表示最大权

 

单元12  管理SELINUX

#getenforce

#setenforce 0 |1

#/etc/sysconfig/selinux

 

单元16  管理进程

#uptime

调度优先性 nice value

Crontab计划任务

#crontab -u   user (只有root能建立,而且是帮其他用户建立)

#croontab -e

#crontab -l

#crontab –r

分钟(0~59)、小时(0~23)、日期、月份、星期

当周是0或者7时都表示的是星期天

如果要执行的工作是3点和6点:0 3,6 *  *  * 

如果是在一段时间内,比如812点,每小时的20分都执行

20  8-12  *  *  *

每隔N个单位时间,如每五分钟一次:*/5 *  *  *  *

NO.9

#modprobe -l ;显示系统中所有模块

vi中,    %s/word1/word2/gc  %”表示全部

/etc/cron*       表示各类计划任务,每天执行的,忽略不执行的

#vim /etc/hosts      配置域名,比如将192.168.0.12设置为 test.com

#df  -h   1024为单位

#df  -H  1000位单位

 

单元高级网络配置

一、配置路由

#route add -net 192.168.2.0 netmask 255.255.255.0 gw 172.24.16.1

#route add -net 192.168.2.0/24 gw 172.24.16.1

意思是:多条路由时,所有需要发往192.168.2.0/24地址段的IP数据包,全部由172.24.16.1路径转发。

 

 

二、AIDE(Adevanced Intrusion Detection Environment)

高级入侵检测环境)是一个入侵检测工具,主要用途是检查文件的完整性。

Logrotate主要是针对日志文件来进行轮替的操作。

#yum install aide

#vi /etc/aide.conf   (指定对哪些文件进行检测)

#aide --init            (初始化一下并生成一个默认的AIDE的库,对生成的数据库做备份,存放到安全的地方。)

#aide --check         (开始检测)

 

三、rsyslog接受远程日志:

服务器端( 192.168.0.12 ):

设置日志接受的端口和设置日志通过TDP还是UPD还收取

vi /etc/rsyslog.conf

$ModLoad  imudp.so

$UDPServerRun    514

service rsyslog restart

客户端:

vi /etc/rsyslog.conf

*.info          @instructor.example.com        或者

*.info          @192.168.0.12

 

四、iscsi共享存储:

iSCSI = internet Small Computer System Interface

目标端:

1.fdisk分出sdb1一个分区(10G)准备用作iscsi共享存储。

2.安装scsi-target-utils软件提供iscsi服务

 [root@rhel6 ~]# yum install scsi-target-utils

3.修改/etc/tgt/targets.conf,添加:

 

       backing-store /dev/sdb1

 

4.重启tgtd服务,并将其设为开机启动:

 [root@rhel6 ~]# /etc/init.d/tgtd restart

 [root@rhel6 ~]# chkconfig tgtd on

5.打开防火墙端口3260或者关闭防火墙。

客户端:

1.发现可用的目标端

 #iscsiadm -m discovery -t sendtargets -p 172.16.36.1

 172.16.36.71:3260,1 iqn.2007-01.com.example:storage.disk1

2.登录目标端:

 iscsiadm -m node -T iqn.2007-01.com.example:storage.disk1 -p 172.16.36.1 -l

命令在#man iscsiadm 中的examples有。

网络接口bonding

2个网络接口bonding

 

要求:2个网卡完全相同。

一、配置设备文件

修改/etc/sysconfig/network-scripts/ifcfg-ethx,如果没有,就创建。

 

$vim /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=none                    静态IP还是动态IP,静态填static,动态填DHCP

#HWADDR=00:0c:29:f4:a3:5f

NM_CONTROLLED=no

ONBOOT=yes

#IPADDR=192.168.0.10

NETMASK=255.255.255.0

MASTER=bond0

SLAVE=yes

TYPE=Ethernet

IPV6INIT=no

USERCTL=no               是否允许非root用户控制设备

 

$vim /etc/sysconfig/network-scripts/ifcfg-eth2

DEVICE=eth2

BOOTPROTO=none

#HWADDR=00:0c:29:f4:a3:5f

NM_CONTROLLED=no

ONBOOT=yes

#IPADDR=192.168.0.10

NETMASK=255.255.255.0

MASTER=bond0

SLAVE=yes

TYPE=Ethernet

IPV6INIT=no

USERCTL=no

 

$vim /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

BOOTPROTO=static

#HWADDR=00:0c:29:f4:a3:5f

NM_CONTROLLED=no

ONBOOT=yes

IPADDR=192.168.0.12

NETMASK=255.255.255.0

TYPE=Ethernet

IPV6INIT=no

USERCTL=no

 

二、

# vim /etc/modprobe.d/bonding.conf

alias bond0 bonding

options bond0 miimon=100 mode=0

 

三、重启

 

[root@desktop3 modprobe.d]# ifconfig

bond0     Link encap:Ethernet  HWaddr 00:0C:29:F4:A3:69 

          inet addr:192.168.0.12  Bcast:192.168.0.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fef4:a369/64 Scope:Link

          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1

          RX packets:7126 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2948 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:1131626 (1.0 MiB)  TX bytes:295281 (288.3 KiB)

 

eth0      Link encap:Ethernet  HWaddr 00:0C:29:F4:A3:5F 

          inet addr:192.168.0.10  Bcast:192.168.0.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fef4:a35f/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:4500 errors:0 dropped:0 overruns:0 frame:0

          TX packets:119 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:885357 (864.6 KiB)  TX bytes:17714 (17.2 KiB)

 

eth1      Link encap:Ethernet  HWaddr 00:0C:29:F4:A3:69 

          inet addr:192.168.0.12  Bcast:192.168.0.255  Mask:255.255.255.0

          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1

          RX packets:7126 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2948 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:1131626 (1.0 MiB)  TX bytes:295281 (288.3 KiB)

 

eth2      Link encap:Ethernet  HWaddr 00:0C:29:F4:A3:69 

          UP BROADCAST SLAVE MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

 

可见,eth1eth2bond0MAC都相同。

 

#cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008)

 

Bonding Mode: fault-tolerance (active-backup)

Primary Slave: None

Currently Active Slave: eth1

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

 

Slave Interface: eth2

MII Status: down

Link Failure Count: 0

Permanent HW addr: 00:0c:29:f4:a3:73

 

Slave Interface: eth1

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0c:29:f4:a3:69

 

mode=1,eth1eth2只要有一个正常工作,网络就正常;

mode=0,eth1eth2只要有一个不正常工作,网络就不通。

NO.10

VSFTP

SELinux(Security-Enhanced Linux) 是美国国家安全局(NAS)对于强制访问控制的实现,是 Linux上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。

 

  最简单的办法,关闭selinux

 

  方法1:修改/etc/selinux/config文件中的SELINUX="" disabled ,然后重启。

 

  方法2:用命令setenforce 0,无需重启。(setenforce的格式:setenforce [ Enforcing | Permissive | 1 | 0 ]

 

  方法3:在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux

 

  使用getenforce查看当前selinux是否正在运行。

 

 

 

 

 

ftp命令:

get/mget  下载

put          上传

user username 更改用户

 

/etc/vsftpd/ftpusers 该文件中的用户永远都禁止登陆ftp

/etc/vsftpd/usr_list 如果/etc/vsftpd/vsftpd.conf

userlist_enable=YESuserlist_deny=YES (default)则该文件中的用户都禁止登陆ftp

userlist_enable=YESuserlist_deny=NO则只有该文件中的用户允许登陆ftp

 

首先设置selinux

[root@rhce-jie ftp]# getsebool -a|grep ftp

allow_ftpd_anon_write --> on

allow_ftpd_full_access --> on

allow_ftpd_use_cifs --> off

allow_ftpd_use_nfs --> off

ftp_home_dir --> on

要使selinux达到上面状态。

 

[root@rhce-jie vsftpd]# getsebool -a

[root@rhce-jie vsftpd]# setsebool -P allow_ftpd_full_access on

 

ftp> !pwd

/etc/vsftpd             “!加命令”表示ftp本地命令

 

开启匿名用户(ftp)上传

[root@rhce-jie vsftpd]# vim /etc/vsftpd/vsftpd.conf

# Uncomment this to allow the anonymous FTP user to upload files. This only

# has an effect if the above global write enable is activated. Also, you will

# obviously need to create a directory writable by the FTP user.

anon_upload_enable=YES

#

# Uncomment this if you want the anonymous FTP user to be able to create

# new directories.

anon_mkdir_write_enable=YES

 

修改匿名用户默认目录/var/ftp/pub

man vsftpd.conf 可以看到,修改/etc/vsftpd/vsftpd.conf

anon_root=/home/test/ftp

 

给匿名用户上传的权限:

方法一:

[root@rhce-jie vsftpd]# chmod o+w /var/ftp/pub

[root@rhce-jie vsftpd]# setsebool -P allow_ftpd_full_access on

 

方法二:

修改selinux安全上下文,先介绍两个命令:

   命令1ls -Z  ps -Z  id -Z  # 分别可以看到文件,进程和用户的SELinux属性

   命令2#chcon 改变SELinux安全上下文

   chcon   -u [user]  对象

       -r [role]

       -t [type]

       -R 递归

       --reference 源文件 目标文件           # 复制安全上下文

   使用方法:

[root@rhce-jie ftp]# ls -Zd /var/ftp/pub/

drwxrwxrwx. root root system_u:object_r:public_content_t:s0 /var/ftp/pub/

[root@rhce-jie ftp]# chcon -R -t public_content_rw_t /var/ftp/pub

[root@rhce-jie vsftpd]# ls -Zd /var/ftp/pub/

drwxrwxrwx. root root system_u:object_r:public_content_rw_t:s0 /var/ftp/pub/

 

把用户限制在家目录中

[root@rhce-jie vsftpd]# vim /etc/vsftpd/vsftpd.conf

# You may specify an explicit list of local users to chroot() to their home

# directory. If chroot_local_user is YES, then this list becomes a list of

# users to NOT chroot().

chroot_local_user=YES

chroot_list_enable=YES

# (default follows)

chroot_list_file=/etc/vsftpd/chroot_list

/etc/vsftpd/chroot_list中的用户可以切换其他目录,非/etc/vsftpd/chroot_list中的用户被限制在家目录。

 

匿名用户上传的文件,可以供匿名用户下载:

vsftpd.conf 中添加anon_umask=022

这样匿名用户上传的文件权限是644

 

将匿名用户上传的文件,归属于本地用户:

chown_uploads=YES

chown_username=local_name

 

限制用户上传文件大小:利用 quota(磁盘配额)

1、编辑/etc/fstab为指定分区加上quota参数:usrquotagrpquota

2、建立quota记录文件:

#quocheck –avug

会在/home下生成 aquota.user,aquota.group 文件

3、启动 quota 服务:#quotaon –avug

4、单一用户的quota报表:#quota –uvs usename

详见: 鸟哥私房菜

SMTP

 

一、安装

[root@rhce-jie Packages]# yum install postfix dovecot -y

 

二、配置

[root@rhce-jie postfix]# vim /etc/postfix/main.cf

inet_interfaces = all        改侦听端口为all

#inet_interfaces = localhost   注释掉

 

[root@rhce-jie postfix]# /etc/init.d/postfix start

[root@rhce-jie postfix]# chkconfig postfix on

 

[root@rhce-jie postfix]# vim /etc/dovecot/dovecot.conf           dovecot开源的 IMAP POP3 邮件服务器

# Protocols we want to be serving.

protocols = imap pop3 lmtp

[root@rhce-jie postfix]# /etc/init.d/dovecot start

 

验证:

[root@rhce-jie postfix]# netstat -untlp | grep 25

tcp     0      0 :::25       :::*                  LISTEN      31

听到25端口就OK

 

[root@rhce-jie postfix]# hostname

rhce-jie.test.com

[root@rhce-jie postfix]# echo hello | mail -s "test mail" test3@rhce-jie.test.com

[root@rhce-jie postfix]# cat /var/spool/mail/test3

From root@rhce-jie.test.com  Sun Nov 18 15:56:58 2012

Return-Path:

X-Original-To: test3@rhce-jie.test.com

Delivered-To: test3@rhce-jie.test.com

Received: by rhce-jie.test.com (Postfix, from userid 0)

       id 04B16658A8; Sun, 18 Nov 2012 15:56:57 +0800 (CST)

Date: Sun, 18 Nov 2012 15:56:57 +0800

To: test3@rhce-jie.test.com

Subject: test mail

User-Agent: Heirloom mailx 12.4 7/29/08

MIME-Version: 1.0

Content-Type: text/plain; charset=us-ascii

Content-Transfer-Encoding: 7bit

Message-Id: <20121118075658.04B16658A8@rhce-jie.test.com>

From: root@rhce-jie.test.com (root)

 

hello

 

用户别名的配置:

[root@rhce-jie postfix]# vim /etc/postfix/main.cf      

alias_maps=hash:/etc/aliases                       默认就是这样的

[root@rhce-jie postfix]# vim /etc/aliases

admin:     harry

使配置文件生效:

[root@rhce-jie postfix]# /etc/init.d/postfix restart

DNS

/etc/hosts是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主机的ip及其对应主机名。与DNS server完成相同功能。

192.168.1.120    ftpserver     ftp120

一般情况下hosts文件的每行尾一个主机,每行由三部分组成,每个部分由空格隔开。

第一部分:网络IP地址;

第二部分:主机名或域名;

第三部分:主机名别名;

 

一、安装

[root@desktop3 test]#yum -y install bind bind-utils bind-chroot

 

二、修改配置文件

DNS server IP:192.168.0.11;hostname:rhel6.test.com

1

[root@desktop3 test]# vim /etc/named.conf 注释4

options {

#       listen-on port 53 { 127.0.0.1; };

#       listen-on-v6 port 53 { ::1; };

        directory       "/var/named";

        dump-file       "/var/named/data/cache_dump.db";

        statistics-file "/var/named/data/named_stats.txt";

        memstatistics-file "/var/named/data/named_mem_stats.txt";

#       allow-query     { localhost; };

        recursion yes;

 

#       dnssec-enable yes;

        dnssec-validation yes;

        dnssec-lookaside auto;

 

        /* Path to ISC DLV key */

        bindkeys-file "/etc/named.iscdlv.key";

};

 

[root@desktop3 test]# vim /etc/named.rfc1912.zones 添加

zone "test.com" IN {

        type master;

        file "test.com";

        allow-update { none; };

};

 

zone "lsd.com" IN {

        type master;

        file "lsd.com";

        allow-update { none; };

};

 

#反向解析,可以不用

zone "0.168.192.in-addr.arpa" IN {

        type master;

        file "192.168";

        allow-update { none; };

};

 

2

[root@desktop3 named]# vim /var/named/test.com

$TTL 1D

@       IN SOA  rhel6.test.com. root.test.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        NS      rhel6.test.com.

        IN MX 5 mail.test.com.

rhel6   A 192.168.0.11               ;必须要顶格写

mail    A 192.168.0.11               ;必须要顶格写

www     A 192.168.0.11                  ;必须要顶格写

备注:rhel6.test.com不是不需要与主机名一致,但最好一致.

 

[root@desktop3 named]# vim /var/named/test.com

$TTL 1D

@       IN SOA  rhel6.test.com. root.test.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        NS      rhel6.test.com.

        IN MX 5 mail.lsd.com.

rhel6   A       192.168.0.11           ;必须要顶格写

mail    A       192.168.0.11

www     A       192.168.0.10

 

#反向解析,可以不用

[root@desktop3 log]# vim /var/named/192.168

$TTL 1D

@       IN SOA  rhel6-01.test.com. root.rhel6-01.test.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        NS      rhel6-01.test.com.

        11      PTR     rhel6-01.test.com.

        2       PTR     rhel6-02.test.com.

        100     PTR    

3

[root@desktop3 var]# chown named:named /var/named/ -R

[root@desktop3 var]# /etc/init.d/named restart

这样DNS server 配置完成.

 

三、客户端

[root@desktop3 named]# vim /etc/resolv.conf

nameserver 192.168.0.11

[root@desktop3 named]# dig

;; QUESTION SECTION:

; IN   A

;; ANSWER SECTION:

86400     IN   A     192.168.0.10

;; AUTHORITY SECTION:

lsd.com.         86400     IN   NS   rhel6.test.com.

;; ADDITIONAL SECTION:

rhel6.test.com.              86400     IN   A     192.168.0.11

可以看到已经正确解析。

 

这样就可以使用192.168.0.11上的DNS

指向 username@lsd.com指向192.168.0.11的邮件服务器。

指向username@test.com指向192.168.0.11的邮件服务器。

NO.11 Apache

 

httpd服务器 IP192.168.0.10

一、主目录默认为: /var/www/html/,修改主目录:

[root@desktop4 test2]# mkdir /ibm

[root@desktop4 test2]# vim /etc/httpd/conf/httpd.conf

#DocumentRoot "/var/www/html"

DocumentRoot "/ibm"

[root@desktop4 test2]# /etc/init.d/httpd restart

Stopping httpd:                                            [  OK  ]

Starting httpd: Syntax error on line 292 of /etc/httpd/conf/httpd.conf:

DocumentRoot must be a directory

 

                                                           [FAILED]

[root@desktop4 test2]# vim /etc/httpd/conf/httpd.conf

[root@desktop4 test2]# vim index.html

DirectoryIndex index.html index.html.var

[root@desktop4 test2]# ls -Z /ibm

-rw-r--r--. root root unconfined_u:object_r:default_t:s0 index.html

 

[root@desktop4 test2]# chcon -R -u system_u -t httpd_sys_content_t /ibm

[root@desktop4 test2]# ls -Z /ibm

-rw-r--r--. root root system_u:object_r:httpd_sys_content_t:s0 index.html

[root@desktop4 test2]# cd /ibm/

[root@desktop4 ibm]# vim index.html

[root@desktop4 ibm]# /etc/init.d/httpd restart

则主页为:/ibm/index.html

 

二、修改http 主页:

[root@desktop4 test2]# vim /etc/httpd/conf/httpd.conf

# DirectoryIndex: sets the file that Apache will serve if a directory

# is requested.

#

# The index.html.var file (a type-map) is used to deliver content-

# negotiated documents.  The MultiViews Option can be used for the

# same purpose, but it is much slower.

#

DirectoryIndex test.html index.html index.html.var

则主页为:/ibm/test.html

 

三、安装证书(不考)

[root@desktop3 yum.repos.d]# yum -y install mod_ssl

[root@desktop3 /]# ls /etc/httpd/conf.d/ssl.conf  有这个文件就ok

[root@desktop3 /]# yum -y install crypto-utils

[root@desktop3 /]# genkey --days 365 192.168.0.11

random seed from /etc/pki/tls/.rand.63146

output will be written to /etc/pki/tls/certs/192.168.0.11.crt

output key written to /etc/pki/tls/private/192.168.0.11.key

 

[root@desktop3 certs]# vim /etc/httpd/conf.d/ssl.conf

#SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateFile /etc/pki/tls/certs/192.168.0.11.crt

#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

SSLCertificateKeyFile /etc/pki/tls/private/192.168.0.11.key

 

[root@desktop3 certs]# cd /etc/pki/tls/certs

192.168.0.11.crt拷贝到客户端,在客户端的浏览器中手动添加证书192.168.0.11.crt

[root@desktop3 certs]# /etc/init.d/httpd restart

 

单元12  WEB服务器的附加配置

四、虚拟主机

[root@desktop4 /]# vim /etc/httpd/conf/httpd.conf     添加

NameVirtualHost 192.168.0.10:80

    #ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot /ibm

    ServerName

    #ErrorLog logs/dummy-host.example.com-error_log

    #CustomLog logs/dummy-host.example.com-access_log common

    #ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot /lsd

    ServerName

    #ErrorLog logs/dummy-host.example.com-error_log

    #CustomLog logs/dummy-host.example.com-access_log common

 

另外,需要修改DNS服务器。在192.168.0.11中:

[root@desktop3 test]# vim /etc/named.rfc1912.zones 添加

zone "ibm.com" IN {

        type master;

        file "ibm.com";

        allow-update { none; };

};

[root@desktop3 named]# vim /var/named/ibm.com

$TTL 1D

@       IN SOA  rhel6.test.com. root.test.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        NS      rhel6.test.com.

        IN MX 5 mail.lsd.com.

rhel6   A       192.168.0.11

mail    A       192.168.0.11

www     A       192.168.0.10

 

虚拟主机搭建完成。

指向 192.168.0.10/lsd/index.html 下内容;

指向 192.168.0.10/ibm/index.html 下内容;

指向 192.168.0.10/ibm/index.html 下内容(VirtualHost中的第一个)。

 

五、个人主页

[root@desktop3 named]# vim /etc/httpd/conf/httpd.conf

    #UserDir disabled

    #UserDir public_html

    UserDir myhtml

[root@desktop3 named]# su - test1

[test1@rhel6 ~]$mkdir myhtml

[test1@rhel6 ~]$cd myhtml

[test1@rhel6 ~]$echo "hello ddd" > index.html

[test1@rhel6 ~]$chmod -R 755 ../myhtml

[test1@rhel6 ~]$exit

[root@desktop3 named]# /etc/init.d/httpd restart

 

客户端访问:http//192.168.0.10/~test1

 

六、目录限制(在虚拟主机目录里完成)

[root@desktop3 named]# mkdir -p /test/ibm

[root@desktop3 named]# cd /test/ibm/

[root@desktop3 ibm]# mkdir restricted

[root@desktop3 ibm]# cd restricted/

[root@desktop4 restricted]# echo "restricted is good" > index.html

[root@desktop4 restricted]# vim /etc/httpd/conf/httpd.conf

    #ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot /test/ibm

    ServerName

    #ErrorLog logs/dummy-host.example.com-error_log

    #CustomLog logs/dummy-host.example.com-access_log common

   

      Order allow,deny

      allow from 192.168.0.11

   

[root@desktop4 restricted]# chcon -R -u system_u -t httpd_sys_content_t /test

[root@desktop4 restricted]# /etc/init.d/httpd restart

 

192.168.0.11客户端浏览器中输入:http:///restricted/,可以访问.其它主机都禁止访问.

 

七、.htaccess访问网站验证(注释虚拟主机部分,注意selinux安全上下文)

[root@desktop4 myhtml]# vim /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html"

[root@desktop4 myhtml]# vim /etc/httpd/conf/httpd.conf 添加

   

      AllowOverride AuthConfig

      Order allow,deny

      allow from all

   

[root@desktop4 myhtml]# mkdir /var/www/html/protect

[root@desktop4 myhtml]# cd /var/www/html/protect/

[root@desktop4 myhtml]# chcon -R -u system_u -t httpd_sys_content_t ../protect

[root@desktop4 protect]# echo "protect" > index.html 

[root@desktop4 protect]# vi .htaccess

     AuthName "Protect ccc by .htaccess"

     Authtype Basic

     AuthUserFile /var/www/html/protect/httpd.pass

     require user ccc

备注: 必须在/etc/httpd/conf/httpd.conf设置 AllowOverride AuthConfig 以允许这些指令生效。

[root@desktop4 protect]# htpasswd -c /var/www/html/protect/httpd.pass ccc

New password:

Re-type new password:

Adding password for user ccc

[root@desktop4 protect]# htpasswd /var/www/html/protect/httpd.pass ddd

 

客户端访问:http//192.168.0.10/protect

 

一个完整实例:

    DocumentRoot /var/www/html

    ServerName station.domain23.example.com

       

                AllowOverride AuthConfig

                Order allow,deny

                allow from 192.168.10.101

       

    DocumentRoot /var/www/virtual

    ServerName

NO.12    iptables

单元安全的网络通信

 

Netfilter:Linux的第三代防火墙

Linux的防火墙叫做”iptables,这种叫法不是很合适。Iptables是将防火墙规则写入内存的工具,正确的叫法应该是Netfilter/iptables

 

Netfilter将规则分成了四个表(RAW未列出)

Filter:Netfilter最重要的机制,执行封包的过滤动作,也就是防火墙的功能。

NAT  网络地址转换功能

Mangle:修改经防火墙内的封包的内容。比如修改封包的ttl值。

RAW:   负责加快封包穿越防火墙机制的速度。

Netfilter

INPUT:网络上其他主机送给本机的进程封包。

     如果我们要保护本机的httpd进程的话,应该是使用什么类型的封包呢?应该是INPUT,只有INPUT类型封包才会对本机的进程造成危害。

OUTPUT:本机进程多产生的封包,如firefox

FORWARD:  封包对本机而言只是“路过”,如果本机执行的是路由器的角色,会不会产生FORWARD类型的封包呢?

Prerouting  数据包刚刚到达防火墙时,改变其目的地址

Postrouting:数据包就要离开防火前之前改变其源地址   如:ip映射。

 

#service iptables save

命令会将规则保存在/etc/sysconfig/iptables文件中,考试必须要写.

 

[root@desktop3 restricted]# iptables -L --line-numbers

 

考试只写INPUT,因为自己是server.

只允许自己访问http

#iptables -A INPUT -s -p tcp --dport 80 -j ACCEPT

#iptables -A INPUT -p tcp --dport 80 -j REJECT

 

例子:

WEB服务器的INPUT链设置成默认拒绝

iptables -P INPUT DROP

然后再添加下面两条规则

-A是添加到规则的末尾;-I可以插入到指定位置

iptables -A INPUT -s 192.168.1.100 -j ACCEPT

iptables -L –line-number

iptables -I INPUT 3 -s 192.168.1.3 -j ACCEPT

 

portmap(nfs时映射端口) 端口   tcp-111

              udp-111

nfs   端口      tcp-2049

              udp-2049

httpd       端口      80

ftp   端口       tcp-20:21

postfix    端口       tcp-25

ssh  端口       tcp-22     考试只要用到这两个端口


阅读(1491) | 评论(0) | 转发(0) |
0

上一篇:Linux 音频相关

下一篇:Linux 获取外网 ip

给主人留下些什么吧!~~