RHCE部分
一、 开启SELinux
SELinux必须是Enforcing状态
[root@cracker ~]# setup
二、 搭建NFS服务
[root@cracker ~]# yum -y install nfs-utils
共享出/data目录
允许172.16.0.0/16读写方式访问
[root@cracker ~]# vi /etc/exports
/data 172.16.0.0/16(rw,async)
[root@cracker ~]# chkconfig nfs on
[root@cracker ~]# service nfs start
三、 搭建FTP服务
匿名用户可以访问ftp
student1和student2登录ftp后,只能在自己的家目录下
student3不能登录ftp
允许从example.com这个域来访问
不允许从cracker.org来访问
[root@cracker ~]# yum -y install vsftpd
[root@cracker ~]# vim /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
[root@cracker ~]# echo 'student1' > /etc/vsftpd/chroot_list
[root@cracker ~]# echo 'student2' >> /etc/vsftpd/chroot_list
[root@cracker ~]# echo 'student3' >> /etc/vsftpd/ftpusers
[root@cracker ~]# getsebool -a | grep ftp
ftp_home_dir --> off
[root@cracker ~]# setsebool -P ftp_home_dir on
[root@cracker ~]# vim /etc/hosts. deny
vsftpd:ALL
[root@cracker ~]# echo 'vsftpd:172.16.0.0/255.255.0.0' >> /etc/hosts.allow
[root@cracker ~]# whereis vsftpd
vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz
[root@cracker ~]# ldd /usr/sbin/vsftpd | grep libwrap.so
libwrap.so.0 => /lib/libwrap.so.0 (0x00170000)
测试:分别用student1 student2 student3 student4 登录ftp并查看当前路径
四、 配置samba服务?
共享出/yangbang目录
只有172.16.0.0/16和192.168.1.0/24和127.0.0.1可以访问
共享出的名字是[sharefile],默认可以查看到该共享
只有student组才有写的权限
student组成员的家目录也要被共享
设置Netbios name=GUESTX
[root@cracker ~]# yum -y install samba
[root@cracker ~]# vim /etc/samba/smb.conf
; passdb backend = tdbsam //注释掉这行
netbios name = GUEST2002 //去掉注释并改名
[sharefile]
comment = share file
path = /yangbang
browseable = no
write list = @student
hosts allow = 172.16.0.0/16 192.168.1.0/24 127.0.0.1
[root@cracker ~]# service smb restart
[root@cracker ~]# chkconfig smb on
[root@cracker ~]# getsebool -a | grep samba
samba_enable_home_dirs --> off
[root@cracker ~]# setsebool -P samba_enable_home_dirs on
[root@cracker ~]# chgrp student /yangbang/
[root@cracker ~]# chmod g+w /yangbang/
[root@cracker ~]# chcon -R -t samba_share_t /yangbang/
[root@cracker ~]# testparm //测试samba的配置文件
[root@cracker ~]# smbclient //192.168.142.200/sharefile -U student
Password:
Domain=[GUEST2002] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
smb: \> pwd
Current directory is \\192.168.142.200\sharefile\
五、 搭建ssh服务
puser用户不能远程登录
不允许cracker.org这个域的访问
[root@cracker certs]# whereis sshd
sshd: /usr/sbin/sshd /usr/share/man/man8/sshd.8.gz
[root@cracker certs]# ldd /usr/sbin/sshd | grep libwrap.so
libwrap.so.0 => /lib/libwrap.so.0 (0x0096b000)
[root@cracker certs]# vim /etc/hosts.deny
sshd,vsftpd:ALL
[root@cracker certs]# vim /etc/hosts.allow
sshd:192.168.142.0/255.255.255.0 192.168.0.0/255.255.255.0
[root@cracker certs]# vim /etc/ssh/sshd_config
//增加以下行
DenyUsers puser
[root@masternis pub]# service sshd restart
六、 搭建web服务
站点的名字:stationX.example.com
从172.16.254.254:/var/ftp/pub目录下下载webdoc.gz,解压后,挂载到你的站点的的DocumentRoot下,就能看到一个index.html,不用修改index.html的内容
保证能默认访问到该文件
[root@cracker ~]# vim /etc/httpd/conf/httpd.conf
NameVirtualHost 172.16.0.100
<VirtualHost 172.16.0.100>
ServerAdmin [email protected]
DocumentRoot /var/www/html
ServerName station100.example.com
ErrorLog logs/station100.example.com-error_log
CustomLog logs/station100.example.com-access_log common
</VirtualHost>
[root@cracker ~]# mkdir /web
[root@cracker ~]# mount 192.168.0.254:/ftp/pub /mnt
[root@cracker ~]# cp /mnt/webdoc.gz /web
[root@cracker ~]# gunzip /web/webdoc.gz
[root@cracker ~]# file /webdoc
Webdoc : linux rev 1.0 ext2 filesystem data
[root@cracker ~]# mount -o loop /web/webdoc /var/www/html
[root@cracker ~]# ls /var/www/html/
[root@cracker ~]# vim /etc/fstab
#加入下面一行
/web/webdoc /var/www/html ext2 defaults,loop 0 0
[root@cracker ~]# restorecon -R /var/www/html/
[root@cracker ~]# Chcon -R -t httpd_sys_content_t /var/www/html/
[root@cracker ~]# ll -Z /var/www/html
[root@cracker ~]# vim /etc/hosts
172.16.0.100 station100.example.com station100 //加入该行
[root@cracker ~]# service httpd restart
[root@cracker ~]# chkconfig httpd on
……
七、 搭建sendmail服务
要能接受从远程和本地发过来的邮件
tudou这个用户要能接收到从远程发过来的邮件
发给tudou,kevin必须也能收到
[root@cracker ~]# yum -y install sendmail-cf
[root@cracker ~]# vim /etc/mail/sendmail.mc
:set nu
#去掉52 53行前面的注释dnl+空格
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
:116 //跳转到116行
:s/127.0.0.1/0.0.0.0 //替换127.0.0.1到0.0.0.0
[root@cracker ~]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
[root@cracker ~]# vim /etc/mail/local-host-names
example.com //添加这一条本地域名,使之可以接受远程的邮件
[root@cracker ~]# service sendmail restart
[root@cracker ~]# service saslauthd start //邮件发信认证
[root@cracker ~]# chkconfig saslauthd on
[root@cracker ~]# vim /etc/aliases
//增加以下行
todd: todd,kevin,student1
[root@station37 ~]# newaliases //更新aliases数据库
[root@cracker~]# telnet 172.16.0.100 25
ehlo 172.16.0.100
[root@cracker~]# echo 'hello' | mail -s "test123" [email protected]
如果不成功 需检查/var/spool/mail下的标签属性
[root@cracker~]# restorecon /var/spool/mail/ -R
本实验成功的前提:1.hostname要正确(hosts里面加入本机域名 network里面对应正确) 2.标签属性要正确 3。aliases数据库要更新
八、 搭建dovecot服务
打开pop3s,pop3,imap,imaps功能,且要为dovecot生成private key和证书
证书的内容要按照下面的要求生成
设置Common Name为stationX.example.com,
设置Email Address为[email protected]
[root@cracker ~]# yum -y install dovecot
[root@cracker ~]# chkconfig dovecot on
[root@cracker ~]# vim /etc/dovecot.conf
:20 去掉该行注释
protocols = imap imaps pop3 pop3s
:39 去掉注释 监听所有
listen = [*]
:91 去掉注释
:92 去掉注释
ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem
ssl_key_file = /etc/pki/dovecot/private/dovecot.pem
[root@cracker ~]# cd /etc/pki/tls/certs/
[root@cracker certs]# make dovecot.pem
//必填主机名
common Name (eg,your name or your server’s hostname) [ ]: stastion200.example.com
[root@cracker certs]# cp dovecot.pem /etc/pki/dovecot/private/dovecot.pem
[root@cracker certs]# cp dovecot.pem /etc/pki/dovecot/certs/dovecot.pem
[root@cracker certs]# service dovecot restart
[root@cracker certs]# openssl
OpenSSL> s_client -host 192.168.0.37 -port 995
九、 配置squid服务
监听8080端口
只允许example.com这个域可以使用你这个代理
[root@cracker ~]# vim /etc/squid/squid.conf
http_port 8080 // http_port 3120改
acl allowdomain srcdomain .example.com //在acl CONNETC下面增加
http_access allow localhost //在此行下面增加
http_access allow allowdomain
http_access deny all
[root@cracker ~]# chkconfig squid on
[root@cracker ~]# service squid start
十、 设置iptables服务
只允许example.com这个域的用户可以使用imaps和pop3s
只允许 cracker.org这个域的用户可以用imap和pop3
[root@cracker ~]# iptables -F //删除默认规则
[root@cracker ~]# iptables -A INPUT -p tcp -s ! 192.168.0.0/24 --dport imaps -j REJECT //example.com
[root@cracker ~]# iptables -A INPUT -p tcp -s ! 192.168.0.0/24 --dport pop3s -j REJECT //example.com
[root@cracker ~]# iptables -A INPUT -p tcp -s ! 192.168.1.0/24 --dport imap -j REJECT //cracker.org
[root@cracker ~]# iptables -A INPUT -p tcp -s ! 192.168.1.0/24 --dport pop3 -j REJECT //cracker.org
[root@cracker ~]# iptables -L -n //检查规则
[root@cracker ~]# service iptables save //保存规则
[root@cracker ~]# vim /etc/sysconfig/iptables
十一、 设置基于域名的虚拟主机
主机名:wwwX.example.com
DocumentRoot:/var/www/test
从172.16.254.254:/var/ftp/pub/目录下下载www.html,保证能默认访问到此网页
[root@station100 ~]# mkdir /var/www/test
[root@station100 ~]# lftp 172.16.100.100
lftp 172.16.100.100:/> cd pub/
lftp 172.16.100.100:/pub>get www.html
lftp 172.16.100.100:/pub> exit
[root@station100 ~]# mv www.html /var/www/test/index.html
[root@cracker ~]# restorecon -R /var/www/test/
[root@cracker ~]#vim /etc/httpd/httpd.conf
<VirtualHost 172.16.0.100>
ServerAdmin [email protected]
DocumentRoot /var/www/test
ServerName www100.example.com
ErrorLog logs/www100.example.com-error_log
CustomLog logs/www100.example.com-access_log common
</VirtualHost>
[root@cracker ~]# vim /etc/hosts
172.16.0.100 www100.example.com www100 //加入该行
[root@cracker ~]#service httpd restart
[root@cracker ~]#chkconfig httpd on
十二、 编写shell脚本
脚本位于/bin/目录下,名称:test.sh
脚本有一个参数,利用脚本判定如下内容:
#test.sh kernel
脚本输出:user
#test.sh user
脚本输出:kernel
#test.sh aaaa
脚本输出:error
本文出自 “相对于未来,我如此的恋旧” 博客,谢绝转载!