원격접속(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;
테이터형의 종류
레코드 삽입.삭제.수정
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인 사람의 나이는?
KIM인 사람의 나이보다 나이가 많은 사람을 찾아보자
조인영씨 나이를 50으로 바꿔보자
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
게시판 구축 (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
create database xeDB;
확인
CMS : 웹사이트 뚝딱 만들어주는 툴
http 설정파일
FTP 서비스 구축
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,사용자계정 등..)
두 가지 전송 모드를 지원
Active 모드
클라이언트의 임의포트(1)에서 서버의 21(Command)번 포트로 접속 ->
통신 중 클라이언트에서 다른 포트(2)로 20(DATA)번 포트에 접속하려고 함,
20번포트에서 DATA channel을 보내 다른포트(2)와 연결
- 장 : 서버에서 오직 2개의 포트만 사용한다.
- 단 : 요즘 컴퓨터(사설 IP 사용) 공유기 환경에서는 사용이 힘들다.
Passive 모드
클라이언트에서 21번포트로 접속 PASV 명령어 전송 FTP SERVER에서 임의의 포트를 열고
클라이언트에서 임의의 포트로 데이터채널 연결
- 장 : 공유기 환경이라도 사용이 가능하다. 클라이언트 접근이 불가해도 사용가능
- 단 : 포트를 많이 사용함. 클라이언트의 개수마다 포트의 개수가 늘어남. 낭비가 일어난다.
FTP 실습
vsftpd : ftp서비스중 대표적인 서비스 중 하나 레드햇 계열 리눅스에서 많이 사용.
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서비스 이용
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
서버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 서비스 구축
실습
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