ORACLE DB 的學習者們

2013年1月29日 星期二

CentOS FTP SERVER 的設定


vsftpd軟體安裝與設定

FTP Server設定,要把設定檔寫對,然後要把Selinux關閉就可以成功。
安裝:yum install vsftpd
設定檔:  /etc/vsftpd/vsftpd.conf


# A. 與匿名者有關的資訊:
anonymous_enable=YES        =>支援匿名者的登入使用 FTP 功能
anon_upload_enable=YES     => 匿名者可上傳檔案
anon_mkdir_write_enable=YES =>匿名者可寫入檔案

# B. 與用戶有關的設定
local_enable=YES                  =>支援本地端用戶登入
write_enable=YES                 =>允許使用者上傳資料 (檔案與目錄)
local_umask=022                   =>建立新目錄 (755) 與檔案 (644) 的權限

# C. 伺服器環境設定
dirmessage_enable=YES        =>若目錄下有 .message 則會顯示該檔案的內容
xferlog_enable=YES              =>登錄檔記錄,記錄在 /var/log/xferlog
connect_from_port_20=YES =>主動式連線功能
xferlog_std_format=YES       =>支援 WuFTP 的登錄檔格式
listen=YES                            =>以 stand alone 方式啟動 vsftpd
pam_service_name=vsftpd    => PAM 模組管理
userlist_enable=YES             =>支援 /etc/vsftpd/user_list 檔案內的帳號登入管控!
tcp_wrappers=YES              =>支援 TCP Wrappers 的防火牆機制

關閉 Selinux

  • 暫時關閉或開啟 Selinux 的方法:在命令列下指令: setenforce 0 (關閉),setenforce 1 (開啟)
  • 系統關閉或開啟Selinux的方法:
        vi /etc/sysconfig/selinux
        SELINUX=enforcing 改成--> SELINUX=disabled
        重新開機  就可以把selinux關掉

Selinux 的設定、查詢與改變

  • 常用的指令
    1. sestatus                          ==> 看Selinux的狀態
    2. sestatus -b                     ==> 看application管理狀態
    3. getenforce                      ==> 顯示Selinux模式
    4. setenforce 0                    ==> 暫時將Selinux模式設為寬容模式
    5. setenforce 1                    ==> 暫時將Selinux模式設為強制模式
      註:setenforce 必需在selinux enable狀態才有用
    6. ls -Z 檔名                      ==> 看SELinux對檔案管理狀態
    7. ls -dZ 資料匣                ==> 看SELinux對資料匣管理狀態
    8. chcon                             ==> 改變檔案、資料匣管理
    9. getsebool                        ==> 看application管理狀態
    10. setsebool                        ==> 變更application管理 
    11. restorecon                      ==> 復原成原有的 SELinux type
    12. semanage                        ==> 安全性本文的查詢與修改
      註:必需安裝policycoreutils-phython套件
    13. seinfo ==> 查看政策中規則數量
      註:必需安裝setools-console套件
    14. sealert -l ** ==> selinux 錯誤訊息詳細列出
      註1:必需安裝setroubleshoot及setroubleshoot-server
      註2:安裝完後需重開系統
    Selinux的範例

                                      [root@114-34-42-14 dljeng]# sestatus -b | grep ftp
                                      allow_ftpd_anon_write                       off
                                      allow_ftpd_full_access                       off
                                      allow_ftpd_use_cifs                           off
                                      allow_ftpd_use_nfs                            off
                                      ftp_home_dir                                     off
                                      ftpd_connect_db                               off
                                      ftpd_use_passive_mode                    off
                                      httpd_enable_ftp_server                    off
                                      tftp_anon_write                                 off

                                      查看目錄的狀態

                                      [root@114-34-42-14 home]# ls -dZ dljeng

                                      改變使得使用者可以登入個人家目錄

                                      drwx------. dljeng dljeng unconfined_u:object_r:user_home_dir_t:s0 dljeng
                                      [root@114-34-42-14 home]# setsebool -P allow_ftpd_full_access=1


                                      檢查selinux的錯誤
                                      log檔 /var/log/messages
                                      關鍵字 setroubleshoot
                                      cat /var/log/messages | grep setroubleshoot ==> 查尋錯誤
                                      依錯誤敘述找問題
                                      sealert -l xx(xx 錯誤代碼)

                                      開機時啟動FTPD等服務
                                      1. ntsysv
                                      2. chkconfig --level 5 vsftpd on
                                          chkconfig --list | grep vsftpd