發表文章

目前顯示的是 9月, 2017的文章

Centos 7:安裝openldap servers + clients

現今網路常用的服務很多,例如apache、mail、samba等,在這些常用的服務裡,會有使用者帳號的問題,每當要使用mail時就要輸入mail的帳號密碼,存取samba要有samba的帳號密碼,服務越多要記的帳號密碼就更多,如果需要定期修改密碼就更累了。 LDAP〈Lightweight Directory Access Protocol 輕型目錄存取協定〉是一種目綠服務,可用來記錄各種的人員資訊,就像是通訊錄一樣。進階的做法,也可以拿來做帳號整合,若是AP有支援,那麼要使用同一組帳號密碼就不再是難事了。 LDAP,可以把他想成資料庫的一種,對於有資料庫設計經驗的人應該不成問題,但若之前都沒有碰過,那就把LDAP想成組織圖一樣,只是這個組織圖是構築在你的腦海裡,所以最好準備紙筆,把架構畫出來,才好進行設定。組織圖大約如下:                     testuse.example.com             /          \                   login         company                  /   \                /     \                         user group   unit     customer                          /     |     \                           mis account hr 若要表示一筆人員記錄,可使用:cn=user name,ou=gourp,dc=your,dc=domain。 若是上面的組織圖來說,在mis部門下有一位coodie,那麼對於這位coodie的表示法為:cn=coodie,ou=mis,ou=unit,ou=company,dc=testuse,dc=idv,dc=tw。 上面這一長串,我們稱之為一個 dn 值,在LDAP的表示法,都是由小到大,也就是人名先表示、再表示部門、單位(這和西方的門牌表示法是一樣的)。 LDAP也可以使用中文,例如王小華是在mis部門下,依名字設定dn,值為: cn=王小華,ou=mis,ou=unit,ou=company,dc=testu

自訂Apache錯誤訊息頁面

在使用apache網站的時候,碰到錯誤訊息頁面,一般都是以伺服器預設的頁面呈現出來。如果想要自訂錯誤訊息頁面,最簡單的方是就是修改httpd.conf。 [root@testuse ~]# vim /etc/httpd/conf/httpd.conf # line 328~335 # Customizable error responses come in three flavors: # 1) plain text 2) local redirects 3) external redirects # # Some examples: #ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.htm l # 修改成自己想要的訊息內容 ErrorDocument 500 "欲顯示出來的錯誤訊息文字" ErrorDocument 404 "欲給網友看的錯誤訊息網頁檔案名稱 ErrorDocument 403 "欲給網友看的cgi檔案名稱" ErrorDocument 402 "http://欲給網友看的外部錯誤訊息網址" 我通常會設定代碼404的找不到網頁,以及代碼403的禁止存取這兩個錯誤訊息頁面。 Apache常見的錯誤訊息代碼的說明如下: ErrorDocument 400 HTTP_BAD_REQUEST 錯誤的要求 ErrorDocument 401 HTTP_UNAUTHORIZED 未授權的動作 ErrorDocument 403 HTTP_FORBIDDEN 該動作禁止存取 ErrorDocument 404 HTTP_NOT_FOUND 找不到檔案或目錄 ErrorDocument 405 HTTP_METHOD_NOT_ALLOWED 系統不允許該要求的方法 Error

Apache的一些安全性設定

