• Bez kategorii

04.02 Konfiguracja kontenera st1

Po instalacji kontenera i wstępnym skonfigurowaniu środowiska, sieci itp. czas przyjrzeć się temu co domyślnie działa i wyłączyć zbędne usługi. Wcześniej jednak ustawię sobie wygodniejsze środowisko do pracy zmieniając shella i katalog domowy roota. Użyję do tego GNU seda (gsed), którego już wcześniej polecałem zainstalować wraz z innymi narzędziami GNU ułatwiającymi pracę. Pamiętacie mam nadzieję, że /usr/local jest dziedziczone ze strefy globalnej w trybie tylko do odczytu.

root@feniks:~# cp /etc/zshrc /zones/st1/root/etc
root@feniks:~# zlogin st1 
[Connected to zone 'st1' pts/4]
Sun Microsystems Inc.	SunOS 5.10	Generic	January 2005
# mkdir /root
# /usr/local/bin/gsed -i "/^root:/ s/:\/:\/sbin\/sh/:\/root:\/bin\/zsh/" /etc/passwd
# echo "PATH=/usr/local/apache/bin:/usr/local/bin:$PATH" >> /etc/zshrc
# echo "export PATH" >> /etc/zshrc
# mv /.sunw /root
# exit

Przy kolejnym logowaniu zostanie już uruchomiona powłoka /bin/zsh i wczytany plik /etc/zshrc, który sobie skopiowałem wcześniej ze strefy globalnej i ustawiłem w nim ścieżki (na końcu). Oczywiście zsh jest przykładowy, ja akurat używam tego, możecie użyć basha, czy co tam kto lubi.

root@feniks:~# zlogin st1
[Connected to zone 'st1' pts/4]
Last login: Thu Aug 12 13:40:01 on pts/4
root@st1:~# mv /.histfile /root
root@st1:~# netstat -an

UDP: IPv4
   Local Address        Remote Address      State
-------------------- -------------------- ----------
      *.111                               Idle
      *.*                                 Unbound
      *.46901                             Idle
      *.*                                 Unbound
      *.*                                 Unbound
      *.46902                             Idle
      *.4045                              Idle
      *.6481                              Idle
      *.46922                             Idle
      *.46923                             Idle
      *.46925                             Idle
      *.514                               Idle

UDP: IPv6
   Local Address                     Remote Address                   State      If
--------------------------------- --------------------------------- ---------- -----
      *.6481                                                        Idle       

TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q    State
-------------------- -------------------- ----- ------ ----- ------ -----------
      *.111                *.*                0      0 49152      0 LISTEN
      *.*                  *.*                0      0 49152      0 IDLE
      *.43667              *.*                0      0 49152      0 LISTEN
      *.43668              *.*                0      0 49152      0 LISTEN
      *.4045               *.*                0      0 49152      0 LISTEN
      *.5987               *.*                0      0 49152      0 LISTEN
      *.514                *.*                0      0 49152      0 LISTEN
      *.6481               *.*                0      0 49152      0 LISTEN
      *.513                *.*                0      0 49152      0 LISTEN
      *.43669              *.*                0      0 49152      0 LISTEN
      *.79                 *.*                0      0 49152      0 LISTEN
      *.22                 *.*                0      0 49152      0 LISTEN
      *.23                 *.*                0      0 49152      0 LISTEN
      *.43712              *.*                0      0 49152      0 BOUND
127.0.0.1.6788             *.*                0      0 49152      0 LISTEN
127.0.0.1.6789             *.*                0      0 49152      0 LISTEN
127.0.0.1.43706            *.*                0      0 49152      0 LISTEN

TCP: IPv6
   Local Address                     Remote Address                 Swind Send-Q Rwind Recv-Q   State      If
