RHECEラーニング<7>DNS、FTPおよびDHCPサービス構成の詳細


一、DNSサーバー
簡単な説明:DNSサーバの多くはBINDをサーバとして使用しており、バークリー大学の学生が最初に作成したもので、最新バージョンは9で、現在はISCが作成し、維持しています.TCP、UDPプロトコル、デフォルト53(domain)、953(mdc)を使用します.
1>.DNSサーバの役割
フォワード解析:ホスト名(ドメイン名)に基づいて対応するIPアドレスを検索
逆解析:IPアドレスに基づいて対応するホストドメイン名を検索
2>.DNSの2つのクエリー方式
再帰クエリ:クライアント――>ローカルDNSサーバ――答えられない場合、ルートDNSサーバ――>ルートDNSサーバはドメインタイプをクエリし、IPを得てクライアントに直接渡す.
反復クエリ(循環クエリ):クライアント->ローカルDNSサーバ->ルートDNSサーバのクエリ->ルートDNSサーバドメインタイプIPを取得->クライアントに元のパスで返す.
3>.DNSサーバの3種類
ドメインマスターDNSサーバ(master):zoneプロファイルを保存し、ドメイン情報を保持する
ドメインDNSサーバ(slave):冗長負荷使用、メインDNSサービスからzoneプロファイルのキャプチャ
キャッシュDNSサーバ(caching):負荷分散、アクセス加速使用
1、ドメイン主DNSサーバー
DNSサーバ:192.168.0.202
DNSクライアント:192.168.0.203
[root@dns ~]# yum install gcc gcc-c++ bind bind-chroot bind-utils
[root@dns ~]# cp -r /usr/share/doc/bind-9.8.2/sample/etc/named.conf /var/named/chroot/etc/
[root@dns ~]# cp -r /usr/share/doc/bind-9.8.2/sample/var/named/* /var/named/chroot/var/named/
[root@dns ~]# cd /var/named/chroot/var/named/
[root@dns named]# vi ../../etc/named.conf
options   #    
{
        directory               "/var/named";     #        
        listen-on port 53       { 192.168.0.202; };  #    ,any   
        listen-on-v6 port 53    { ::1; };   #ipv6  
        allow-query             { any; };  #any         
        allow-query-cache       { any; };  #          
        recursion yes;  #      
};
logging     #            、    
{
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "test.com" IN {      #      
        type master;
        file "test.com.zone";
        allow-update { none; };  #             ,none       
        allow-transfer { none; };  #                      ,    slave  
};
zone "0.168.192.in-addr.apra" IN {   #      
        type master;
        file "test.com.zone";
        allow-update { none; };
        allow-transfer { none; };
};

#正逆領域データファイルの作成
[root@dns named]# cp named.localhost test.net.zone
[root@dns named]# vi test.net.zone
$TTL 1D
@       IN SOA  test.com. root.test.com. (   #     DNS    ,        
                                        0       ; serial   #     
                                        1D      ; refresh  #           
                                        1H      ; retry    #    
                                        1W      ; expire   #    
                                        3H )    ; minimum
@       IN      NS      dns.test.com.   #       
dns     IN      A       192.168.0.202
mail    IN      A       192.168.0.203   #MX      
        IN      MX 10   mail.test.com.
www     IN      A       192.168.0.203   #A      
203     IN      PTR     mail.test.com.  #PTR

#マスタープロファイルとゾーンデータファイルの構文の正確性を検出
[root@dns ~]# named-checkconf /var/named/chroot/etc/named.conf
[root@dns ~]# named-checkzone test.com /var/named/chroot/var/named/test.net.zone
[root@dns ~]# named-checkzone 0.168.192.in-addr.apra /var/named/chroot/var/named/test.net.zone

#新規DNSをネイティブ優先DNSサーバとして使用
[root@dns ~]# vi /etc/resolv.conf
nameserver 192.168.0.202
[root@dns ~]# service named start   #        
Generating /etc/rndc.key:
[root@dns ~]# rndc-confgen -r /dev/urandom -a  #       KEY,        
[root@dns ~]# service named start
[root@dns ~]# chkconfig named on

#テスト#テスト#
[root@client ~]# nslookup www.test.com  #    ,     host  
Server:         192.168.0.202
Address:        192.168.0.202#53
Name:   www.test.com
Address: 192.168.0.203
[root@client ~]# nslookup  #    
> 192.168.0.203
Server:         202.106.0.20
Address:        202.106.0.20#53
203.0.168.192.in-addr.arpa      name = client.
>

2、ドメイン主従DNSサーバー
プライマリDNSサーバ:192.168.0.202
DNSサーバから:192.168.0.203
プライマリDNSサーバの構成は、上の構成と同じです.allow-transfer{none;}allow-transfer{192.168.0.203;}に変更します.プライマリDNSサーバを定義すると、ゾーンデータファイルをDNSサーバからコピーできます.
[root@slaves ~]# vi /var/named/chroot/etc/named.conf
zone "test.com" IN {
        type slave;
        file "test.com.zone";
        masters { 192.168.0.202; };
};

3、キャッシュDNSサーバー
DNSのために上流DNSサーバーのアドレスを指定することができて、自分で解析を完成することができないならば、上流DNSサーバーに1つの良いクライアントに解析させます
[root@slaves ~]# vi /var/named/chroot/etc/named.conf
Options{
Directory “/var/named/chroot/var/named/etc/”;
Forwarders only;    # DNS        ,        forwarders  
forwarders { DNS   IP  ;};  #        ip
allow-query {any;};  #        
};

二、FTPサーバー
1>.FTP:C/Sアーキテクチャーサービスは、TCPプロトコルを下位層伝送として使用し、データ伝送の信頼性を提供する
2>.FTP接続方式
制御接続:標準ポートは21で、FTPコマンド情報を送信する
データ接続:標準ポートは20で、データのアップロード、ダウンロードに使用されます.
3>.2つの動作モード:
プロアクティブモード:クライアントはサービス側に要求を開始し、サービス側は要求を受信した後、クライアントに20ポートを開くように指示し、サーバは自発的に20ポートにデータ接続を開始する.
受動モード:クライアントはサーバーに要求を開始し、サービス側は要求を受け取った後、ランダムにポートを開き、クライアントに私が受動モードであることを伝え、クライアントはサービス側のランダムポートにデータ接続を確立する.
4>.Vsftpd関連プロファイル:
/etc/vsftpd/vsftp.conf:プライマリプロファイル
/etc/vsftpd/ftpusers:ブラックリスト
/etc/vsftpd/user_List:制御リスト(プロファイルコントローラがホワイトリストかブラックリストか)
/var/log/xferlog:デフォルトログファイル
5>.匿名ユーザ(デフォルト)、システムユーザ、仮想ユーザの3種類.
6>.一般的な構成項目と意味説明
anonymous_enable=YES        #匿名ユーザーftpまたはanonymousのログインを許可するかどうか
anon_root=/var/ftp          #匿名ユーザのFPTルートディレクトリの設定(デフォルトは/var/ftp)
anon_umask=022              #匿名ユーザーがアップロードしたファイルのデフォルト権限マスク値を設定
anon_world_readable_only=no#匿名ユーザーがダウンロードファイルを閲覧できる権限anon_upload_enable=YES      #匿名ユーザーにファイルのアップロードを許可するかどうかanon_mkdir_write_enable=YES#匿名ユーザーにディレクトリを作成する権利を許可するかどうか
anon_other_write_Enable=YES#ファイルの名前変更、上書き、削除など、匿名ユーザーに他の書き込み権限を許可するかどうか.
anon_max_rate               #匿名ユーザの最大転送レート(0は無制限)をバイトdirmessage_単位で制限enable=YES       #ディレクトリの説明ファイルを表示するかどうか、デフォルトはYESですが、手動で.messageファイルを作成する必要があります.
local_enable=YES            #ローカルユーザーのログインを許可するかどうか
local_umask=022             #ローカル・ユーザーがアップロードしたファイルのデフォルト権限マスク値を設定
local_root=/var/ftp         #ローカルユーザのFPTルートディレクトリの設定(デフォルトはユーザのホストディレクトリ)
local_max_rate              #ローカル・ユーザーの最大転送速度(0は無制限)をバイト単位で制限
chroot_local_user=yes       #FPTローカルユーザをホストディレクトリに閉じ込めるかどうか
listen_port  21             #監原FTPサービスのポート番号の設定
write_enable=yes            #ファイルのアップロード、削除など、任意の形式の書き込み権限を有効にするには、このオプションをオンにする必要があります.
download_enable=yes         #ファイルのダウンロードを許可するかどうか(ブラウズ、アップロードのみのFTPサーバを確立する場合はnoに設定可能)xferlog_enable=YES          #ftp転送プロセスを記録するかどうか、すなわちFTPログを有効にし、デフォルトは/var/log/xferlogファイルに記録する
xferlog_std_format=yes      #標準のxferlogログフォーマットを有効にします.無効にすると、vsftpd独自のログフォーマットが使用されます.
connect_from_port_20=YES    #ポート転送が20から来たと確信しているかどうか(ftp-data)
chown_upload=YES            #アップロードファイルの所有者chownを変更するかどうかusername=username     #所有者をそのユーザーに変更する
pasv_enable=yes             #パッシブモード接続を許可
pasv_max_port=24600         #パッシブモード用サーバーの最大ポート番号の設定
pasv_min_port=24500         #パッシブモード用のサーバー最小ポート番号の設定
pam_service_name=vsftpd     #ユーザー認証用のPAMファイルの場所を設定します(/etc/pam.dディレクトリの対応するファイル名)
userlist_enable=yes         #user_を有効にするかどうかlistユーザーリストファイル
userlist_deny=yes           #user_を禁止するかどうかListリストファイルのユーザーアカウント
max_clients=0               #最大何個のクライアントがFTPサーバーに接続できるか(0は無制限)
max_per_ip=0                #同じIPアドレスからのクライアントに対して、最大何個の同時接続が許可されますか(0は制限なし)
tcp_wrappers=yes            #tcp_を有効にするかどうかwrappersアクセス制御
idle_session_timeout=600    #デフォルトの切断非アクティブセッションの時間data_を設定connection_timeout=120#データ転送タイムアウト時間を設定し、データ接続を2分間切断する
accept_timeout=60(秒)#クライアントを1分空けて切断
1.Vsftpdをインストールし、ユーザー認証アクセスを構成する
[root@ftp ~]# yum install vsftpd -y
[root@ftp ~]# mkdir /data
[root@ftp ~]# vi /etc/vsftpd/vsftpd.conf #      
anonymous_enable=no  #      
local_root=/data     #FTP   
chroot_local_user=yes  #      
pasv_enable=YES     #        
pasv_min_port=6001  #     
pasv_max_port=6100  #     
[root@ftp ~]# service vsftpd start
[root@ftp ~]# useradd ftpadmin    #    FTP       
[root@ftp ~]# passwd ftpadmin
[root@ftp ~]# chown ftpadmin:ftpadmin /data/ -R

#ファイアウォールの追加許可
[root@ftp ~]# iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
[root@ftp ~]# iptables -A INPUT -p tcp --dport 6001:6100 -j ACCEPT

2、Vsftpd仮想ユーザー構成
以下を参照してください.http://going.blog.51cto.com/7876557/1294765
3、Vsftpd+SSL暗号化伝送を実現
 #証明書の生成(パーソナルキーと証明書を含む)
[root@ftp vsftpd]# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem
Generating a 2048 bit RSA private key
...........+++
...........................................+++
writing new private key to 'vsftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:beijing 
Locality Name (eg, city) [Default City]:test
Organization Name (eg, company) [Default Company Ltd]:test
Organizational Unit Name (eg, section) []:test.com
Common Name (eg, your name or your server's hostname) []:
Email Address []:
[root@ftp vsftpd]# chmod 400 vsftpd.pem

#vsftpd構成SSLサポート
[root@ftp ~]# vi /etc/vsftpd/vsftpd.conf  #      
anonymous_enable=no #      
local_root=/ftp #      
chroot_local_user=YES #      
ssl_enable=YES
ssl_sslv2=YES
ssl_sslv3=YES
ssl_tlsv1=YES
force_local_logins_ssl=YES #    ssl  
force_local_data_ssl=YES #      ssl  
force_anon_logins_ssl=YES #      ssl  
force_anon_data_ssl=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem #      
[root@ftp ~]# service vsftpd restart
[root@ftp ~]# chkconfig vsftpd on

テスト:flashfxpソフトウェアを使用して、転送中にsslを使用して通信することをテストします.
三、DHCPサーバー
1、dhcpをインストールする
yum install -y dhcp

2、メインプロファイルの変更
cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf #         ,  dhcpd.conf  
vi/etc/dhcp/dhcpd.conf
ddns-update-style interim; #  dhcp      
ignore client-updates;     #       
shared-network test{      #         ,           
subnet 192.168.1.0 netmask 255.255.255.0{ #    
option routers 192.168.1.1;         #         
option subnet-mask 255.255.255.0;   #           
option domain-name "test.com";      #DNS 
option domain-name-servers 8.8.8.8; #DNS     
range 192.168.1.200 192.168.1.202;  #     
default-lease-time3600;            #    ,   
max-lease-time7200;                #    ,   
  :
#host print {                          #        
#hardware ethernet 00:0C:29:7E:52:64; #      MAC
#fixed-address 192.168.1.200;         #     IP
# }
}
}

3、dhcpを起動する
service dhcpd start
chkconfig dhcpd on

4、起動失敗の可能性
1>.内容は文法構造に合致せず、例えば、少数のセミコロン;
2>.宣言されたサブネットとサブネットマスクが一致しない;
3>.ホストIPアドレスと宣言されたサブネットは同じセグメントにありません.
4>.ホストにIPアドレスが設定されていません.
5>.プロファイルパスに問題が発生しました.例えばRHEL 6以下のバージョンでは、プロファイルは/etc/dhcpd.confに保存されていますが、
rhel 6以降は/etc/dhcp/dhcpd.confに保存されています.