3.7

防火墙内核功能,是一个模块,不是一项服务

/etc/inittab里面有运行级别

/etc/rc.d里面是不同级别的启动项软链接

chkconfig --del 

          --add  就是管理这些软链接的

 其中以k开头的关闭 s开头的开启

                     表

链                    filter          nat              mangle               

INPUT                  x                                X

FORWARD                X                                X

OUTPUT                 X              x                 X

PREPOUTING                            X                 X

POSTROUTING                           X                 X

查询功能

# iptables -L   默认查看filter

# iptables -t filter -L  指定查看哪个表 

# iptables -t nat -L   

# iptables -t mangle -L

# iptables -vnL --line-numbers    查看时有排号

# iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT  所有服务协议端口都开放

# iptables -I INPUT 1 -s 192.168.0.233 -j REJECT   插入策略 -I INPUT后指定插入的第几行

# iptables -D INPUT 1   指定删除第几行

# iptables -F INPUT  清楚火墙

# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 加入状态的

 -s 指定源   --dport指定端口 -p 指定协议

/etc/init.d/iptables save   之后可以用service 来管理启动

fstable.sh  也可以写道脚本上

 配置桥接时注意TYPE=Bridge B大写

复习下桥接

eth0

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

BRIDGE=br0

br0

DEVICE=br0

BOOTPROTO=static

ONBOOT=yes

TYPE=Bridge

IPADDR=192.168.0.222

NETMASK=255.255.255.0

GATEWAY=192.168.0.253

DNS1=192.168.0.254

rc.local是我自己定义的脚本 在rc.5之后启动

NAT

外网---0   0------------------------------------------------内网

          公有地址             网关

           在/etc/sysctl.conf里改一个参数

            net.ipv4.ip_forward = 1即可实现网关与公有地址的通信     公有地址即eth0(对外网卡的ip)网关即eth1的ip(对内网卡的ip)

            sysctl -p 激活

            

[root@desktop15 Desktop]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-dest 10.0.0.40:80(即内网的某一个ip)  外网进内网 访问内网的80端口

先加载ftp_nat 的模块

[root@desktop15 Desktop]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j DNAT --to-dest 10.0.0.40:21  外网进内网 用ftp服务

[root@desktop15 Desktop]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.106    内网出去 转化为0.106的公网地址, 期间肯定需要网关,但必须一步转化到对外的公ip

tracerout www.baidu.com 可以追踪路由

4.6

pdf中还没有中文

把/etc/fonts/conf.d 中的49号软链接删掉

ldd /usr/sbin/vsftpd(服务名字)下加载了libwrap模块即可支持tcp会绕

两个文件/etc/host.allow(优先级较高)

       /etc/host.deny

在deny里写vsftpd:ALL(所有主机都不可以登录我的机子)

vsftpd:127.本地

vsftpd:192.168.0. EXCEPT 192.168.0.222 只有222可以访问,其他的这个网段的机子都不可以访问

先装telnet-server  telnet

配置文件  /etc/xinetd.conf

chkconfig --list  可以打开服务

或者在配置文件里改一下

/etc/xinetd.d 下vi telnet里面就可以打开关闭服务

iostat -dNk 2 10 每2秒刷新一次 共显示10个  ,显示磁盘io使用情况

vmstat 2 10  显示交换使用情况 

1. 安装 aide 包。

2. 根据您的偏好自定义 /etc/aide.conf 基本不用改,自动生成的

3. 运行 /usr/sbin/aide --init 以构建初始化数据库。

4. 将 /etc/aide.conf 、 /usr/sbin/aide 和 /var/lib/aide/aide.db.new.gz 存储在安全的位置。

5. 将 /var/lib/aide/aide.db.new.gz 复制到 /var/lib/aide/aide.db.gz (预期名称)。改名字

运行 /usr/sbin/aide –check 以检查系统的不一致性。

以上这个只做本地文件系统的检查

********************************************

fstab 中 defaults 处要改成_netdev,用uuid挂载,查询uuid请用blkid

安装 iSCSI 发起端软件: iscsi-initiator-utils

iscsiadm -m discovery -t st -p 192.168.0.254 去发现目标

scsiadm -m node (-T iqn.2010-09.com.example:rdisks.demo -p 192.168.0.254)可能不加 -l

iscsiadm -m node (-T iqn.2010-09.com.example:rdisks.demo -p 192.168.0.254) -u  暂时断开,服务重启又挂上了

iscsiadm -m node -T iqn.2010-09.com.example:rdisks.demo -p 192.168.0.254 -o delete 永远断开,重启也没用

fuser -km /mnt就是忙得时候都给他干掉

******服务端**

vgs列出可用的vg

搞出一块lv后可以发布出去

