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