#author("2018-03-05T17:50:04+09:00","hasegawa","hasegawa") #contents *backportsの利用 [#m859f96a] http://backports.debian.org/~ /etc/apt/source.listに deb http://http.debian.net/debian stretch-backports main contrib non-free を追加。 # apt update backportsのpackageをインストールする場合は、 # apt install -t stretch-backports install "package" *追加ソフトのインストール [#d7ca6870] # apt install emacs mew roundcube mailman awstats sudo ntp fail2ban tcsh gitlab-ce clamav spamassassin *ldapのインポート [#h9125b64] # atp-get install slapd ldap-utils ldap管理者パスワードを適当に設定 # /etc/init.d/slapd stop # dpkg-reconfigure slapd DN名:phys.shinshu-u.ac.jp O名: heplab MDBを選択 slapdをパージした時にデータベースを削除しない 古いldapv2を使わない。 /var/backupに移動する。 現azusa上で、全てのアカウント情報をldif形式のファイルにダンプする。 # /sbin/service slapd stop # /usr/sbin/slapcat -l all.ldif # /sbin/service slapd start ダンプしたファイルを新azusa上にコピーし、不必要な部分(一番上のdn: dc=phys..とdn: cn=admin...のエントリ、この二つは、新azusaにslapdをインストールし、reconfigureしたときに設定しているので、既にエントリに含まれている)を削除する。ou=Groupを追加する。 $ cat >Group.ldif dn: ou=Group,dc=phys,dc=shinshu-u,dc=ac,dc=jp objectClass: organizationalUnit ou: Group ^C $ %%後述するpostfixのメールを受信するために、mailというattributeが必要だが、これはstructural object classのobjectClass: accountではなく、objectClass: inetOrgPersonである。そのため、現azusaからダンプしたそれぞれのエントリに対し、account→inetOrgPersonに置き替え、さらに"sn:"(surnameの意味)と"mail:"のattributeを追加する。%%その後、 # /etc/init.d/slapd stop # /usr/sbin/slapadd -l Group.ldif # /usr/sbin/slapadd -l all.ldif # /etc/init.d/slapd start とすれば良いはず。 *ldapの設定 [#cf2ed74f] **uid>=1000のユーザ(ldapで認証するユーザ)に対して最初にldapで認証する [#z0e5ff91] /etc/pam.d/common-authで、 auth [success=2 default=ignore] pam_unix.so nullok_secure auth [success=1 default=ignore] pam_ldap.so use_first_pass を次のように変更する。 auth [success=1 default=ignore] pam_succeed_if.so uid >= 1000 quiet auth [success=2 default=ignore] pam_unix.so nullok_secure atth [success=1 default=ignore] pam_ldap **passwdでパスワードを変更できるようにする。 [#fce23f66] passwdでパスワードの変更をできるようにするために、/etc/pam.d/common-passwordで password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass を password [success=1 user_unknown=ignore default=die] pam_ldap.so try_first_pass に変更する。さらに、簡単なパスワードを禁止する。 # apt-get install libpam-cracklib /etc/pam.d/common-passwordを変更する。 password requisite pam_cracklib.so retry=3 minlen=N dcredit=-n ucredit=-m lcredit=-k ocredit=-l difok=3 などとする。minlen=Nは最低N文字を要求、dcredit=-nは数字がn文字以上含まれる、ucredit=-mは大文字英字がm文字以上含まれる、lcredit=-kは小文字英字がk文字以上含まれる、ocredit=-lは記号がl文字以上含まれることを要求する。 **pam_ldap.secretの設定 [#l80dcb29] passwdで変更できるようにするために、pam_ldap.secretにldap rootのパスワードを書いておく。 # cat (ldap rootのパスワード) > /etc/pam_ldap.secret # chmod 600 /etc/pam_ldap.secret **syslogに"bdb_equality_candidates (uid) not indexed"のようなメッセージが出る場合 [#kb8c095f] ldapmodifyを使う。ただし、cn=admin,cn=configの管理者パスワードolcRootPWが/etc/ldap/slap.d/cn=config/olcDatabase={0}config.ldifに設定されていないので、直接編集して書き込み、設定が終わったらもとに戻す。 $ slappasswd -s password {SSHA}qGQ06BQx2QtRzjQWdTMUph5JJ0hLU/uh これを書き込む $ echo 'olcRootPW: {SSHA}qGQ06BQx2QtRzjQWdTMUph5JJ0hLU/uh' >> /etc/ldap/slap.d/cn\=config/olcDatabase\=\{0\}config.ldif slapdを再起動する。 # /etc/init.d/slapd restart ログにcheck sum errorが出るが、これはファイルを手で編集したため。変更後に編集した部分をもとに戻せばよい。~ 変更する内容を書き込んだファイルを用意する。 $ cat > index.ldif dn: olcDatabase={1}hdb,cn=config changeType: modify add: olcDbIndex olcDbIndex: uid eq ^C 変更する。 # ldapmodify -x -D "cn=admin,cn=config" -W -f index.ldif Enter LDAP Password: password /etc/ldap/slap.d/cn=config/olcDatabase={0}config.ldifをもとに戻して、一応、slapdを再起動。 # /etc/init.d/slapd restart **ldapクライアントの設定 [#o51eacb7] [[計算機関係/Debian(stretch)をインストール#ke39ca55]] *ローカルユーザのインポート [#y3ccc3e8] hepl, tvrec, scecalの/etc/passwd, /etc/shadowをインポートする。 *メールサーバの設定 [#d8cf89e0] **smtpの設定 [#v963072d] このページ - https://wiki.debian.org/Exim - http://flammable.jp/blog/2013/03/debian-squeezesmtp.html - http://www.exim.org/exim-html-current/doc/html/spec_html/ch-encrypted_smtp_connections_using_tlsssl.html を参照。 証明書関係は結局上のURLの通りに設定すればよいのだが、 - http://d.hatena.ne.jp/ozuma/20130510/1368114329 - http://webos-goodies.jp/archives/simple_way_of_creating_ssl_certification.html が参考になる。 **dovecotのインストール [#hc9417a0] # apt install dovecot gidがsystem userの場合、認証がfailする。/etc/dovecot/conf.d/10-mail.confで、first_valid_gidを設定する。 *** courier-imapからdovecotへの移行 [#q5bf15a0] http://vogel.at.webry.info/201310/article_1.html namespace inbox { separator = . prefix = INBOX. の変更が必要。 ** FAM/Gaminがうまく動いていない [#i4d4069f] ThunderbirdでIMAPを使っている場合、起動時に次のようなエラーメッセージ Filesystem notification initialization error -- contact your mail administrator (check for configuration errors with the FAM/Gamin library) がでたら、FAMがうまく動いていない模様。代わりにgaminを使う。 # apt install gamin ** ylmf-pcからのEHLOをblockする。 [#kd5d3f33] -exim4の設定でブロックする方法~ /etc/exim4/exim4.conf.templateに acl_smtp_helo = acl_check_helo acl_check_helo: #BEGIN ACL_SMTP_HELO_BLOCK drop condition = ${if eq {$sender_helo_name}{ylmf-pc} {yes}{no}} log_message = HELO/EHLO - ylmf-pc blocked message = I Nailed You at HELO accept #END ACL_SMTP_HELO_BLOCK を追加し、exim4をreload。 - iptablesでブロックする方法 # iptables -A INPUT -p tcp --dport 25 -m string --string 'ylmf-pc' --algo bm -j DROP **spamassassin [#v813bc52] # apt install spamassassin /etc/default/spamassassinで ENABLED=1 とする。 **sslを使ったアクセスに限定する。 [#u6977312] /etc/squirrelmail/apache.confの最後にhttpをhttpsに強制的に書き換える方法がある。ここを有効にする。<Location /squirrelmail>を適当に変更する。このサイトでsslを有効にしなければならないので、/etc/apache2/sites-available/default-sslのDocumentRootを適当に変更する。 # a2ensite default-ssl # a2enmod ssl # a2enmod rewrite を行う。 *mewの設定 [#u2204d2c] ローカルユーザもpop,imap,smtpを利用する際に認証が必要となる。特に、smtpでメールを送る際に.mew.elでmew-smtp-userの設定が必要になる。 (setq mew-smtp-user "ユーザID") pop3,imapはmew-pop-user, mew-imap-userにログイン名(ユーザID)がデフォルト値になっているので設定する必要がないが、mew-smtp-userのデフォルト値は"ユーザID@azusa.shinshu-u.ac.jp"になっているので、この値を設定しないと、認証できなくなる。 *apache2の設定 [#xca16e85] -default設定をカスタマイズ~ 現行azusaから、/etc/apache2/site-available/default.hepl.confとdefault-ssl.hepl.confをコピーする(a2enmodは拡張子に.confがないとERROR: Site XXX does not exist!とエラーとなる)。 -ユーザのpublic_htmlをみられるようにする。/etc/apache2/mod-availableに利用可能なモジュールがあるので、この中の、userdirがそのモジュール。有効にするには、 # a2enmod userdir -通常ユーザでもphpが使えるようにする /etc/apache2/mods-available/php7.0.confで以下のようにコメントアウトする。 #<IfModule mod_userdir.c> # <Directory /home/*/public_html> # php_admin_flag engine Off # </Directory> #</IfModule> -cgiを使えるようにする(mailmanのため) # a2enmod cgi *mailman [#d3379e25] mailmanをインストール # apt-get install mailman サイトリストがない、と言ってくるが、設定ファイルやアーカイブをまるごとコピーすればよいはず。/var/lib/mailman/以下をコピーすればよいはず。 # rsync -e ssh -rlopgt /var/lib/mailman newdomain.shinshu-u.ac.jp:/var/lib # rsync -e ssh -rlopgt /etc/mailman newdomain.shinshu-u.ac.jp:/etc %%インストール終了後作成する。%% # newlist mailman ←不要 %%mailman で予め listname でメーリングリストを作成し、必要な設定をしておく。%% /etc/mailman/mm_cfg.pyを適当に編集。ドメイン名(azusa.shinshu-u.ac.jp)を変更しなければ、編集不要。変更する場合は、 DEFAULT_URL_HOST = 'newdomain.shinshu-u.ac.jp' などとする。インポートしたメーリングリストのurlの変更と、アーカイブのurlも変更する。 # cd /var/lib/mailman/bin # ./mainmanctl stop # ./withlist -l -r fix_url he -u newdomain.shinshu-u.ac.jp # ./arch --wipe he # ./mainmanctl start mailmanの設定例~ http://fedorasrv.com/postfix-mailman.shtml~ http://www.exim.org/howto/mailman21.html~ mailman main, mailman router, mailman transportの設定が必要。~ 特に、 OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes ← メーリングリストをWeb上から削除可能にする を設定すると便利。 -exim4を設定する。[[このページ>https://debian-administration.org/article/617/Mailman_and_Exim4]]を参考。 *awstats [#w26dcdd3] /etc/awstats/awstats.conf, awstats.conf.localを引き継ぐ。/etc/apache2/sites-available/default.heplをファイルを引き継ぎ、 # a2ensite default.hepl # /etc/init.d/apache2 reload する。cronの設定を変更する。/etc/cron.d/awstatsで、実行ユーザをrootに変更。/etc/cron.daily/awstatsを引き継ぐ。 *dns [#m276b13a] # apt install bind9 dnsutils 現azusaから/etc/bind以下をコピー。 **エラー named error (insecurity proof failed) resolvingが出た場合 [#z4a59995] /etc/bind/named.conf.optionsで、 dnssec-validation no; <-autoから とする。http://blog.livedoor.jp/haruchaco/archives/1610376.html参照。 *iptables [#y121a5ce] ルータを導入したので、ルータで設定する。 # apt-get install iptables-persistent 現azusaからazusa-iptables.060914をコピー。 *ビデオサーバー [#kba693c2] /etc/apt/source.listに deb http://deb-multimedia.org stretch main を追加。 # apt install ffmpeg 現azusaから/var/www/.ssh以下をコピー。www-dataにowner,groupを変更。 *fail2ban [#y1d8b319] # apt install fail2ban iptablesにルールを設定する模様。設定例https://www.chrissearle.org/2015/06/16/replacing-denyhosts-with-fail2ban-for-debian/ *gitlab-ce [#ufbee4ba] 設定をreconfigureし、変更を反映させる。 # gitlab-ctl reconfigure # gitlab-ctl restart [[研究室関係]]