步骤yum install scsi-target-utils-1.0.4-3.el6.x86_64 

在/etc/tgt/targets.conf写入  

<target iqn.2012-03 westos:server.target1>

    backing-store /dev/mapper/vol0-lee

 initiator-address 192.168.0.236

</target>

tgtadm --lld iscsi --mode target --op show 检查ok了么

之后换到236上用客户端的方法

4.7

加密appach服务

安装 yum groupinstall webserver

之中也会把需要的mod_ssl安装好

/etc/pki/tls/certs  公钥

 /etc/pki/tls/private 私钥

访问时用https,自动会有证书的获取检测

这是自动获得的

可以自己去做一个证书

[root@serverX ~]# yum install crypto-utils mod_ssl

2. 

[root@serverX ~]# genkey –days 365 serverX.example.com(这是自定义的名字,系统给的是localhost)之后看pdf,选项很清楚

[root@serverX ~]# openssl x509 -text < /etc/pki/tls/certs/serverX.example.com.crt

检测证书,查询其信息

这样在那两个文件下会生成相应的证书

&&***还有一种简单方法*****&&

在certs下有意个Makefile文件打开他,里面会有testcert,

[root@desktop15 private]# openssl genrsa 1024 > localhost.key

[root@desktop15 tls]# cd certs

[root@desktop15 certs]# make testcert

搞定

********************

激活虚拟主机后 /html下的主页就没用了

如果输入ip的话,解析的是第一个虚拟主机

首先激活虚拟主机

在/etc/httpd/conf/httpd.conf G到文件最下,稍微往上一点去掉#

之后添加虚拟主机

<VirtualHost *:80>

    DocumentRoot /var/www/virtualhost/www.example.com (这个是发布目录,如果想访问)

    ServerName www.example.com                           主页,则把html放在这里

    ErrorLog logs/www.example.com-error_log

    CustomLog logs/www.example.com-access_log common

</VirtualHost>

<VirtualHost *:80>

    DocumentRoot /var/www/virtualhost/www.westos.org

    ServerName www.westos.org

    ErrorLog logs/www.westos.org-error_log

    CustomLog logs/www.westos.org-access_log common

</VirtualHost>

在www下(httpd只可以访问www以下的目录)建立目录virtualhost在下面再建立两个目录 www.example.com www.westos.org 之后在每一个目录下都建立index.html 之后

做本地解析/etc/hosts  

  192.168.0.XX     www.example.com

  192.168.0.xx     www.westos.org

 如果不做解析,输出的是第一个虚拟主机

补充知识,先识别哪个dns要更改[root@desktop15 html]# vi /etc/nsswitch.conf 

[root@desktop15 www.baidu.com]# vi /etc/host.conf 

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7

mv -r /var/www/vitualhost  /

再把配置文件路径一改,啊怕其就启动不了了

因为selinux策略不对 

chcon -R --reference /var/www/html /virtualhost

重启服务就好

 restorecon -RFvv /virtualhost  这是回复默认

之所以用semanger 那个命令更改后,回复不了了,因为它改变的是默认属性,回复默认,也只能是现在这样了

先装 httpd-manual

http://   ip  /manual文档  就有文档看了

****************************

CGI

在/virtualhost/www.example.com/ (注意测策略已经改过了)下建立一个cgi目录 把其策略改了

chcon -R -t httpd_sys_script_exec_t cgi

里面建立test.cgi脚本

在啊怕其配置文件里 www.example.com 虚拟主机里的块中加入

Scriptalias /cgi/ "/virtualhost/www.example.com/cgi/" 

注意给一个执行权限,打开selinux

访问时就能固定一个网址的cgi了,否则在cgi-bin下的那个是所有虚拟主机共有的,谁都能用ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"因为配置文件中间有这么一句

测试http://www.example.com/cgi/test.cgi

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

分段考试控制rhce要考 一定记住是主机名

找到这块 注意读得顺序 ,这个与防火墙还不一样, 他是读到最后才算,如果先允许了,再拒绝就算拒绝了

<Directory "/var/www/cgi-bin">

    AllowOverride None

    Options None

    Order allow,deny

    Allow from all

</Directory>

这个是默认发布目录里面的,这一个块可以嵌套在虚拟主机中,即实现了对每一个虚拟主机的分段控制

5.6

给用户所要密码访问http

[root@desktop15 Desktop]# htpasswd -cm /etc/httpd/htpasswd lee

[root@desktop15 Desktop]# htpasswd -m /etc/httpd/htpasswd bob

c第二次不加了。。m其实也可以不加,是md5加密的意思