--------------------------------- --------------------------------- ----- ------ ----- ------ ----------- -----
      *.514                             *.*                             0      0 49152      0 LISTEN      
      *.513                             *.*                             0      0 49152      0 LISTEN      
      *.79                              *.*                             0      0 49152      0 LISTEN      
      *.22                              *.*                             0      0 49152      0 LISTEN      
      *.23                              *.*                             0      0 49152      0 LISTEN      

Active UNIX domain sockets
Address  Type          Vnode     Conn  Local Addr      Remote Addr
60039b36758 stream-ord 30077930300 00000000 /var/run/.inetd.uds 

Sporo tych otwartych portów, nie wygląda to za dobrze, po co komu na przykład telnet? Oczywiście jeśli wstępna konfiguracja dokonywana była przez plik sysidcfg, to można było od razu tam określić profil jako limited_net i tym samym ograniczyć uruchamiane usługi. Jeśli jednak konfigurowaliśmy „z palca”, to będzie to wyglądać mniej-więcej tak jak powyżej. Można by wyłączać to pojedynczo używając poleceń svcadm, bo trzeba pamiętać, że usługi te uruchamiane są przez kolejną nowinkę z Solarisa 10 czyli Service Management Facility (w skrócie SMF).

root@st1:~# svcs
STATE          STIME    FMRI
legacy_run     15:41:36 lrc:/etc/rc2_d/S20sysetup
legacy_run     15:41:36 lrc:/etc/rc2_d/S72autoinstall
legacy_run     15:41:36 lrc:/etc/rc2_d/S73cachefs_daemon
legacy_run     15:41:36 lrc:/etc/rc2_d/S89PRESERVE
legacy_run     15:41:36 lrc:/etc/rc2_d/S98deallocate
legacy_run     15:41:36 lrc:/etc/rc3_d/S16boot_server
disabled       15:41:35 svc:/system/filesystem/volfs:default
online         15:41:31 svc:/system/svc/restarter:default
online         15:41:31 svc:/system/filesystem/root:default
online         15:41:31 svc:/network/loopback:default
online         15:41:32 svc:/network/pfil:default
online         15:41:32 svc:/system/boot-archive:default
online         15:41:32 svc:/system/installupdates:default
online         15:41:32 svc:/network/physical:default
online         15:41:32 svc:/system/filesystem/usr:default
online         15:41:33 svc:/system/identity:node
online         15:41:33 svc:/system/keymap:default
online         15:41:33 svc:/system/device/local:default
online         15:41:33 svc:/milestone/devices:default
online         15:41:33 svc:/system/filesystem/minimal:default
online         15:41:33 svc:/system/cluster/cl_boot_check:default
online         15:41:33 svc:/system/name-service-cache:default
online         15:41:33 svc:/system/rmtmpfiles:default
online         15:41:33 svc:/system/cryptosvc:default
online         15:41:33 svc:/system/identity:domain
online         15:41:33 svc:/network/ipsec/ipsecalgs:default
online         15:41:33 svc:/system/pkgserv:default
online         15:41:33 svc:/network/ipsec/policy:default
online         15:41:33 svc:/system/manifest-import:default
online         15:41:33 svc:/system/coreadm:default
online         15:41:33 svc:/system/patchchk:default
online         15:41:33 svc:/milestone/network:default
online         15:41:33 svc:/milestone/single-user:default
online         15:41:33 svc:/network/initial:default
online         15:41:33 svc:/network/routing-setup:default
online         15:41:33 svc:/system/filesystem/local:default
online         15:41:33 svc:/network/service:default
online         15:41:33 svc:/network/shares/group:default
online         15:41:34 svc:/network/dns/client:default
online         15:41:34 svc:/system/sysidtool:net
online         15:41:34 svc:/system/boot-archive-update:default
online         15:41:34 svc:/milestone/name-services:default
online         15:41:34 svc:/network/rpc/bind:default
online         15:41:34 svc:/system/cron:default
online         15:41:34 svc:/network/nfs/mapid:default
online         15:41:34 svc:/network/nfs/cbd:default
online         15:41:34 svc:/system/sysidtool:system
online         15:41:34 svc:/network/nfs/status:default
online         15:41:34 svc:/milestone/sysconfig:default
online         15:41:34 svc:/network/nfs/nlockmgr:default
online         15:41:34 svc:/application/stosreg:default
online         15:41:34 svc:/system/sac:default
online         15:41:34 svc:/network/inetd:default
online         15:41:34 svc:/application/management/wbem:default
online         15:41:34 svc:/system/utmp:default
online         15:41:35 svc:/network/rpc/gss:default
online         15:41:35 svc:/network/security/ktkt_warn:default
online         15:41:35 svc:/network/shell:default
online         15:41:35 svc:/network/stlisten:default
online         15:41:35 svc:/network/stdiscover:default
online         15:41:35 svc:/network/nfs/client:default
online         15:41:35 svc:/network/login:rlogin
online         15:41:35 svc:/network/rpc/rusers:default
online         15:41:35 svc:/network/rpc/rstat:default
online         15:41:35 svc:/system/filesystem/autofs:default
online         15:41:35 svc:/network/rpc/smserver:default
online         15:41:35 svc:/network/nfs/rquota:default
online         15:41:35 svc:/network/finger:default
online         15:41:35 svc:/network/ssh:default
online         15:41:35 svc:/system/system-log:default
online         15:41:35 svc:/network/telnet:default
online         15:41:35 svc:/network/rpc-100235_1/rpc_ticotsord:default
online         15:41:36 svc:/milestone/multi-user:default
online         15:41:36 svc:/milestone/multi-user-server:default
online         15:41:47 svc:/system/webconsole:console
online         15:50:44 svc:/system/console-login:default