設定限制目錄瀏覽的方法 很多人設定Apache都會碰到的問題之一,就是該怎麼限制別人瀏覽自己網站的目錄。如果沒限制,目錄內所有檔案〈包含有更新但還未公開〉的位置都會被看到。 有幾種方式可以達成此目的: 1.在不想公開給外面看到的每個目錄下,都放一個內容空白的index.html,讀取該目錄就會出現空白或是你寫在該檔案裡的設定轉址頁面,但這僅適合用在免費網頁空間,一般不建議這樣使用。 2.使用.htaccess檔案,藉由規則來限定存取範圍,但設定上還是頗麻煩。 3.修改apache的設定檔httpd.conf [root@testuse ~]# vim /etc/httpd/conf/httpd.conf # line 144 Options Indexes FollowSymLinks # 移除Indexes Options FollowSymLinks    # 可加選項MultiViews # 重啟apache [root@testuse ~]# systemctl restart httpd 之所以去掉Indexes這個功能,是讓Apache不自動產生目錄的索引,就不會出現網站某一個文件目錄列出目錄頁面的情形。如果將Indexes拿掉,點選連結目錄就不會秀出目錄來,會改成顯示403 forbidden的訊息頁面,而這403 forbidden的訊息頁面內容是可自訂的,可以參考本站的 自訂Apache錯誤訊息頁面 。 1.MultiViews,這是可以讓Apache送出多國語言支援的頁面。 2.FollowSymLinks,是讓Apache能夠連到其它的目錄去執行,如果是Windows系統的使用者,建議將這個功能拿掉。 關閉相關模組版本 修改apache的設定檔httpd.conf [root@testuse ~]# vim /etc/httpd/conf/httpd.conf # 在置底處新增 ServerTokens Prod     # 告知Apache在回傳標頭資訊時,只要標示產品名稱"Apache"即可 ServerSignature Off     # 告知Apache在產生錯誤頁面或其他訊息時,不顯示Apache版本 TraceEnable

CentOS 7:安裝Net2ftp

圖片
net2ftp是一個網頁版(web base)的FTP用戶端網站,非常簡單安裝及使用,Download如下 https://www.net2ftp.com/homepage/download.html net2ftp可搭配httpd、php、mysql使用,這邊我沒用到mysql。 我的環境是安裝了proftpd,並使用net2ftp,來達成"使用web介面的ftp"。 安裝所需軟體 [root@proftpd ~]# yum install -y httpd php 下載net2ftp並解壓縮 [root@proftpd ~]# yum install -y wget unzip    [root@proftpd ~]# mkdir temp ; cd temp  [root@temp ~]# wget http://www.net2ftp.com/download/net2ftp_v1.1.zip [root@temp ~]# unzip net2ftp_v1.1.zip 將"files_to_upload"裡面的檔案都放到網頁目錄位置 [root@proftpd ~]# mv net2ftpv1.1/files_to_upload/* /var/www/html 修改temp資料夾的權限 [root@proftpd ~]# chmod 777 /var/www/html/temp 如果有開啟SELinux需要開放權限 [root@proftpd ~]# setsebool -P ftp_home_dir on    # -P選項會將預設值從off改為on [root@proftpd ~]# setsebool -P httpd_enable_ftp_server on [root@proftpd ~]# setsebool -P httpd_can_network_connect on 啟動服務 [root@proftpd ~]# systemctl start httpd [root@proftpd ~]# systemctl enable httpd 設定php.ini # 設定最大單一檔案上傳大小 [root@proftpd ~]#

CentOS 7:安裝Proftpd〈提供 FTP、FTPs與SFTP〉

Profptd是「Professional FTP daemon」的縮寫,與vsFTPd 一樣,都是強調安全性的 FTP 伺服軟體,且Proftpd本身有支援SFTP的module,因此不需要另外使用SSHd的SFTP模組,在權限控管上比較靈活,在設定上也相對單純,且也支援chroot功能。 安裝EPEL Repository,可以參考本站的 安裝EPEL Repository 安裝proftpd [root@proftpd ~]# yum install -y proftpd   確認selinux是關閉的狀態 [root@proftpd ~]# getenforce Disabled 設定proftpd [root@proftpd ~]# vim /etc/proftpd.conf # line 77:編輯 ServerName "proftpd" # line 81:新增 Port 21 PassivePorts 40000 45000 設定/etc/hosts,加入'192.168.10.7 proftpd' [root@proftpd ~]# echo '192.168.10.7 proftpd' >> /etc/hosts [root@proftpd ~]# tail /etc/hosts 192.168.10.7    proftpd 設定ftps服務 # 安裝openssl [root@proftpd ~]# yum install -y openssl # 建立certificate  [root@proftpd ~]# openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem Generating a 2048 bit RSA private key ..+++ .......+++ writing new private key to '/etc/pki/tls/certs/proftpd.pem' -----