시스템보안
시스템 보안 체크리스트
root 계정 원격 접속 제한
telnet-server 설치, 설정, 서비스 시작
# yum -y install telnet-server
# vim /etc/xinetd.d/telnet
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
service xinetd restart
[root@localhost ~]# netstat -antup | grep 23
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2354/master
tcp 0 0 :::23 :::* LISTEN 3527/xinetd
tcp 0 0 ::1:25 :::* LISTEN 2354/master
telnet 접속 테스트 (ktest , root)
root는 로그인 불가, ktest는 로그인 성공
root 관련 설정 파일 확인
[root@localhost ~]# tty
사용자가 접속한 터미널의 종류
tty1 실제 터미널
pts/x 가상 터미널,x-window ,원격접속(telnet,ssh)
접근관련 파일
[root@localhost 바탕화면]# cat /etc/securetty
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11
관련 설정 파일 수정 후 다시 telnet 접속 테스트
-- 관련 파일 수정
# vim /etc/securetty
~~
pts/0
pts/1
pts/2
pts/3
pts/4
telnet 접속 시도
root 로그인 성공
root 로컬 접속 제한
/etc/pam.d/login
/etc/pam.d/login 두번째 행 주석처리
1 #%PAM-1.0
2 #auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
~~
결과 확인
centos 6]
# init 3 > root , ktest 로 로그인 > 잘됨
Mobaxterm]
/etc/pam.d/login 두번째 행 주석처리 해제
1 #%PAM-1.0
2 auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
파일편집
/etc/securetty 에서 tty1 , tty2 만 제외후 모두 주석처리
~
tty1
tty2
#tty3
#tty4
#tty5
#tty6
#tty7
#tty8
#tty9
#tty10
#tty11
init 3 > 로그인후 tty 명령어 이용 몇개의 터미널 사용 가능한지 확인
터미널 이동 > ctrl + alt + F1 ~
tty1 tty2 를 제외하고는 더이상 터미널 접근 불가능
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
해당 옵션은 /etc/securetty
이 옵션은 고급문법이 사용된 경우 입니다.
단순히 required 플래그를 사용하였을 경우와 다른 점
: user_unknown 리턴 값 입니다. 즉 등록되지 않은 유저일 경우 무시되게 됩니다.
user_unknown: 유저가 인증모듈에 등록되지 않은 경우
success: 성공
ignore: 해당 리턴값은 무시
default: 정확한 리턴값들이 없을 경우
required 를 사용시
[success=ok new_authtok_reqd=ok ignore=ignore default=bad] 와 결과 같음
* new_authtok_reqd: 인증 토큰이 유효하지 않은 경우
소유자가 불분명한 파일/디렉터리 찾기
사용자 생성
[root@localhost 바탕화면]# useradd test02
[root@localhost 바탕화면]# passwd test02
test02 사용자의 비밀 번호 변경 중
새 암호:
잘못된 암호: 사전에 있는 단어를 기반으로 합니다
새 암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
사용자 전환후 파일/디렉터리 생성 후 소유권 확인
[root@localhost 바탕화면]# su - test02
[test02@localhost ~]$ mkdir /var/tmp/test02_dir
[test02@localhost ~]$ touch /var/tmp/test02_file
ㅣㄴ -[test02@localhost ~]# find /var/tmp -name test02*
/var/tmp/test02_dir
/var/tmp/test02.txt
[test02@localhost ~]$ ls -al /var/tmp/test02_file
-rw-rw-r-- 1 test02 test02 0 2022-10-26 01:32 /var/tmp/test02_file
[test02@localhost ~]$ ls -ld /var/tmp/test02_dir/
drwxrwxr-x 2 test02 test02 4096 2022-10-26 01:32 /var/tmp/test02_dir/
사용자 삭제
[test02@localhost ~]$ exit
logout
[root@localhost 바탕화면]# userdel -r test02
소유자 / 소유그룹이 없는 파일 찾기
[root@localhost 바탕화면]# find /var/tmp/ -nouser -print
/var/tmp/test02_dir
/var/tmp/test02.txt
[root@localhost 바탕화면]# find /var/tmp/ -nogroup -print
/var/tmp/test02_dir
/var/tmp/test02.txt
[root@localhost 바탕화면]# ls -al /var/tmp/test02_dir/
합계 8
drwxrwxr-x 2 502 502 4096 2022-10-26 01:32 .
drwxrwxrwt. 3 root root 4096 2022-10-26 01:32 ..
[root@localhost 바탕화면]# ls -al /var/tmp/test02_file
-rw-rw-r-- 1 502 502 0 2022-10-26 01:32 /var/tmp/test02_file
복합 하여 사용
# find /var/tmp/ -nogroup -print -exec ls -l {} \;
조치 사항
[root@localhost 바탕화면]# chown test01:test01 /var/tmp/test02_file
[root@localhost 바탕화면]# chown test01:test01 /var/tmp/test02_dir/
[root@localhost 바탕화면]# ls -al /var/tmp/test02_file
-rw-rw-r-- 1 test01 test01 0 2022-10-26 01:32 /var/tmp/test02_file
[root@localhost 바탕화면]# ls -al /var/tmp/test02_dir
합계 8
drwxrwxr-x 2 test01 test01 4096 2022-10-26 01:32 .
drwxrwxrwt. 3 root root 4096 2022-10-26 01:32 ..
DNS zonetransfer 확인
DNS 기본 설정
# yum -y install bind*
# vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion no;
dnssec-enable no;
dnssec-validation no;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
# vim /etc/named.rfc1912.zones
~
zone "b12.kh" IN {
type master;
file "b12.kh.zone";
allow-update { none; };
allow-transfer { 172.16.0.111; };
};
~
영역 설정 체크
[root@localhost ~]# grep allow-transfer /etc/named.rfc1912.zones
allow-transfer { 172.16.0.111; };
httpd(apache 관련)
환경 설정
yum -y install httpd << 설치
service httpd restart << 서비스 시작
프로세스 확인
root@localhost 바탕화면]# ps -ef | grep apache
apache 3577 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3578 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3579 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3580 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3581 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3582 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3583 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3584 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
root 3587 3090 0 02:06 pts/0 00:00:00 grep apache
[root@localhost 바탕화면]# ps -ef | grep httpd
root 3574 1 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3577 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3578 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3579 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3580 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3581 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3582 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3583 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
apache 3584 3574 0 02:06 ? 00:00:00 /usr/sbin/httpd
root 3589 3090 0 02:06 pts/0 00:00:00 grep httpd
[root@localhost ~]# ls -al /usr/sbin/httpd
-rwxr-xr-x 1 root root 367136 2018-06-20 00:45 /usr/sbin/httpd
# vim /etc/httpd/conf/httpd.conf
~
231 # If you wish httpd to run as a different user or group, you must run
232 # httpd as root initially and it will switch.
233 #
234 # User/Group: The name (or #number) of the user/group to run httpd as.
235 # . On SCO (ODT 3) use "User nouser" and "Group nogroup".
236 # . On HPUX you may not be able to use shared memory as nobody, and the
237 # suggested workaround is to create a user www and use that user.
238 # NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
239 # when the value of (unsigned)Group is above 60000;
240 # don't use Group #-1 on these systems!
241 #
242 User apache
243 Group apache
이 부분이 httpd를 실행할 때 apache로 실행 되도록 표기되어 있는 부분 입니다.
댓글남기기