Dużo tego i niby skąd wiedzieć co należy wyłączyć? Wszystkie procesy RPC? Finger, Telnet? Co jeszcze? Proponuję zrobić to inaczej, na początek zastosujmy profil limited_net i sprawdźmy co się stanie:

root@st1:~# svccfg apply /var/svc/profile/generic_limited_net.xml
root@st1:~# netstat -an

UDP: IPv4
   Local Address        Remote Address      State
-------------------- -------------------- ----------
      *.111                               Idle
      *.*                                 Unbound
      *.46901                             Idle
      *.514                               Idle

TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q    State
-------------------- -------------------- ----- ------ ----- ------ -----------
      *.111                *.*                0      0 49152      0 LISTEN
      *.*                  *.*                0      0 49152      0 IDLE
      *.5987               *.*                0      0 49152      0 LISTEN
      *.22                 *.*                0      0 49152      0 LISTEN
      *.43712              *.*                0      0 49152      0 BOUND
127.0.0.1.6788             *.*                0      0 49152      0 LISTEN
127.0.0.1.6789             *.*                0      0 49152      0 LISTEN
127.0.0.1.43706            *.*                0      0 49152      0 LISTEN

TCP: IPv6
   Local Address                     Remote Address                 Swind Send-Q Rwind Recv-Q   State      If
--------------------------------- --------------------------------- ----- ------ ----- ------ ----------- -----
      *.22                              *.*                             0      0 49152      0 LISTEN      

Active UNIX domain sockets
Address  Type          Vnode     Conn  Local Addr      Remote Addr
60039b36758 stream-ord 30077930300 00000000 /var/run/.inetd.uds 

