[리눅스마스터]제1602회 리눅스마스터 1급 2차 시험 작업식 풀이 1
11. 다음은 NFS 서버에 대한 설정이다. ( 괄호 ) 안에 알맞은 내용을 적으시오.
# vi ( ① )
( ② )
<조 건>
- ① : NFS 서버의 설정 파일명을 절대경로로 기입한다.
- ② : 다음의 두 가지 조건에 해당하는 관련 설정을 한 줄로 기입한다.
가. /data/presales 디렉터리를 *.example.com 도메인 대역에서 접근이 가능하고 읽기, 쓰기가 가능하도록 한다.
나. NFS 클라이언트에서 root 사용자를 NFS 서버상에 root 사용자로 매핑하고 읽기, 쓰기가 가능하도록 설정한다.
/etc/exports : NFS Server에서 부팅시에 공유하는 정보를 담는 파일
[공유디렉토리] [접근가능 서버/네트워크] (공유옵션)
<공유 옵션>
root_squash : 클라이언트에서 root 사용자를 서버상에서는 nobody 사용자로 매핑한다.
no_root_squash : 서버와 클라이언트 모두 같은 root를 사용한다. 즉, 클라이언트에서의 root 사용자의 요청을 서버의 root 사용자로 매핑한다.
ro : 파일시스템을 읽기 전용(Read Only)로 마운트한다. (EX: ISO파일 같은 변경이 되지않는 파일, 백업의 복구용 파일들)
rw : 파일시스템을 읽고 쓸수 있도록 마운트한다.(Read/Write)
insecure : 인증되지 않은 접근도 가능하도록 한다.
link_relative : 심볼릭 링크를 상대 심볼릭 링크로 바꿀 때 사용한다.
noaccess : 지정된 디렉토리에는 접근을 금지한다. 특정시스템에 대한 공유 디렉토리 일부를 접근 못하게 할 경우에 사용한다.
anonuid, anongid : 익명사용자(Anonymous/Nobody 사용자에 대한 UID/GID 번호 맞추기
[root@server1 ~]# find / -name exports
/proc/fs/nfs/exports
/proc/fs/nfsd/exports
/etc/exports
/usr/lib/python2.7/site-packages/tuned/exports
EXAMPLE
# sample /etc/exports file
/ master(rw) trusty(rw,no_root_squash)
/projects proj*.local.domain(rw)
/usr *.local.domain(ro) @trusted(rw)
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
/pub *(ro,insecure,all_squash)
/srv/www -sync,rw server @trusted @external(ro)
/foo 2001:db8:9:e54::/64(rw) 192.0.2.0/24(rw)
/build buildhost[0-9].local.domain(rw)
The first line exports the entire filesystem to machines master and trusty. In addition to write
access, all uid squashing is turned off for host trusty. The second and third entry show examples for
wildcard hostnames and netgroups (this is the entry `@trusted'). The fourth line shows the entry for the
PC/NFS client discussed above. Line 5 exports the public FTP directory to every host in the world, exe‐
cuting all requests under the nobody account. The insecure option in this entry also allows clients with
NFS implementations that don't use a reserved port for NFS. The sixth line exports a directory read-
write to the machine 'server' as well as the `@trusted' netgroup, and read-only to netgroup `@external',
all three mounts with the `sync' option enabled. The seventh line exports a directory to both an IPv6
and an IPv4 subnet. The eighth line demonstrates a character class wildcard match.
① /etc/exports
② /data/presales *.example.com(rw,no_root_squash)
12. 다음은 메일서버 관련 설정을 하는 과정이다. 아래의 조건을 참조하여 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. 관련 파일 설정
# vi ( ① )
security@seoul.com twins
security@busan.com giants
나. 변경된 설정 적용을 위한 명령 실행
# ( ② ) ( ① ) < ( ① )
<조 건>
- ① : 관련 파일명을 절대경로로 기입한다.
- ② : 관련 명령 및 인자값을 기입한다.
- 하나의 메일서버에 seoul.com과 busan.com이라는 두 개의 도메인이 운영 중이다.
- 각 회사에서 security라는 동일한 이메일 계정을 요구한 상태이다.
/etc/mail/virtusertable : 리눅스 sendmail 프로그램에서 특정 이메일 주소로 받은 메일을 다른 사용자에게 할당
makemap hash : /etc/mail/virtusertable 수정 후 적용 명령어
[메일주소] [받을 유저]
[root@server1 ~]# find / -name virtusertable
/etc/mail/virtusertable
[root@server1 ~]# vi /etc/mail/virtusertable
# A domain-specific form of aliasing, allowing multiple virtual domains to be
# hosted on one machine.
#
# info@foo.com foo-info
# info@bar.com bar-info
# joe@bar.com error:nouser 550 No such user here
# jax@bar.com error:5.7.0:550 Address invalid
# @baz.org jane@example.net
#
# then mail addressed to info@foo.com will be sent to the address foo-info,
# mail addressed to info@bar.com will be delivered to bar-info, and mail
# addressed to anyone at baz.org will be sent to jane@example.net, mail to
# joe@bar.com will be rejected with the specified error message, and mail to
# jax@bar.com will also have a RFC 1893 compliant error code 5.7.0.
#
# The username from the original address is passed as %1 allowing:
#
# @foo.org %1@example.com
#
# Additionally, if the local part consists of "user+detail" then "detail" is
# passed as %2 and "+detail" is passed as %3 when a match against user+* is
# attempted, so entries like
#
# old+*@foo.org new+%2@example.com
# gen+*@foo.org %2@example.com
# +*@foo.org %1%3@example.com
# X++@foo.org Z%3@example.com
# @bar.org %1%3
#
# Note: to preserve "+detail" for a default case (@domain) %1%3 must be used
# as RHS. There are two wildcards after "+": "+" matches only a non-empty
# detail, "*" matches also empty details, e.g., user+@foo.org matches#
# +*@foo.org but not ++@foo.org. This can be used to ensure that the
# parameters %2 and %3 are not empty.
#
# All the host names on the left hand side (foo.com, bar.com, and baz.org)
# must be in class {w} or class {VirtHost}. The latter can be defined by the
# macros VIRTUSER_DOMAIN or VIRTUSER_DOMAIN_FILE (analogously to
# MASQUERADE_DOMAIN and MASQUERADE_DOMAIN_FILE). If VIRTUSER_DOMAIN or
# VIRTUSER_DOMAIN_FILE is used, then the entries of class {VirtHost} are
# added to class {R}, i.e., relaying is allowed to (and from) those domains.
① /etc/mail/virtusertable
② makemap hash
13. 다음은 Sendmail 설정 관련 파일에 대한 설명이다. ( 괄호 )안에 알맞은 내용을 적으시오.
파일명 | 설명 |
/etc/( ① ) | 메일 유저 별명 설정 파일 |
/etc/mail/( ② ) | 메일 Relay 제한 및 스팸메일 방지 설정 파일 |
/etc/mail/( ③ ) | 최종 수신지 도메인 설정 파일 |
<조 건>
- 괄호에는 파일명만 기입한다.
/etc/mail/sendmail.cf : sendmail의 핵심. 메일 송/수신 시 이 파일을 해석하여 실행
[root@server1 ~]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
/etc/mail/local-host-names : 메일 서버에서 사용하는 호스트(도메인)을 등록하는 파일
/etc/mail/access : 각종 접근제어 설정이 저장되는 파일
[root@server1 ~]# vi /etc/mail/access
# Check the /usr/share/doc/sendmail/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
# package.
#
# If you want to use AuthInfo with "M:PLAIN LOGIN", make sure to have the
# cyrus-sasl-plain package installed.
#
# By default we allow relaying from localhost...
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
/etc/aliases : 사용자에게 다른 메일 계정(별칭)을 사용할 수 있도록 해주는 파일
[root@server1 ~]# vi /etc/aliases
# Aliases in this file will NOT be expanded in the header from
# Mail, but WILL be visible over networks or from /bin/mail.
#
# >>>>>>>>>> The program "newaliases" must be run after
# >> NOTE >> this file is updated for any changes to
# >>>>>>>>>> show through to sendmail.
#
# Basic system aliases -- these MUST be present.
mailer-daemon: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
adm: root
lp: root
sync: root
shutdown: root
halt: root
mail: root
news: root
uucp: root
operator: root
games: root
gopher: root
ftp: root
nobody: root
radiusd: root
nut: root
dbus: root
vcsa: root
canna: root
wnn: root
rpm: root
nscd: root
pcap: root
apache: root
webalizer: root
dovecot: root
fax: root
quagga: root
radvd: root
pvm: root
amandabackup: root
privoxy: root
ident: root
named: root
xfs: root
gdm: root
mailnull: root
postgres: root
sshd: root
smmsp: root
postfix: root
netdump: root
ldap: root
/etc/mail/virtusertable : 가상 메일 사용자의 설정이 저장되는 파일
[root@server1 ~]# vi /etc/mail/virtusertable
# A domain-specific form of aliasing, allowing multiple virtual domains to be
# hosted on one machine.
#
# info@foo.com foo-info
# info@bar.com bar-info
# joe@bar.com error:nouser 550 No such user here
# jax@bar.com error:5.7.0:550 Address invalid
# @baz.org jane@example.net
#
# then mail addressed to info@foo.com will be sent to the address foo-info,
# mail addressed to info@bar.com will be delivered to bar-info, and mail
# addressed to anyone at baz.org will be sent to jane@example.net, mail to
# joe@bar.com will be rejected with the specified error message, and mail to
# jax@bar.com will also have a RFC 1893 compliant error code 5.7.0.
#
# The username from the original address is passed as %1 allowing:
#
# @foo.org %1@example.com
#
# Additionally, if the local part consists of "user+detail" then "detail" is
# passed as %2 and "+detail" is passed as %3 when a match against user+* is
# attempted, so entries like
#
# old+*@foo.org new+%2@example.com
# gen+*@foo.org %2@example.com
# +*@foo.org %1%3@example.com
# X++@foo.org Z%3@example.com
# @bar.org %1%3
#
# Note: to preserve "+detail" for a default case (@domain) %1%3 must be used
# as RHS. There are two wildcards after "+": "+" matches only a non-empty
# detail, "*" matches also empty details, e.g., user+@foo.org matches#
# +*@foo.org but not ++@foo.org. This can be used to ensure that the
# parameters %2 and %3 are not empty.
#
# All the host names on the left hand side (foo.com, bar.com, and baz.org)
# must be in class {w} or class {VirtHost}. The latter can be defined by the
# macros VIRTUSER_DOMAIN or VIRTUSER_DOMAIN_FILE (analogously to
# MASQUERADE_DOMAIN and MASQUERADE_DOMAIN_FILE). If VIRTUSER_DOMAIN or
# VIRTUSER_DOMAIN_FILE is used, then the entries of class {VirtHost} are
# added to class {R}, i.e., relaying is allowed to (and from) those domains.
sendmail 파일 목록
[root@server1 ~]# ll /etc/mail
total 192
-rw-r--r--. 1 root root 469 Nov 28 2019 access
-rw-r-----. 1 root root 12288 Mar 19 11:56 access.db
-rw-r--r--. 1 root root 0 Mar 19 11:56 aliasesdb-stamp
-rw-r--r--. 1 root root 233 Nov 28 2019 domaintable
-rw-r-----. 1 root root 12288 Mar 19 11:56 domaintable.db
-rw-r--r--. 1 root root 5584 Apr 1 2020 helpfile
-rw-r--r--. 1 root root 64 Nov 28 2019 local-host-names
-rw-r--r--. 1 root root 997 Nov 28 2019 mailertable
-rw-r-----. 1 root root 12288 Mar 19 11:56 mailertable.db
-rwxr-xr-x. 1 root root 2700 Nov 28 2019 make
-rw-r--r--. 1 root root 92 Nov 28 2019 Makefile
-rw-r--r--. 1 root root 58498 Apr 1 2020 sendmail.cf
-rw-r--r--. 1 root root 7306 Nov 28 2019 sendmail.mc
-rw-r--r--. 1 root root 41680 Apr 1 2020 submit.cf
-rw-r--r--. 1 root root 1041 Apr 1 2020 submit.mc
-rw-r--r--. 1 root root 127 Nov 28 2019 trusted-users
-rw-r--r--. 1 root root 1847 Nov 28 2019 virtusertable
-rw-r-----. 1 root root 12288 Mar 19 11:56 virtusertable.db
① aliases
② access
③ local-host-names