發表文章

dns(bind9)注意事項

設定reverse_zone並使用private_ip(例如192、172)時會遇到的問題: http://phorum.study-area.org/index.php/topic,72463.0.html 用dnssec-keygen產生key時如果卡很久,可改用dnssec-keygen -r /dev/urandom。 By default, dnssec-keygen uses /dev/random - the generation is slow, so much more in less busy systems. Other alternative is using /dev/urandom,/dev/urandom is a pseudo-random generator. 正反解的zone_forward設定範例: zone "intranet-twcc.ai" IN {    type forward;    forwarders { 172.17.79.173; }; }; zone "16.172.in-addr.arpa" IN {    type forward;    forwarders { 172.17.79.173; };    forward only; };

Ubuntu 16.04:安裝openldap server

圖片
安裝所需軟體 [root@openldap ~]# apt install -y slapd ldap-utils 設定LDAP管理密碼 重新配置slapd [root@openldap ~]# dpkg-reconfigure slapd 省略OpenLDAP配置?否 基于輸入的domain_name建立base_DN。 輸入組織(公司)名稱 設定LDAP管理密碼 確認密碼 後端DB使用類型,這邊選"MDB",因為速度較快 清除slapd時是否一併刪除DB,這邊選"NO" 移動舊資料庫,保持預設"是" 允許LDAPv2協議,保持預設"是" [root@openldap ~]# dpkg-reconfigure slapd Moving old database directory to /var/backups: - directory unknown... done. Creating initial configuration... done. Creating LDAP directory... done. 設定ldap.conf,取消BASE、URI的注釋並更改為你的設定 [root@openldap ~]# vim /etc/ldap/ldap.conf BASE    dc=ai,dc=nchc,dc=org,dc=tw URI     ldap://localhost(因為是在本機設定,所以設定為localhost) 測試 [root@openldap ~]# ldapsearch -x # extended LDIF # # LDAPv3 # base <dc=ai,dc=nchc,dc=org,dc=tw> (default) with scope subtree # filter: (objectclass=*) # requesting: ALL # #

Ubuntu 16.04:安裝ldap client

圖片
安裝所需軟體 [root@testuse2 ~]# apt install -y libnss-ldap libpam-ldap ldap-utils nscd 輸入LDAP Server的IP: 輸入LDAP search base的DN: 選擇LDAP版本: 選擇是否讓LDAP的admin帳戶有local root的權限: 此選項請選no: 輸入LDAP的admin帳戶資訊: 輸入LDAP的admin密碼: 修改/etc/nsswitch.conf的內容,新增底下的綠色字: [root@testuse2 ~]# vim /etc/nsswitch.conf passwd:                               compat  ldap group:                                  compat  ldap shadow:                               compat  ldap 如果想讓user的家目錄自動被建立的話,可修改/etc/pam.d/common-session,並重啟nscd服務: [root@testuse2 ~]# vim /etc/pam.d/common-session #在最面新增此行 session required        pam_mkhomedir.so skel=/etc/skel umask=077 [root@testuse2 ~]# service nscd restart 用getent查詢ldap帳號: root@testuse2:~# getent passwd ldapuser1 ldapuser1:x:9999:100:ldapuser1:/home/ldapuser1:/bin/bash

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 ~]#