さて、インストールが終わったらセキュリティである。
最終的には、外部に公開するサーバとするので、ガチガチに固めることが望ましい。
なお、今回はSELinuxは使用しないで、iptablesによるファイアウォールを使う。
もちろん、基本的に全部閉じておいて、必要なサービスのみ開くという方針でいく。
GUIから[システム]-[管理]-[セキュリティレベルとファイヤーウォールの設定]で、基本設定を行う。コマンドラインでは「# system-config-securitylevel」に相当する。
まず、FTP、SSH、Samba、HTTPS、HTTP、SMTPを信頼できるサービスとして登録する。
そのほかに、以後も確実に開くものとして、VNCの5900~5902/TCPをその他のポートで登録。
そして、[OK]。
この設定は/etc/sysconfig/system-config-securitylevelに保存される。このファイル自体は、アプリケーションの保存ファイルとしての役割で、さらに/etc/sysconfig/iptables-config、および詳細ルールが/etc/sysconfig/iptablesにも保存される。
[root@tower ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter hosts.allow hosts.deny
:INPUT ACCEPT [0:0]s /etc/hosts.allow
:FORWARD ACCEPT [0:0]/etc/hosts.deny
:OUTPUT ACCEPT [0:0] /etc/sysconfig/iptables
: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 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -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 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
ただし、最終的にこのマシンをDMZに置き外部に公開することを考えると、VNCなどはIPアドレスにおけるアクセス制限をかけておいたほうがいい。もちろん、そういったPORTはゲートウェイで止めてしまうのが正しいのだが、やってやりすぎることはない。
しかし、system-config-securitylevelではそこまできめ細かい設定はできないので、直接/etc/sysconfig/iptablesを編集することになる。
とりあえず、sambaとVNCのみ、LAN内部からのみ接続可能なように"-s 192.168.1.0/24"を追加する。
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp -s 192.168.1.0/24 --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp -s 192.168.1.0/24 --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 5900 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 5901 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 5902 -j ACCEPT
いずれはDNS、pop3なども開くことになるはずだが今回はとりあえず、この辺で。