네트워크교육 24일차(2022.02.08) - 정리

정상훈·2022년 2월 8일
0
post-thumbnail

원격접속(mysql)

mysql_secure_installation
원래는 mysql을 설치하면 기본설정 이지만,
실행하면 간단하게 세팅해주는 명령어

mysql -h 접속할ip -u root -p
원격계정, 권한 있어야 성립

mysql 접속->show databases;
->mysql db 안에 계정정보있음 -> use mysql; -> select user, host From user where user NOT LIKE '';
-> GRANT ALL PRIVILEGES ON . TO test@'10.0.2.%' IDENTIFIED BY '1234';
-> 2번에서 mysql -h 10.0.2.5 -u test -p

DB관련 SQL

SHOW DATABASES;
데이터베이스들 조회

USE 데이터베이스 이름;
사용할 DB 선택

DB생성 삭제
CREATE DATEBASE DB_NAME;
DROP DATABASE DB_NAME;

테이블관련 SQL

SHOW TABLES;
테이블 조회

EXPLAIN TABLE_NAME;
DESCRIBE
DESC
테이블 정보(구조) 보기

CREATE TABLE TABLE_NAME (필드1 타입1 필드2 타입2);
테이블 생성

DROP TABLE TABLE_NAME
테이블 삭제

ALTER TABLE TABLE_NAME;
테이블 수정

ALTER TABLE TABLE_NAME 옵션
EX) ALTER TABLE [TABLE] ADD [컬럼명][타입]

ALTER TABLE member ADD COLUMN member idx INT;

테이터형의 종류

  • VARCHAR(n) ; 가변길이 문자열
  • CHAR(n) : 고정길이 문자열
  • INT : 정수형 숫자
  • float : 실수형 숫자
  • DATE : 날짜
  • TIME : 시간

레코드 삽입.삭제.수정

INSERT INTO table_name values (값1. 값2..);
UPDATE TALBE_Name 필드이름1=수정값, 필드이름2=수정값 .... WHERE 필터링 조건

UPDATE member SET id='kim' id='hong';

DELETE From 테이블이름 where 필터링 조건

테이블 조회

SELECT 필드명1, 필드이름2 .. From 테이블명 where 조건;

select * from 테이블명;

퀴즈

ID가 KIM인 사람의 나이는?

  • select age from member where id='kim';

KIM인 사람의 나이보다 나이가 많은 사람을 찾아보자

  • select name from member where age > 35;

조인영씨 나이를 50으로 바꿔보자

  • update member set age=50 where id='joe';

web서버 구축

LAMP

L : LINUX
A : APACHE
M : MariaDB(MYSQL)
P : PHP

웹 사이트 구축 실습

  • rpm -qa httpd php mariadb-server (설치 확인)

  • yum -y install mariadb-server mariadb php php-mysqlnd (php랑 db연결하는거)

  • systemctl restart httpd

  • systemctl enable httpd

  • systemctl restart mariadb

  • systemctl enable mariadb

  • firewall-cmd --permanent --add-service=http

  • firewall-cmd --reload

  • cd /var/www/html - touch phpinfo.php 생성

  • vi touch phpinfo.php

<? php phpinfo(); ?> 작성 후 :wq
  • 로컬호스트에서 192.168.56.xxx/phpinfo.php
  • 주소입력 확인 Vibox hostonly Adapter ip입력

게시판 구축 (Xpress Engine)

  • yum -y install php-gd*

  • vi /etc/httpd/conf/httpd.conf (아파치서버 파일)

  • 151번줄 AllowOverride All로 변경

  • /var/www/html/ .htaccess

  • .htaccess 파일에 접근 가능하게함.

  • xpressengine.com

  • xe1.zip 다운로드

  • /var/www/html 밑에 복사

  • unzip xe1.zip

xe전용 DB생성

  • mysql

  • xe용 db계정 생성

  • GRANT ALL PRIVILEGES ON xeDB.* TO XE@localhost IDENTIFIED BY '1234';

  • 접속

  • mysql -u XE -p

http 설정파일

  • /etc/httpd/conf 디렉터리의 httpd.conf 파일이 핵심 설정 파일

FTP 서비스 구축

  • FTP(21) : 파일전송 프로토콜
    포트를 2개씀,
    하나는 제어채널, 하나는 데이터 채널
    클라 <-> 21번포트 :
    제어채널 FTP명령어 입/출력
    다른포트 <-> 클라이언트 포트 연결 :
    데이터채널 (전송하는 파일을 업/다운로드함)
  • 단점 : 평문 통신
  • 해결책 :
    암호화 프로토콜인 SSL을 FTP에 적용,
    SSH의 서브모듈인 SFTP를 이용

TIP!

  • 보안상 root의 원격 접속은 막는게 좋음
    ssh는 기본적으로 root의 원격접속이 허용되어 있음. 막으려면 ?