[root@desktop15 html]# cat /etc/httpd/htpasswd 可以查看一下

 authname   "desktop15.example.com"

 authtype    basic

 authuserfile  /etc/httpd/htpasswd

 require user   lee   #只允许lee通过密码访问

 </Directory>在主发布目录里写,也可以在虚拟主机中写

  

 authname   "desktop15.example.com"

 authtype    basic

 authuserfile  /etc/httpd/htpasswd

 require valid-user  #所有用户都可以通过密码访问

</Directory>

排错

ip地址,能否ping通,dns解析

火墙  

selinux  对服务的控制

配置文件里面允许登录与否

权限

5.7

默认只监听本机25端口,不监听对外接口

对配置文件进行修改 inet_interfaces = all

主配置文件/etc/postfix/main.conf

postconf -n  列出更改的设置

postconf -e  更改配置  加双引号是因为后边有转义字符,等号两边就要有空格,他是原本到配置文件的,如果不加引号,则不用了

postconf -d  列出默认配置

默认: mydestination = $myhostname, localhost.$mydomain, localhost改为

     mydestination = $myhostname, $mydomain, localhost 发送时可写域名,之后发的时候可以mail root@example.com

默认: myorigin = $myhostname

    改为myorigin=$mydomain更改我的名字为域名from的地址

先安装dovecot 之后改一下 vi /etc/dovecot/conf.d/10-mail.conf

mail_location = mbox:~/mail:INBOX=/var/mail/%u  #号去掉

重启服务

装雷鸟thoundbird

改一下yum源里的dvd.repo 为enable=1  

新建用户即可,里面两处需要改为本地ip

*********

下午

虚拟域名

在 /etc/postfix/virtual

里面的           virtual_alias_maps = hash:/etc/postfix/virtual

加入到主配置文件用 postconf -e “virtual_alias_maps = hash:/etc/postfix/virtual”

postmap virtual 生成virtual.db文件

westos.org   @example.com 写入到virtual文件中,前边是伪装的假地址,后边是真的

postmap virtual 生成virtual.db文件

伪名和群发

在/etc/aliases中

admin:      root     发给admin时发到了root

westos:    liyunlong415@gmail.com  发给westos则到了我的邮箱

linux:   :include:/etc/postfix/userlist  发给linux 则到了userlist里所有用户,即群发

建立userlist文件,写入用户

注意一定要执行 postalias /etc/aliases生成二进制数据库文件

#############

拒绝 拒绝一个ip就是与其有关的,不管收还是发都拒绝

 postconf -e "smtpd_client_restrictions =check_client_access hash:/etc/postfix/access" 这句话在/etc/postfix/access里面最后那块

 postmap access 生成数据文件

在/etc/postfix/access里加入 

192.168.0.138 REJECT

&&测试方法: 没有雷鸟时用telnet 192.168.0.138 25

ehlo  lee 打个招呼

mail from: lee@desktop138.example.com

rcpt to: lee@desktop138.example.com

 发现错误

#############

对用户的收发进行控制

禁止lee发邮件

[root@desktop138 postfix]# postconf -e "smtpd_sender_restrictions (这个在postconf -d里面有) =check_sender_access hash:/etc/postfix/sender "  加到主文件

vi /etc/postfix/sender  lee@example.com    REJECT

[root@desktop138 postfix]# postmap sender  生成数据文件db

[root@desktop138 postfix]# service postfix reload

禁止lee收邮件

[root@desktop138 postfix]# postconf -e "smtpd_recipient_restrictions =check_recipient_access hash:/etc/postfix/recipient, permit_mynetworks, reject_unauth_destination

vi /etc/postfix/recipient

hostname 可以临时改变主机名,主机名为名字+域名

dovecot放在收件端里,用途是管收件传送的

6.6

只做解释,udp就足够了,

其他的还得用tcp

安装bind,/bind-chroot就变成服务器了

若安装了bind-chroot就更加的安全

启动named服务之后,则在chroot下的etc就会存在文件了,

之后在/etc/named/chroot/etc/named.conf中编辑选项

可以加入转发地址 我的机子做了服务器后,但是缓存少

forwarder 192.168.0.254 

重启服务就好,本来需要到顶级服务器上去解析的,这回在254

上就可以解析了,快很多

nfs

启动rpcbind

启动nfs

/etc/exports

写入 /nfstest  192.168.0.0/24(ro)

 exportfs  -rv  输出文件系统

在客户端可以用showmount -e 192.168.0.xx看一下共享

之后可以挂载  mount 192.168.0.xx:/nfstest  /mnt

在里面无法写,因为服务器设置为只读,把服务端改为(rw)则变成权限问题

在服务端改为777,则好了,因为他的默认主人为nfsnobody

每次更改完配置要执行重启,还有exportfs -rv

注意火墙的问题