신규 BM OS 설치
1. OS 설치 세부
- lvm 구성
※ vg name은 vg0으로 설정
/boot 1G
/boot_efi 1G
/ 30G
/var 20G
/home 10G
swap 32G
/sysadmin 15G
/imsi *
- minimal os : standard + system tool
- timezone : seoul
2. hostname 설정
- OS 설치시 세팅 or /etc/hostname 수정
3. bonding 설정
1) Master (/etc/sysconfig/network-scripts/ifcfg-bond0)DEVICE=bond0TYPE=bondNAME=bond0ONBOOT=yesBOOTPROTO=staticIPADDR=[ip]PREFIX=24GATEWAY=[gateway ip]BONDING_MASTER=yesBONDING_OPTS="mode=1 miimon=100"
nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup, miimon=100"
## mode 는 1로 설정해도 된다.
## nmcli device status 로 상태 확인하면 연결되었다고 보인다
## gateway로 ping도 간다. 하지만 타 서버와 정상적으로 통신하려면 slave 설정 후 nmcli connection up bond0 해줘야 한다.
2) Slave (/etc/sysconfig/network-scripts/?) TYPE=Ethernet BOOTPROTO=static NAME=[device name] UUID=[] DEVICE=[device name] ONBOOT=yes MASTER=bond0 SLAVE=yes ETHTOOL_OPTS="-K ${DEVICE} gso off gro off tso off lro off; -G ${DEVICE} rx4096 tx4096" #RHEL7까지 사용 RHEL8부터 명령어 사용
# nmcli con modify <네트워크인터페이스> ethtool.feature-gso off ethtool.feature-gro off ethtool.feature-tso off ethtool.feature-lro off ethtool.ring-rx 4096 ethtool.ring-tx 4096# nmcli connection up <네트워크인터페이스>
nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname ens2f0 master bond0
nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname ens4f0 master bond0
3) ip setting
nmcli connection modify bond0 ipv4.addresses 'X.X.X.X/24'
nmcli connection modify bond0 ipv4.gateway 'X.X.X.X'
nmcli connection modify bond0 ipv4.dns 'X.X.X.X'
이 외에 파일을 열어서 BOOTPROTO=static으로 변경하고 IPv6는 삭제하는 게 좋다.
※ 여기부터 관리서버에서 수행
4. 관리 파일 업로드
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@[ip]
# scp -r /DATA/sysadmin/* root@[ip]:/sysadmin/
※ 여기에는 관리용 스크립트, 커널 패치파일, linux image 등이 포함된다.
# scp /DATA/config/hosts root@[ip]:/etc/hosts
※ hosts 파일 복사는 기본적으로 백업서버, ntp서버 IP를 포함한다.
# scp /DATA/config/chrony.conf root@[ip]:/etc/chrony.conf
※ chrony server 추가때문에 복사한다.
5. kdump 설정
/etc/default/grub 파일 수정
GRUB/CMDLINE_LINUX="crashkernel=512M rhgb quiet LANG=en_US.UTF-8 nmi_watchdog=0 transparent_hugepage=never elevator=noop ipv6.disable=1 mce=ignore_ce intel_pstate=disable intel_idle.max_cstate=0 processor.max_cstate=1"
해당 서버에서 grub 재설정
# grub2-mkconfig -o /boot/grub2/grub.cfg
# ssh root@[ip] "sed -i 's/save_raw$/#save_raw/g' /usr/bin/kdumpctl"
# ssh root@[ip] lvcreate -n DUMP -L [memorysize, 128G보다 크면 128G] vg0;
# ssh root@[ip] lvcreate -n CRASH -L [DUMP SIZE + 1G] vg0;
# ssh root@[ip] mkfs.xfs -f /dev/vg0/CRASH;
# ssh root@[ip] mkdir /CRASH
# ssh root@[ip] 'echo "/dev/vg0/CRASH /CRASH xfs defaults 0 0" >> etc/fstab'
# ssh root@[ip] mount -a
# scp /DATA/config/kdump.conf root@[ip]:/etc/kdump.conf
※ kdump.conf 에는 딱 두줄만 있으면 된다.
raw /dev/vg0/DUMP
core_collector makedumpfile -c -d 31 -F
# ssh root@[ip] systemctl restart kdump
※ 해당 서버에서 반드시 테스트 필요
echo c > /proc/sysrq-trigger # 테스트
makedumpfile -R /CRASH/vmcore < /dev/vg0/DUMP
/CRASH/vmcore 파일 사이즈가 0이 아니고 success로 정상적으로 생성된다면 ok
dd if=/dev/zero of=/dev/vg0/DUMP bs=1b count=1 명령어로 디바이스를 클리어 해주자 안그럼 DUMP가 생성되지 않을 수 있다.
6. kernel patch and firewall, selinux disable
# ssh root@[ip] 'yum localinstall /sysadmin/kernel/kernel*'
# ssh root@[ip] systemctl stop firewalld
# ssh root@[ip] systemctl disable firewalld
# scp /DATA/config/selinux root@[ip]:/etc/sysconfig/selinux
※ SELINUX=disabled 설정 때문에 복사한다. 직접 수정해도 무관
# ssh root@[ip] reboot
7. OS Image mount
# scp /DATA/config/rhel.repo root@[ip]:/etc/yum.repos.d/rhel.repo
※ repository 설정 때문에 복사한다.
# ssh root@[ip] mount -o loop /sysadmin/rhel* /media
※ loop 는 image를 block i/o 할 수 있게 해주는 가상 디바이스다.(windows의 데몬툴이나 시디스페이스 같은 느낌?) 이미지를 마운트할 때 해당 옵션을 주지 않아도 자동으로 /dev/loop[#] 디바이스를 생성하며, losetup로 조회 가능하다.
# ssh root@[ip] yum update
8. basic package install
# ssh root@[ip] yum install -y nfs-utils
# ssh root@[ip] yum install -y net-tools
# ssh root@[ip] yum install -y lvm2
# ssh root@[ip] yum install -y sysstat
# ssh root@[ip] yum install -y unzip
# ssh root@[ip] yum install -y psmisc
# ssh root@[ip] yum install -y perl
# ssh root@[ip] yum install -y ksh
# ssh root@[ip] yum install -y tcsh
# ssh root@[ip] yum install -y gdisk
# ssh root@[ip] yum install -y createrepo
# ssh root@[ip] yum install -y pciutils
# ssh root@[ip] yum install -y traceroute
# ssh root@[ip] yum install -y device-mapper-multipath
# ssh root@[ip] yum install -y systemd
# ssh root@[ip] yum install -y libgudev1
# ssh root@[ip] yum install -y polkit
# ssh root@[ip] yum install -y grub2-efi-x64-modules
# ssh root@[ip] yum install -y java-1.8.0-openjdk
9. ntp configure
# ssh root@[ip] systemctl restart chronyd
# ssh root@[ip] systemctl enable chronyd
# ssh root@[ip] chronyc sources
10. OS backup configure
# ssh root@[ip] yum install -y rear genisoimage syslinux
# scp -r /DATA/config/rear/* root@[ip]:/etc/rear/
※ rear 설정을 위해서 복사한다.
# scp /DATA/config/cron.allow root@[ip]:/etc/cron.allow
# scp /DATA/config/cron root@[ip]:/var/spool/cron/root
※ cron에 OS 백업 수행하는 부분을 넣기 위해서 복사한다.
11. multipath setting
# ssh root@[ip] mpathconf --enable
# ssh root@[ip] systemctl start multipathd
# ssh root@[ip] systemctl enable multipathd
# scp /DATA/config/multipath.conf root@[ip]:/etc/multipath.conf
※ alias 문제로 /etc/multipath.conf 는 수동 설정
※ multipath -ll 결과의 wwid 리스트에 입력. alias는 LOCAL(or SHARE)_DATA01_500G 로 표기
※ 나중에 한꺼번에 조회해서 관리하기 위해서는 이름이 표준화 되어야 한다.
#ssh root@[ip] systemctl restart multipathd
12. Safe Architect Configure
# ssh root@[ip] ln -sf /dev/null /lib/systemd/system/ctrl-alt-del.target
# scp /DATA/config/sysctl.conf root@[ip]:/etc/sysctl.conf
※ 각종 커널 및 네트워크 세팅이 들어간다.
# scp /DATA/config/limits.conf root@[ip]:/etc/security/limits.conf
※ cat /proc/sys/fs/file-max 명령어 결과에 따라 조절 가능. 기본은 65535로 세팅
# scp /DATA/config/20-nproc.conf root@[ip]:/etc/security/limits.d/20-nproc.conf
# scp /DATA/config/logrotate.conf root@[ip]:/etc/logrotate.conf
# scp /DATA/config/profile root@[ip]:/etc/profile
# scp /DATA/config/bash_history.sh root@[ip]:/etc/profile.d/bash_history.sh
# scp /DATA/config/cmd_history.sh root@[ip]:/etc/profile.d/cmd_history.sh
13. Security Configure
# scp /DATA/config/system-auth root@[ip]:/etc/pam.d/system-auth
# scp /DATA/config/login.defs root@[ip]:/etc/login.defs
# scp /DATA/config/issue root@[ip]:/etc/issue
# scp /DATA/config/issue root@[ip]:/etc/issue.net
# scp /DATA/config/issue root@[ip]:/etc/motd
# scp /DATA/config/services root@[ip]:/etc/services
# scp /DATA/config/sudoers root@[ip]:/etc/sudoers
# ssh root@[ip] touch /etc/hosts.equiv
# ssh root@[ip] chmod 000 /etc/hosts.equiv
# ssh root@[ip] chmod 644 /etc/passwd
# ssh root@[ip] chmod 644 /etc/group
# ssh root@[ip] chmod 000 /etc/shadow
# ssh root@[ip] chmod 400 /etc/security/passwd
# ssh root@[ip] chmod 644 /etc/hosts
# ssh root@[ip] chmod 644 /etc/services
# ssh root@[ip] chmod 700 /usr/bin/last
# ssh root@[ip] chmod 700 /usr/sbin/ifconfig
# ssh root@[ip] chmod 644 /etc/profile
# ssh root@[ip] chmod 600 /etc/xinetd.conf
# ssh root@[ip] chmod go-w /etc/pam.d/system-auth
# ssh root@[ip] chmod 644 /etc/rsyslog.conf
# ssh root@[ip] chmod go-w /etc/exports
# ssh root@[ip] chmod go-w /etc/dfs/dfstab
# ssh root@[ip] chmod go-w /etc/cron.allow
# ssh root@[ip] chmod 640 /etc/cron.deny
# ssh root@[ip] chmod 640 /etc/at.allow
# ssh root@[ip] chmod 640 /etc/at.deny
# ssh root@[ip] chmod o-r /etc/cron.d/*
# ssh root@[ip] chmod 600 /var/log/wtmp
# ssh root@[ip] chmod 600 /var/log/utmp
# ssh root@[ip] chmod 660 /var/log/btmp
# ssh root@[ip] chmod 600 /var/log/sulog
# ssh root@[ip] chmod 600 /var/log/messages
# ssh root@[ip] chmod 640 /var/log/lastlog
# ssh root@[ip] chmod o-x /usr/bin/cc
# ssh root@[ip] chmod o-x /usr/bin/gcc
# ssh root@[ip] chmod 755 /usr/bin/newgrp
# ssh root@[ip] chmod 755 /usr/sbin/unix_chkpwd
# ssh root@[ip] chmod 755 /usr/bin/at
# ssh root@[ip] chmod o-x /usr/bin/su
# ssh root@[ip] groupdel lp
/lib/tmpfiles.d/var.conf 파일에서 /var/log 이하 파일 권한 바꿔줄 수 있다. 리붓시 적용 됨. btmp, wtmp 640 이하, lastlog 644 이하로 수정 후 저장. 리붓.
14. Admin User add
?
ssh root@[ip] 'chmod -R o-r /home/*/.b*'
ssh root@[ip] 'chmod -R o-r /home/*/.k*'
ssh root@[ip] 'chmod -R o-r /home/*/.z*'
ssh root@[ip] 'chmod -R o-r /home/*/.c*'
ssh root@[ip] 'chmod -R o-r /home/*/.t*'
ssh root@[ip] 'chmod o-r /root/.b*'
ssh root@[ip] 'chmod o-r /root/.k*'
ssh root@[ip] 'chmod o-r /root/.z*'
ssh root@[ip] 'chmod o-r /root/.c*'
ssh root@[ip] 'chmod o-r /root/.t*'
15. RTC time 이 Universal time과 다를 경우 RTC in local TZ 는 no 로 설정해야 한다. (어차피 timedatectl 치면 경고가 나온다.)
timedatectl set-local-rtc 0
last. root access deny
# scp /DATA/config/sshd_config root@[ip]:/etc/ssh/sshd_config
'Linux' 카테고리의 다른 글
nmap 사용법 (0) | 2023.01.02 |
---|---|
SAN Usable Port 수 조회 스크립트 (0) | 2022.12.05 |
ssh scp 패스워드 없이 사용하기 (0) | 2022.10.13 |
ssh 이용한 port forwarding (포트 포워딩) (0) | 2022.10.13 |
Redhat top 명령어 단축키 (0) | 2022.10.12 |
댓글