vi /etc/ssh/sshd_config
38번줄 #PermitRootLogin yes -> #지우고 no로 바꾸면 완료!


SFTP

ssh켜지면 자동으로 켜짐
sftp root@10.0.2.5
filezilla에 포트번호 22 추가
업로드 다운로드 확인
cat /etc/ssh/sshd_config | grep sftp

FTP는 기본적으로 두 가지 종류의 계정 지원

1. 익명계정(Anonymous)

2. 서버등록계정(root,사용자계정 등..)

두 가지 전송 모드를 지원

  1. Active 모드

    클라이언트의 임의포트(1)에서 서버의 21(Command)번 포트로 접속 -> 
    통신 중 클라이언트에서 다른 포트(2)로 20(DATA)번 포트에 접속하려고 함,
    20번포트에서 DATA channel을 보내 다른포트(2)와 연결
    
    - 장 : 서버에서 오직 2개의 포트만 사용한다. 
    - 단 : 요즘 컴퓨터(사설 IP 사용) 공유기 환경에서는 사용이 힘들다. 
  1. Passive 모드

    클라이언트에서 21번포트로 접속 PASV 명령어 전송 FTP SERVER에서 임의의 포트를 열고
     클라이언트에서 임의의 포트로 데이터채널 연결
    
    - 장 : 공유기 환경이라도 사용이 가능하다. 클라이언트 접근이 불가해도 사용가능
    - 단 : 포트를 많이 사용함. 클라이언트의 개수마다 포트의 개수가 늘어남. 낭비가 일어난다.

FTP 실습

vsftpd : ftp서비스중 대표적인 서비스 중 하나 레드햇 계열 리눅스에서 많이 사용.

1번서버에서 진행

yum -y install vsftpd
systemctl restart vsftpd
systemctl enable vsftpd

firewall-cmd --permanent --add-service=ftp

firewall-cmd --reload

cd /var/ftp/pub
touch 1
touch 2

ftp서비스 이용

vmbox 윈도우에서 filezilla 다운

centos2

yum install -y ftp

cd /tmp/   touch3 , touch4

ftp 10.0.2.5 (centos1번에 접속)
anonymous

ls 

cd /pub

get 1 
get 2

cd /tmp
ls

centos 1 
/etc/vsftpd/ftpusers -> 접속을 허용하지 않을 계정 설정하는 ftp 설정파일

설정된 계정 생성

useradd test
passwd test
su - test
touch test1 
touch test2

ftp 10.0.2.5
test

ls

get test1 
get test2

put 1
put 2

window서버에서 filezilla 다운

호스트에 IP만 적고 연결하면 익명계정연결됨

서버1 root계정
vi /etc/vsftpd/vsftpd.conf
29 - #anon_upload_enable=YES ( 익명계정 업로드 허용) # 제거

33 - #anon_mkdir_write_enable=YES (익명계정 파일생성 허용)# 제거
:wq

systemctl restart vsftpd

filezilla 연결 후 업로드 확인
에러 

1번서버 root에서 
drwxr-xr-x. 2 root root 24 Feb  8 14:55 pub

소유자와 그룹이 root라서 외부에서 업로드 불가

chown ftp:ftp pub 
ls -ld pub 
drwxr-xr-x. 2 ftp ftp 24 Feb  8 14:55 pub

filezilla 업로드 가능

NFS 서비스 구축

  • NFS : 리눅스, 유닉스 컴퓨터끼리 저장공간을 공유하게 해주는 서비스
    서버의 리소스를 클라이언트상에서 마치 자신의 리소스를 사용하는 것처럼 사용할 수 있도록 제공

실습
centos1

rpm -qa nfs-utils
vi /etc/exports 공유 디렉토리 설정 파일 생성
/share	10.0.2.*(rw,sync)

mkdir /share
chmod 777 /share
touch /share/test


systemctl restart nfs-server
systemctl enable nfs-server

firewall-cmd --permanent --add-service nfs
firewall-cmd --permanent --add-service mountd
firewall-cmd --permanent --add-service rpc-bind
firewall-cmd --reload

exportfs -v -> nfs로 공유하는 디렉터리 정보 확인

sync옵션 : 충돌이 일어나지 않도록 A,B중 하나가 연결중일땐 나머지 하나의 연결을 막음


centos2
rpm -qa nfs-utils

showmount -e 10.0.2.5 -> /share 10.0.2.*

mkdir /nfs_share

mount -t nfs 10.0.2.5:/share /nfs_share

cd /nfs_share

touch test1
touch test2 
완료

ls -l 
-rw-r--r--. 1 root      root      0 Feb  8 16:11 test
-rw-r--r--. 1 nfsnobody nfsnobody 0 Feb  8 16:22 test1
-rw-r--r--. 1 nfsnobody nfsnobody 0 Feb  8 16:22 test2
profile
"@____

0개의 댓글