ServersMan@VPS Entry 借りてみた
今のところお支払い方法がクレジットカードしかないっぽいけど、そこは(一応)社会人ぱぅあーで契約。持っててよかった Yodobasi GOLD ELIO CARD!(VISA話)
という訳で皮装備の貧弱一般人なりにサーバ設定してみるよ!これから触ってみる人の参考になればいいなー。
長いので以下続きでおk。
12/29追記
友人が「おいsshつながらねーぞfxxkfxxk!!」連呼するので確認してたら、ssh の接続ポートのデフォルト番号変わってたんんですねー、いつからなんだろ?まあ確認してねーほうが基本的には悪いね。「ServersMAN@VPS ssh 繋がらない」とかで検索ヒットした人は、ssh のポート番号を「3843」にしてね!この変更にともなって iptables のルールも ssh はポート番号 22 から、3843 に変更しておいたよ!
※本エントリ中に「SSH 22」みたいなワードがあっても脳内補完してね!
rootログインを止める
発行されるパスワードはランダムなの英数字だから問題ないと思うけど、やっぱり root でログインできるとかねーよ。ってことで root ログインの禁止と、一般ユーザの追加を行ないましょう。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/simfs 10G 502M 9.6G 5% / none 128M 4.0K 128M 1% /dev
初期状態の領域はこんなもん。んじゃログイン用の一般ユーザ追加しましょうか。
# useradd USERNAME # passwd USERNAME
これでおk。
ちなみに /etc/skel/ 以下はこんな感じだった。
-rw-r--r-- 1 root root 33 Jan 22 2009 .bash_logout -rw-r--r-- 1 root root 176 Jan 22 2009 .bash_profile -rw-r--r-- 1 root root 124 Jan 22 2009 .bashrc
それではrootログインを禁止します。
# vi /etc/ssh/sshd_config <sshd_config> -- # Authentication: #LoginGraceTime 2m #PermitRootLogin yes -> ここを PermitRootLogin no にする #StrictModes yes #MaxAuthTries 6 -- # /etc/init.d/sshd restart
これでおk、これ以降は root でログインできないので、追加したユーザとパスワードでログインします。
sudo については設定しねーポリシーに最近変更したので、必要な人は visudo 編集してね。
それと、本当は ssh のログインポートを 22 から変更した方がいいのですが、今回は割愛します。
大抵の人は動的 IP だと思うけど、固定でグローバル IP を持っている人は、hosts.allow とかで制限しちゃってもいいんじゃないかな。
まあ ServerMan@VPS の中の人の作業量がマッハになるのでやめたほうがいいけど。
iptables について
ServerMan の機能をフルに使うには、以下のポートを開放する必要があるっぽいでし。
今回は SSH と HTTP にしか利用しない予定なので、22 と 80 以外のポートは塞ぎます。
本当は両サービスともポート番号かえて(略)ですが、そこまでカリカリしても踏まれるときは踏まれるんだよぉ!(先日会社のサービス用鯖踏まれた)
起動直後の iptables の結果は以下。
# /sbin/iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
これはないわー、Entry でシンプル構成を選択したとはいえ、SSH と ServerMan の通信ポート以外は閉じておいてもいいんじゃないかなあ>>中の人。
とりあえず設定をサクサク書きましょう、ここはまるまるコピペでもおk。
※2010/8/15に契約しましたが、 iptables 定義の /etc/sysconfig/iptables が存在してませんでした。
以下のページに書いてある CentOS デフォルトの設定ファイルをパクってきて、DNS 運営しないので Port 53 閉じて、代わりに Port 80 許可した。
http://www.cyberciti.biz/faq/rhel-fedorta-linux-iptables-firewall-configuration-tutorial/
# vi /etc/sysconfig/iptables <iptables> -- *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 -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3843 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT -- # /etc/init.d/iptables start # /sbin/iptables -L
以下のような結果になるはず。ssh のセッション切る前に、もう一つターミナル立ち上げて、ssh 接続を確認してね。
# /sbin/iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain RH-Firewall-1-INPUT (2 references) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere icmp any ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:3843 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
chkconfig による自動起動について
デフォルトでは以下のように(略)。
# /sbin/chkconfig --list crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off gpm 0:off 1:off 2:on 3:off 4:on 5:on 6:off httpd 0:off 1:off 2:off 3:on 4:off 5:off 6:off iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off lm_sensors 0:off 1:off 2:on 3:off 4:on 5:on 6:off lvm2-monitor 0:off 1:on 2:on 3:off 4:on 5:on 6:off mcstrans 0:off 1:off 2:on 3:off 4:on 5:on 6:off messagebus 0:off 1:off 2:off 3:off 4:on 5:on 6:off multipathd 0:off 1:off 2:off 3:off 4:off 5:off 6:off netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off netfs 0:off 1:off 2:off 3:off 4:on 5:on 6:off netplugd 0:off 1:off 2:off 3:off 4:off 5:off 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off nscd 0:off 1:off 2:off 3:off 4:off 5:off 6:off portmap 0:off 1:off 2:off 3:off 4:on 5:on 6:off rawdevices 0:off 1:off 2:off 3:off 4:on 5:on 6:off rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off restorecond 0:off 1:off 2:on 3:off 4:on 5:on 6:off saslauthd 0:off 1:off 2:off 3:on 4:off 5:off 6:off serversman 0:off 1:off 2:off 3:on 4:on 5:on 6:off smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off snmpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off snmptrapd 0:off 1:off 2:off 3:off 4:off 5:off 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off winbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off xinetd based services: chargen-dgram: off chargen-stream: off daytime-dgram: off daytime-stream: off discard-dgram: off discard-stream: off echo-dgram: off echo-stream: off finger: off ntalk: off rsync: off swat: off talk: off tcpmux-server: off time-dgram: off time-stream: off
特に off にするようなのはないかなー、と軽く見て思うなど。まあ「俺は SSH 経由でしか管理しないぞー!」って人は、serverman 切る位ですかね。
まあそれ切っちゃうとこのサービス使う意味があんまないというか、作った中の人泣かせというか…。
とりあえずこんなもんでおしまい。
特定の場所でプライベートな端末使うなら鍵認証にしてパスワード使わせないとか、おまえまず最初に yum update だろ!とか色々あるとは思いますが、
本当に最低限の作業はこれくらいでしょうか。
追加した一般ユーザのパスワードがシンプルでない限りは、とりあえずこの程度で運用に耐えられるんじゃないかなあ、と思います。
まあぶっちゃけ、会社のサーバ立ち上げる時にやってる作業と一緒なだけですけどね。
一般サーバを作るときにも参考にできるので、よろしければどうぞ。
おまけ
/proc 以下とか見てスペッコ確認してみた。
ちなみにサーバは、ホスト名に「dti-vps-srv22」とか書いてた。二ヶ月で22台目ってことなのかな?だとしたら好調っぽいなー。
# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 26 model name : Intel(R) Xeon(R) CPU L5520 @ 2.27GHz stepping : 5 cpu MHz : 903.100 cache size : 8192 KB physical id : 1 siblings : 8 core id : 0 cpu cores : 4 apicid : 16 fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm bogomips : 4522.12 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: [8] # cat /proc/meminfo MemTotal: 262144 kB MemFree: 226368 kB Buffers: 0 kB Cached: 0 kB SwapCached: 0 kB Active: 0 kB Inactive: 0 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 262144 kB LowFree: 226368 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 0 kB Mapped: 0 kB Slab: 0 kB PageTables: 0 kB NFS_Unstable: 0 kB Bounce: 0 kB CommitLimit: 0 kB Committed_AS: 0 kB VmallocTotal: 0 kB VmallocUsed: 0 kB VmallocChunk: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 Hugepagesize: 2048 kB # /sbin/fdisk -l cannot open /proc/partitions
(^q^) Xeon L5520 とか会社の ESXi サーバと同じ CPU じゃねえか。
これ、早くなるかどうかは置いといて、microcode いれたほうがいいのかな…そももも使えるのかな。