시작부터 반성
원래 당일 배운거 당일 정리를 해야 하는데, 귀찮아서 미뤘더니 하루만에 다 까먹어버렸다.
그렇게 이틀이 지나고 주말이 지나버려서 뭘 배웠는지 그 생생한 기억을 다 잊어버렸다 ㅠ.ㅠ
수업 시 작성했던 메모 중심으로 정리를 하긴 하지만, 앞으로는 꼭 당일에 정리를 해야겠다.
짤막 간단 보안 상식 (나중에 자세히 알아보기)
http | 평문 전송 80번포트 |
https | http 내용을 암호화하기 위해 발전시킨 프로토콜. http내용을 443포트로 넘긴다. 하지만 443포트로 넘기기 전에는 평문이며, 열어서 볼 수 있다는 취약점이 있다. |
hsts | 처음부터 433포트로 진행이 돼, 열어서 볼 수 X |
QUIC | Quick UDP Internet Connections. 첨부터 암호화해서 전송. |
http/3 | 나중에 자세히 알아보기 |
FTP
설치
yum -y install vsftpd
systemctl restart vsftpd
yum -y install ftp
ftp 연결하기
[root@web ~]# ftp 70.12.113.64
Connected to 70.12.113.64 (70.12.113.64).
220 (vsFTPd 3.0.2)
Name (70.12.113.64:root): user01
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> passive
Passive mode off.
ftp> passive
Passive mode on.
ftp>
? 하면 사용할 수 있는 명령어 보임
binary 용량 큰 파일 보낼 때
hash
cd 는 접속한 서버 내에서 디렉터리 변경
접속한 디렉토리 말고, 다른 파일 경로로 받고 싶을 때. (local) lcd 로 받으면 /tmp 에 받아진다.
vsftp의 보안취약점
ftp 접속 계정과 시스템계정이 같다. very secure ftp 임에도 불구하고, 시스템 계정이 그대로 노출됨. ftp 만을 위한 가상 계정을 사용하는 게 좋음
장점은 파일 다운로드 업로드시 접속한 사용자 권한으로 설정되어, 편하다.
tcp-dump 에서 네트워크 정보 다 보임.
방화벽
firewall-cmd
[root@web ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
trust : zero trust 개념. 네트워크를 통과했어도 믿지 말고 한 번 더 검증하자.
iptables -L
FTP는 포트를 2개 사용한다. 근데 방화벽에서 포트는 21번반 열어서 활용한다. 전에는 포트 둘 다 열었는데, 그걸 stateless(상태고려X) 방식이다. 방화벽에 지나가는 모든 통신에 대해 정책을 넣어줘야 통신이 됨.
stateful inspection (상태 고려O)
네트워크는 메모리로 남음. 세션은 맺으면 established(related) 라고 해. 그런 애들은 by pass 로 걸어줌. 한 번 방화벽 통과한 서비스는 룰 정책 걸어줄 필요 없다.
RPC 통신 Remote Procedure call
user 를 하나 만들어서, 로그인이 안되는 사용자데몬을 동작시켜..
0~1023 프로세스 중 하나를 root 권한으로 이용해서 client 가 접속하면 들어오게 해줌. rpcinfo -p
ex. maria db
rpc보다 , 로그인 안되는 계정 하나 만들어서 프로세스 접속하도록 하는 게 편함.
파일 입출력에 대한 컨트롤 방법
쉡 프로그래밍
~ data.txt 에 저장
hong 28 011-222-2222 seoul
park 34 017-333-3333 kyunggi
im 23 019-444-4444 chungnam
son 49 016-555-5555 us
gil 19 018-666-6666 korea
jang 21 011-7777-7777 japan
lee 16 016-8888-8888 china
sa 45 017-9999-9999 canada
hwang 32 015-555-5555 kwangju
cut paste diff sort uniq sed awk
cut 은 빠르다. 기능적으로는 아쉽. 간격이 일정해야 함.
[root@web ~]# cut -d " " -f 1,3 data.txt
hong 011-222-2222
park 017-333-3333
im 019-444-4444
son 016-555-5555
gil 018-666-6666
jang 011-7777-7777
lee 016-8888-8888
sa 017-9999-9999
hwang 015-555-5555
[root@web ~]# cut -d ":" -f 1,7 /etc/passwd
root:/bin/bash
bin:/sbin/nologin
daemon:/sbin/nologin
adm:/sbin/nologin
lp:/sbin/nologin
sync:/bin/sync
grep -li umask /etc/* 2> /dev/null
//생각보다 많이 쓰인다.
grep -c root /etc/passwd
2
grep
fgrep
egrep
pgrep 은 프로세스 잡는거로 완전 다른거..
sort data.txt
기본적으로 오름차순
-
내림차순으로 -r
-
특정 필드 기준으로 정리하기 등 -t
# sort -n -r -t ":" -k3 /etc/passwd | head
uniq 명령을 쓰려면 sort 를 필수로 해야함.
sed : 출력 시 바꿔서 출력하는 거
sed ‘/japan/d’ data.txt → japan 삭제하고 출력
sed '/japan/p' data.txt → japan 두 번 나오게 출력
sed '1,3d' data.txt
sed 's/japan/bosung/g' data.txt
sed -n '5,$s/japan/bosung/gp' data.txt
sed -e 's/us/bosung/g' -e '/japan/d' data.txt
[root@web ~]# cat sedfilter
s/us/bosung/g
/japan/d
[root@web ~]# sed -f sedfilter data.txt
hong 28 011-222-2222 seoul
park 34 017-333-3333 kyunggi
im 23 019-444-4444 chungnam
son 49 016-555-5555 bosung
gil 19 018-666-6666 korea
lee 16 016-8888-8888 china
sa 45 017-9999-9999 canada
hwang 32 015-555-5555 kwangju
sed -f quiz data.txt | cut -d " " -f 1,3 | tail -5
[root@web ~]# cat quiz
s/japan/busan/g
/china/d
[root@web ~]# df -ThP | awk '{print $1, $6}'
Filesystem Use%
devtmpfs 0%
tmpfs 0%
tmpfs 1%
tmpfs 0%
/dev/mapper/centos-root 16%
/dev/mapper/vg--test-lv_test1 1%
/dev/mapper/vg--test-lv_test2 1%
/dev/mapper/centos-home 1%
/dev/sda1 19%
tmpfs 1%
[root@web ~]# df -ThP | awk '$2 == "xfs" {print $1, "사용량="$6}'
/dev/mapper/centos-root 사용량=16%
/dev/mapper/vg--test-lv_test1 사용량=1%
/dev/mapper/centos-home 사용량=1%
/dev/sda1 사용량=19%
df -ThP | sed 's/%//g' | awk '$2 == "xfs" && $6 > 10 {print $1, "사용량="$6"%"}'
awk '{print $3}' lastb.txt | grep ^ip- | sort -n | uniq | sed -e 's/ip-//g'
70.12.113.139
70.12.113.52.
70.12.113.54.
70.12.113.56.
70.12.113.59.
70.12.113.62.
70.12.113.64.
70.12.113.69.
70.12.113.71.
70.12.113.74.
70.12.113.75.
awk '{print $3}' lastb.txt | grep ^ip- | sort -n | uniq | sed -e 's/ip-//g' -e 's/\.$//g'
70-12-113-139
70-12-113-52
70-12-113-54
70-12-113-56
70-12-113-59
70-12-113-62
70-12-113-64
70-12-113-69
70-12-113-71
70-12-113-74
70-12-113-75
마지막 자리의 . 을 지워주기
` 숫자 1 앞에 있는 문자. `` 내의 결과를 의미한다.
파일 출력 강의
[root@web ~]# for i in `ls /proc | grep ^[0-9] | sort -n`
> do
> ls -l /proc/$i/exe 2>/dev/null
> done
[root@web ~]# cat awk_practice.txt
BEGIN {
sum=0;
line=0;
}
{
sum += $2;
line ++;
}
END {
average = sum / line;
print "나이의 평균 : " average " 세 ";
}
[root@web ~]# awk -f awk_practice.txt data.txt
나이의 평균 : 29.6667 세
NFS ( Network file system)
설치
yum -y install nfs-utils
mkdir -p /exports/hj
chmod 775 /exports/*
chown user01:nfsgroup /exports/*
cat /etc/exports
/exports/hj 70.12.113.0/24(rw,sync,sec=sys)
exportfs -r
systemctl restart nfs-server
showmount
showmount 70.12.113.64 --exports
'[혁신성장 청년인재] 인공지능을 활용한 보안전문가 양성과정' 카테고리의 다른 글
Day15-1: 클라우드 개념, 도커(Docker) 학습 (0) | 2020.07.27 |
---|---|
Day14: 리눅스 서버 실습| 미니 프로젝트 (0) | 2020.07.27 |
Day12: 리눅스 관리자| 메일 서버 구성 | APM 구성 | apache PHP MariaDB + 노브레이크(no.break)의 김석 대표님 멘토링 (2) | 2020.07.22 |
Day11: 리눅스 관리자 | DNS 서버 구성| DNS 조회 | nslookup | dig | host | DNS 서버 관리 (0) | 2020.07.21 |
Day10: 리눅스 관리자 복습 & 깃허브 특강 (0) | 2020.07.19 |