Już lepiej, ale to jeszcze nie wszystko. Wyrzućmy jeszcze rpc/* jeśli nie są potrzebne, autofs i volfs

root@st1:~# svcs|grep rpc                 
online         14:39:51 svc:/network/rpc/bind:default
online         14:39:52 svc:/network/rpc/gss:default
online         14:39:52 svc:/network/rpc/smserver:default
online         14:39:52 svc:/network/rpc-100235_1/rpc_ticotsord:default
root@st1:~# svcs|gawk '/rpc/ { print $3 }'|xargs svcadm disable
root@st1:~# svcs|grep rpc
root@st1:~# svcs -xv
svc:/network/rpc/bind:default (RPC bindings)
 State: disabled since Thu Aug 12 14:46:32 2010
Reason: Disabled by an administrator.
   See: http://sun.com/msg/SMF-8000-05
   See: man -M /usr/share/man -s 1M rpcbind
   See: /var/svc/log/network-rpc-bind:default.log
Impact: 1 dependent service is not running:
        svc:/system/filesystem/autofs:default
root@st1:~# svcadm disable autofs
root@st1:~# svcadm disable volfs
root@st1:~# svcs -xv

Z doświadczenia podpowiem, że teraz warto wykonać reboot kontenera i sprawdzić stan usług po ponownym zalogowaniu

root@st1:~# reboot

[Connection to zone 'st1' pts/4 closed]
root@feniks:~# zlogin st1
[Connected to zone 'st1' pts/4]
Last login: Thu Aug 12 14:47:55 on pts/4
root@st1:~# svcs -xv            
svc:/network/security/ktkt_warn:default (Kerberos V5 warning messages daemon)
 State: maintenance since Thu Aug 12 14:47:56 2010
Reason: Restarter svc:/network/inetd:default gave no explanation.
   See: http://sun.com/msg/SMF-8000-9C
   See: man -M /usr/share/man -s 1M ktkt_warnd
Impact: This service is not running.

root@st1:~# netstat -an

UDP: IPv4
   Local Address        Remote Address      State
-------------------- -------------------- ----------
      *.514                               Idle

TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q    State
-------------------- -------------------- ----- ------ ----- ------ -----------
      *.5987               *.*                0      0 49152      0 LISTEN
      *.22                 *.*                0      0 49152      0 LISTEN
      *.40180              *.*                0      0 49152      0 BOUND
127.0.0.1.6788             *.*                0      0 49152      0 LISTEN
127.0.0.1.6789             *.*                0      0 49152      0 LISTEN
127.0.0.1.40174            *.*                0      0 49152      0 LISTEN

TCP: IPv6
   Local Address                     Remote Address                 Swind Send-Q Rwind Recv-Q   State      If
--------------------------------- --------------------------------- ----- ------ ----- ------ ----------- -----
      *.22                              *.*                             0      0 49152      0 LISTEN      

Active UNIX domain sockets
Address  Type          Vnode     Conn  Local Addr      Remote Addr
30040ed8bd0 stream-ord 300397d2380 00000000 /var/run/.inetd.uds

Jeśli nie będziemy używać konsoli webowej do zarządzania, to możemy wyłączyć również i te usługi, no i tego demona od Kerberosa

root@st1:~# svcadm disable wbem webconsole
root@st1:~# svcadm disable ktkt_warn
root@st1:~# svcs -xv
root@st1:~# netstat -an

UDP: IPv4
   Local Address        Remote Address      State
-------------------- -------------------- ----------
      *.514                               Idle

TCP: IPv4
   Local Address        Remote Address    Swind Send-Q Rwind Recv-Q    State
-------------------- -------------------- ----- ------ ----- ------ -----------
      *.22                 *.*                0      0 49152      0 LISTEN

TCP: IPv6
   Local Address                     Remote Address                 Swind Send-Q Rwind Recv-Q   State      If
--------------------------------- --------------------------------- ----- ------ ----- ------ ----------- -----
      *.22                              *.*                             0      0 49152      0 LISTEN      

Active UNIX domain sockets
Address  Type          Vnode     Conn  Local Addr      Remote Addr
3000a4dcd38 stream-ord 30022517c00 00000000 /var/run/.inetd.uds

No to został tylko syslog na 514/UDP oraz SSH na porcie 22/TCP. Oczywiście jeśli będziemy logować się do kontenera tylko przez zlogin, to SSH można też wyłączyć.

Może Ci się również spodoba

Dodaj komentarz