|
ちば ホームページ 自宅サーバー館 . |
|||
|
ちばホームページ自宅サーバー館
|
LibrettoSS1000 Linuxサーバー |
かなりメモ書きですが、これからサーバーを立てる方の参考になれば幸いです。 このあと少しずつ解説を加えていければと考えています。 ☆インストール LibrettoSS1000は、FD/CD/LANがたったひとつのPCカードスロットで排他利用となるので、FedoraCoreのCDからブートしてインストールした。 boot: で、linux text と入力してCUIモードでインストール開始。 「サーバー」を選択し、プログラムの選択で微調整し「開発ツール」を追加する感じ。 ☆インストール後の設定 <PCMCIA LANカードの設定> # ls /etc/rc3.d/ S09isdn S10network ・ ・ S24pcmcia と、pcmciaより前にnetworkが起動してしまい、PCカードのNICが動かないので変更。 まず、09isdnはいらないので停止。 # /etc/init.d/isdn stop # chkconfig isdn off # mv /etc/rc3.d/S09isdn /etc/rc3.d/K09isdn その09にpcmciaを持ってくる。 # vi /etc/init.d/pcmcia # chkconfig: 2345 24 96 ↓ # chkconfig: 2345 09 96 # chkconfig pcmcia off # chkconfig pcmcia on # init 0 PCカードのNICを挿して、起動。 「ぴ」とかビープ音が出ればたぶん認識している。確認。 # lsmod fujitsu fmvj18x ←カードによって異なる <ネットワークの設定> # vi /etc/sysconfig/network HOSTNAME=localhost.localdomain ↓ HOSTNAME=server # vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.1.255 IPADDR=192.168.1.1 NETMASK=255.255.255.0 NETWORK=192.168.1.0 GATEWAY=192.168.1.254 ONBOOT=yes # ifup eth0 # ifconfig ←確認 <ファイヤーウォールiptablesの設定> # vi /etc/sysconfig/iptables ----------------------------------------------------------------- # Firewall configuration written by redhat-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT #-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p icmp -s 192.168.1.0/24 -m icmp --icmp-type 0 -j ACCEPT -A RH-Firewall-1-INPUT -p icmp -s 192.168.1.0/24 -m icmp --icmp-type 8 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp -s 出先などのIP --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 5900 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT ----------------------------------------------------------------- 5900番など、内部ネットワークにのみ公開するポートは必ずルータ側でふさぐこと。 ふさいでいてもsshによるトンネルで外部からアクセスできたりします。 # /etc/init.d/iptables restart ☆他のPCから暗号化通信でログインできるようにする <ssh> # vi /etc/ssh/sshd_config PermitRootLogin no ← rootでのログインを許可しない RSAAuthentication yes ← RSA認証を許可する RhostsAuthentication no ← rhosts認証を許可しない RhostsRSAAuthentication no ← rhosts-RSA認証を許可しない HostbasedAuthentication no ← ホストベース認証を許可しない PasswordAuthentication no ← パスワード認証を許可しない ChallengeResponseAuthentication no ← チャレンジレスポンス認証を禁止 X11Forwarding no ← X11転送を許可しない AllowUsers chiba3 sato suzuki tanaka # vi hosts.deny sshd: ALL # vi hosts.allow sshd: 192.168.1. sshd: 出先などのIP # /etc.init.d/sshd restart これで指定したユーザーが指定したネットワークからのみsshで入れるようになる。 ここまででもかなり安全だが、さらに秘密鍵がないと入れないようにすることもできる。 ここから先はWindowsPCからPuttyでアクセスする。画面が広く使えて便利。 だからこそVGAのLibrettoでも問題ないのだ。 ☆よく使うviエディタをカラー化する <vim-enhanced> # yum -y install vim-enhanced # cd /bin # mv vi viorg # cp /usr/bin/vim vi ☆サーバーには不要なサービスを停めまくる # /etc/init.d/cups stop # yum -y remove cups # yum -y remove tux # yum -y remove ypserv # yum -y remove FreeWnn # /etc/init.d/gpm stop # chkconfig gpm off # /etc/init.d/kudzu stop # chkconfig kudzu off # /etc/init.d/microcode_ctl stop # chkconfig microcode_ctl off # /etc/init.d/netfs stop # chkconfig netfs off # /etc/init.d/irqbarance stop # chkconfig irqbarance off # /etc/init.d/nfslock stop # chkconfig nfslock off # /etc/init.d/rhnsd stop # chkconfig rhnsd off # /etc/init.d/canna stop # chkconfig canna off # /etc/init.d/xfs stop # chkconfig xfs off ☆パッケージ自動更新機能を設定する <yum> url変更 # ntsysv # rpm --import /usr/share/rhn/RPM-GPG-KEY-fedora # chkconfig yum on ←yumによるアップデートを自動化する場合 # service yum start ←起動 # service yum status ←確認 ☆時刻の自動同期 <ntp> # vi /etc/ntp.conf #restrict default ignore ←#でコメントアウト #restrict 127.0.0.1 ←#でコメントアウト #server 127.127.1.0 # local clock ←#でコメントアウト #fudge 127.127.1.0 stratum 10 ←#でコメントアウト driftfile /etc/ntp/drift ←書き換え broadcastdelay 0.008 ←そのまま #authenticate yes ←#でコメントアウト #keys /etc/ntp/keys ←#でコメントアウト server ntp1.jst.mfeed.ad.jp ←最下行に追加 server ntp2.jst.mfeed.ad.jp server ntp3.jst.mfeed.ad.jp server clock.nc.fukuoka-u.ac.jp server ntp1.tohoku.ac.jp server ntp2.tohoku.ac.jp # /etc/init.d/ntpd start # ntsysv ntpdに*をつける ☆webサーバー設定 <apache> # vi httpd.conf ServerTokens Minimal KeepAlive On MaxKeepAliveRequests 1000 UseCanonicalName On Options FollowSymLinks ServerSignature Off # hosts # ntsysv httpdに*をつける ☆ディスク使用量制限 <quota> # vi /etc/fstab LABEL=/home /home ext3 defaults 1 2 ↓ LABEL=/home /home ext3 usrquota 1 2 # mount 確認 # mount -o remount /home # cd /home # touch aquota.user # chmod 600 aquota.user # quotacheck -uv /home # edquota ユーザーアカウント blocks欄のsoft,hardにKB単位で記述 # repquota -ua ユーザーごとの設定状況確認 # quotaoff -u -a # quotacheck -uv -a 編集内容を反映 # quotaon -uv -a # edquota -p ueda chiba uedaと同じ制限をchibaに設定 ☆DDNSの設定 <no-ip(hopto.org)> # cd /usr/local/src # wget http://www.no-ip.com/client/linux/noip_updater_v1.6.tar.gz # tar -xvzf noip_updater_v1.6.tar.gz # cd noip_updater_v1.6 # make # cp no-ip.conf.sample no-ip.conf # vi no-ip.conf LOGIN = abc@yahoo.co.jp (登録したメールアドレス) PASSWORD = ******* (パスワード) HOSTNAME = chiba3 (ホスト名) DOMAIN = hopto.org (選択したドメイン名) GROUP = ; DEVICE = eth0 (使用するデバイス名:ppp0等) PROXY = N (PROXYを使用するか) NAT = Y (NATを使用するか。ルータ未使用時はN) DAEMON = Y (DAEMONで動かすかどうか) INTERVAL = 16 (IPアドレスのチェック間隔) # make install 自動起動の設定 # vi /etc/rc.d/init.d/noip ----------------------------------------------------------------- #! /bin/sh # # no-ip # # chkconfig: 2345 99 80 # # description: no-ip.com dynamic IP update client for Linux. case "$1" in start) echo "Starting no-ip." /usr/local/bin/noip ;; stop) echo -n "Shutting down " killproc noip echo "." ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0 ----------------------------------------------------------------- # chmod 755 /etc/rc.d/init.d/noip # chkconfig --add noip <dip.jp> - DDNS # wget http://ieserver.net/ddns-update.txt # cp ddns-update.txt ddns-update.pl # vi ddns-update.pl $ACCOUNT = " "; # アカウント(サブドメイン)名設定 $DOMAIN = " "; # ドメイン名設定 $PASSWORD = " "; # パスワード設定 # mkdir /usr/local/ddns # cp ddns-update.pl /usr/local/ddns # vi /etc/crontab 13,28,43,58 * * * * /usr/local/ddns/ddns-update.pl <jspeed.jp> - DDNS # vi jspeed.sh #!/bin/sh # JSpeed.jpのクイックアップデートURLにアクセスし、DNSを更新します wget --delete-after -q http://ddns.j-speed.net/quickUpdate.jsp? uparams=chiba3,787b21f1d8a9da48c49f25c4bc5bd27e,bne.jp, 99800f3d5893ee01f60615b4d570658f ☆カウンタの設置 <Dream Counter> - cgiカウンタ http://www.kent-web.com/count/dream.html ☆メールサーバー(MTA)の設定 <postfix> - SMTPサーバー # yum install postfix # alternatives --config mta 2 # service sendmail stop # service postfix start # vi /etc/postfix/main.cf myhostname = mail.chiba3.dip.jp mydomain = chiba3.bie.jp myorigin = $mydomain inet_interfaces = all mydestination = $mydomain, $myhostname, localhost.$mydomain mynetworks = 127.0.0.0/8, 192.168.1.0/24, 192.168.10.0/24 home_mailbox = Maildir/ append_dot_mydomain = yes alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases relayhost = bie.ne.jp relaydomains = $mydestination fml用の設定 allow_mail_to_commands = alias, forward, include # postfix reload # vi /etc/init.d/postfix line 10 # chkconfig: 2345 80 30 ↓ Dovecotは54 # chkconfig: 2345 51 30 :wq! # chkconfig postfix off # chkconfig postfix on <Postfix Filter> # vi /etc/postfix/header_checks /name=.*\.pif/ REJECT /From:.*service@sus/i REJECT /To:.*watanabe@sus/i REJECT /Cc:.*info@sus/i REJECT /Received:.*zipmail.com/ REJECT /Subject:.*CIALIS/i REJECT # vi /etc/postfix/reject_sender 163.net REJECT net.my REJECT # postmap hash:reject_sender # vi main.cf # MailHeaderCheck header_checks = regexp:/etc/postfix/header_checks # Bad Sender Reject smtpd_sender_restrictions = reject_unknown_sender_domain reject_non_fqdn_sender hash:/etc/postfix/reject_sender # nonPTR Reject smtpd_client_restrictions = permit_mynetworks reject_unknown_client <sendmail消す> # rpm -e sendmail ☆POP Before SMTP の設定 <DRAC> - POP befora SMTP # cd /root/download/drac # wget ftp://ftp.cc.umanitoba.ca/src/drac.tar.Z # tar xvzf drac.tar.Z Makefileの修正 # vi Makefile ; 以下の行を修正 INSTALL = install DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C CC = gcc CFLAGS = $(DEFS) -g LDLIBS = -ldb RPCGENFLAGS = -C -I MANADM = 8 # make # make install # mkdir /usr/local/man # mkdir /usr/local/man/man3 # mkdir /usr/local/man/man8 # make install-man # cp libdrac.a /usr/local/lib # vi (/usr/local/src/)dracd-setup.linux ; 起動スクリプト編集 daemon /usr/local/sbin/rpc.dracd -i -e 5 & ※(-e 5は5分の意味です。未記入で30分) killproc /usr/local/sbin/rpc.dracd # cp dracd-setup.linux /etc/rc.d/init.d/dracd # ln -s /etc/rc.d/init.d/dracd /etc/rc.d/rc0.d/K22dracd # ln -s /etc/rc.d/init.d/dracd /etc/rc.d/rc3.d/S78dracd # ln -s /etc/rc.d/init.d/dracd /etc/rc.d/rc6.d/K22dracd # vi /etc/mail/dracd.allow-sample ;(新規作成) 255.255.255.255 127.0.0.1 # /etc/rc.d/init.d/dracd start # /etc/init.d/portmap start # chmod 600 /etc/mail/dracd.db # vi /etc/postfix/main.cf ; Postfixに設定 # DRAC setting smtpd_recipient_restrictions = permit_mynetworks, check_client_access btree:/etc/mail/dracd, check_relay_domains ☆メールサーバー(POP)の設定 <teapop> DRAC対応POP3サーバー postfix-2.0.16-1 # cd /root/download/teapop # wget ftp://ftp.toontown.org/pub/teapop/teapop-0.3.8.tar.gz # tar xvzf teapop-0.3.8.tar.gz # cd teapop-0.3.8 初期設定 Maildir形式・DRAC有効 # ./configure --enable-homespool=Maildir/ --with-drac=/root/download/drac # gmake # gmake install # cp /usr/local/libexec/teapop /usr/local/sbin # vi /etc/init.d/teapop ; 起動スクリプトの作成 ----------------------------------------------------------------- #!/bin/sh # # teapop PATH=/usr/sbin:/usr/bin:/bin DAEMON=/usr/local/sbin/teapop TEAPOP_PID=/var/run/teapop.pid case "$1" in start) $DAEMON -s -p 127.0.0.1 echo "starting $DAEMON" >&2 ;; stop) echo "stopping $DAEMON" >&2 kill `cat $TEAPOP_PID` rm -f $TEAPOP_PID ;; restart) $0 stop sleep 1 $0 start ;; *) echo "Usage: /etc/init.d/teapop {start|stop|restart}" >&2 ;; esac #!/end ----------------------------------------------------------------- # chmod 755 /etc/init.d/teapop # cd /etc/rc3.d # ln -s ../init.d/teapop S57teapop # cd ../rc0.d # ln -s ../init.d/teapop K57teapop # cd ../rc6.d # ln -s ../init.d/teapop K57teapop ☆内部ネットワーク用DNSの設定 <BIND> - 内部ネットワークからwebサーバーにアクセスできるようにする # vi /var/named/chroot/etc/named.conf ----------------------------------------------------------------- acl localnet{ 192.168.1.0/24; 127.0.0.1; }; options { directory "/var/named"; // バージョンの非表示化 version "unknown"; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ // query-source address * port 53; //---------------------------------------- // bindを使用する範囲を指定 allow-query{ localnet; }; allow-transfer{ localnet; }; // スレーブDNSサーバーの指定 // allow-transfer { // 127.0.0.1; // 192.168.1.0/24; // }; // 転送先DNS forwarders{ 192.168.1.1; }; //---------------------------------------- }; //---------------------------------------- zone "chiba3.dip.jp" IN { type master; file "local.chiba.zone"; allow-update { none; }; }; zone "1.168.192.in-addr.arpa" IN { type master; file "32.local"; allow-update { none; }; }; ----------------------------------------------------------------- # vi /var/named/chroot/var/named/local.chiba.zone ----------------------------------------------------------------- $TTL 86400 @ IN SOA chiba3.dip.jp root.chiba3.dip.jp.( 2005051801 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS chiba3.dip.jp. IN MX 10 chiba3.dip.jp. ;chiba3.dip.jp. IN A 192.168.1.20 @ IN A 192.168.1.20 * IN A 192.168.1.20 ----------------------------------------------------------------- ☆MRTGの設定 <<MRTG>> - 状態監視 # yum -y install hddtemp HDDの温度測定用 # yum -y install net-snmp net-snmp-utils SNMP情報取得用 # vi /etc/snmp/snmpd.conf rouser guest rocommunity public 127.0.0.1 disk /home 15% # vi /etc/snmp/snmp.conf defVersion 2c # service snmpd start # chkconfig snmpd on # snmpwalk -v 2c -c public localhost ←テスト # yum -y install mrtg # vi /etc/httpd/conf.d/mrtg.conf Allow from 192.168.1.0/24 内部ネットワークのみ参照可能 # /etc/init.d/httpd start apache 起動 # vi /etc/mrtg/mrtg.cfg ----------------------------------------------------------------- Target[hddtemp]: `/usr/sbin/hddtemp /dev/hda | awk '{print $4}'` MaxBytes[hddtemp]: 100 Title[hddtemp]: ハードディスクの温度 Pagetop[hddtemp]: <h1>ハードディスクの温度</h1> Options[hddtemp]: growright,absolute,gauge,nopercent,noinfo WithPeak[hddtemp]: dymw YLegend[hddtemp]: Temperature ShortLegend[hddtemp]: C LegendI[hddtemp]: Temp: LegendO[hddtemp]: Legend1[hddtemp]: HDD Temperature in Degrees Celcius Legend2[hddtemp]: ----------------------------------------------------------------- |
|
サーバーにもどる |