복습 요약
1. root 접속 금지 : /etc/ssh/sshd_config 파일의 PermitRootLogin No
2. 관리자 사용자 생성 useradd -g whell liunuxadmin
3. PAM 모듈 권한제한 : /etc/pam.d/su 파일에 pam_wheel.so 모듈 사용
4. 방화벽 설정 : firewall-cmd --permanent --add-service={http,https}
firewall-cmd --reload
firewall-cmd --list-services
(alias fl='firewall-cmd --list-services' 로 간략화 할 수 있지만, 초반에는 추천하지 않음)
yum -y install bash-completion
=> centos7에서 rockey8처럼 firewall-cmd --<tab><tab>으로 리스트를 볼 수 있게 해주는 패키지
5. 웹서버 설정파일 수정 (html의 php 인식)
vi /etc/httpd/conf.d/php.conf
<FilesMatch \.(php|html)$>
6. /etc/my.cnf: MariaDB의 설정파일
편의성을 위한 설정 추가.
ss -nltp로 서비스 확인
(n 숫자표기, l 리스닝포트, t tcp포트, p 프로그램)
7. mysql(mariadb) 설정 /etc/my.cnf
$HOME/.my.cnf 파일로 자동접속을 할 수 있다. mysql 사용 중 비밀번호를 변경하면 .my.cnf 파일도 변경해주어야 한다
(* 최신 버전에서는 .my.cnf 파일이 필요없게 되었다)
(ubuntu OS에서 ip 고정을 하려는데 vi도 ifconfig도 없어서 죄다 설치함
우분투는 vi /etc/netplan/00-installer-config.yaml를 수정한뒤에 reboot 해주었다.)
cat /etc/redhat-release
=> OS 버전 확인하기
불필요한 사용자 / db 삭제
- 비밀번호가 없는 사용자, test 샘플 db
ex delete from user where password = ''; 또는 delete from user where user!='localhost';
flush privileges;
mariadb 위치 : /var/lib/mysql
mariadb - DB 디렉터리 : /var/lib/mysql/DB이름
mariadb - Table 디렉터리 : /var/lib/mysql/DB이름/Table이름
mysql mysql
| └ DB
└DBMS 안으로 접속하는 클라이언트 명령어
gnuboard그누보드 설치
yum -y install php-gd gd gd-devel libjpeg libjpeg-devel giflib giflib-devel libpng libpng-devel freetype freetype-devel
=> GD 라이브러리(PHP 그래픽 생성/조절) 설치
yum -y install php php-common php-mysql
=> php 관련 패키지 설치
모듈설명
php-gd
=> 확장 모듈. php에서 이미지를 생성하고 편집하는 기능 사용
gd
=> 이미지 생성, 편집과 그리기를 위한 그래픽 라이브러리
gd-devel
=> gd 라이브러리의 개발 파일 포함. gd 라이브러리를 사용해 프로그램 개발시 사용
libjpeg, libjpeg-devel
=> jpeg 이미지 형식의 지원을 위한 라이브러리. jpeg 파일을 생성하고 읽는 기능
giflib, giflib-devel
=> gif 이미지 형식의 지원을 위한 라이브러리. gif 파일을 생성하고 읽는 기능
pnglib, pnglib-devel
=> png 이미지 형식 지원, 생성, 읽는 기능
freetype, freetype-devel
=> Truetype 및 postscript 형식 글꼴 렌더링 지원. freetype 글꼴렌더링. freetype-devel은 freetype 라이브러리를 사용해 개발할 때 필요한 개발파일 포함
( -devel = 개발 라이브러리를 의미함 )
gnuboard 관리자 dbms 생성
# mysql
# create gnuboard;
# grant all privileges on gnuboard.* to gnuboard@localhost;
# exit
# show databases;
# show grants all gnuboard@localhost;
yum -y install git
git을 이용하기 위해 설치
git clone https://github.com/gnuboard/gnuboard5.git
mkdir -m 777 gnuboard5/data
chcon -t httpd_sys_rw_content_t gnuboard5/data
=> 웹에서 data 디렉터리에 파일을 생성해야 하기 때문에, 777로 권한 변경하고 chcon 명령어로 보안 context 변경 (SELinux 컨텍스트)
ls -dZ 명령어로 context 상태 확인 가능
httpd_sys_rw_content_t
=> 설정된 컨텐츠에 대해 read 와 write 권한을 갖게 해줌
(centos7부터, 보안강화를 위해 httpd_unified boolean의 설정이 off로 변경되었다.
httpd_unified boolean은 웹서버와 웹서버의 콘텐츠를 동일한 룰로 처리하는데,
7부터는 off가 되어 콘텐츠에는 읽기 전용 권한만 있다
때문에 SELinux context를 재지정해준 것)
그누보드 주소 : http://<웹서버IP주소>/gnuboard5/
Apache + Tomcat + MariaDB 환경
: WEB Server와 Tomcat이 연동하지 않은 경우
DNS
Server
↕ ┌ firewall
WEB │Tomcat DBMS
Client ↔│ WAS ↔ MariaDB
(Apache (3306/tcp)
Tomcat)
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel \
tomcat tomcat-webapps tomcat-admin-webapps
=> jsp 환경은 java기반이어서 java를 먼저 설치
vi /etc/tomcat/tomcat-users.xml
=> admin-gui를 수정해 admin user password와 roles 설정
systemctl enable --now tomcat
=> 톰캣 서비스 활성화
centos7 기준 톰캣은 8005 8009 8080 포트 세 개가 열린다
8080 : 기본 포트
8005 : HTTP 프로토콜 처리용 내부 접속 포트
8009 : mod_jk.so를 이용해 아파치 웹서버와 통신하기 위한 포트
(ss 또는 netstat를 이용. ex ss -ntl | grep java )
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
=> 방화벽에 8080 포트 활성화
http://<웹서버IP주소>:8080 으로 접속하면 톰캣 페이지가 나타난다
cd /usr/share/tomcat/webapps/ROOT <= 톰캣의 웹 기본경로
vi hello.jsp
=> 기본경로에 jsp 파일 만들어보기.
jsp : 자바 서블릿 페이지. java 기술을 사용해 동적 웹페이지를 생성하는 서버 측 웹 기술.
과정: 클라이언트에서 jsp 페이지를 요청하면, 톰캣서버에서 jsp 파일을 처리해서 html로 변환한 후 브라우저에 반환
아파치 웹서버 : 정적인 페이지 담당 (http 80번 혹은 https 443번 포트)톰캣 : 동적인 페이지 담당 (8080, 8009, 8005)(웹서버와 연동하면 일반적으로 8080 포트는 닫아준다. 톰캣은 동적인 페이지만 담당하고, 웹서버가 앞단에서 접속을 받아주는 것으로 분할함)
: WEB Server와 Tomcat이 연동한 경우
DNS
Server
↕ ┌ firewall
WEB │ WEB Tomcat DBMS
Client ↔│ Server ↔ WAS ↔ MariaDB
(Apache (3306/tcp)
Tomcat)
웹서버와 연동하기 위해 커넥터 모듈인 tomcat-connectors를 설치한다.
yum -y install gcc wget httpd httpd-devel
wget https://mirror.navercorp.com/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.49-src.tar.gz
tar xzf tomcat-connectors-1.2.49-src.tar.gz
cd tomcat-connectors-1.2.49-src/native
./configure --with-apxs=/usr/bin/apxs
make
make install
=> wget으로 아파치 미러 사이트에서 다운로드를 받는다. tar xzf로 압축을 푼다.
압축을 푼 파일 안으로 들어가서 파일을 실행, make로 컴파일하고 make install로 설치.
ll /usr/lib64/httpd/modules/mod_jk*
=> 설치가 완료되면 모듈디렉터리에 mod_jk.so가 생겨나있다
mod_jk.so
=> 클라이언트가 서버로 접속하면 url과 port를 확인해 WAS(Tomcat)로 보낸다
모듈은 .so 확장자를 가진다.
(ex libphp5.so 는 php5의 모듈임)
vi /etc/httpd/conf/httpd.conf
vi /etc/httpd/conf/workers.properties
=> 추가된 설정들은 다음시간에 설명해주기로 하심
톰캣 포트 8080 비활성화하기
vi +71 /etc/tomcat/server.xml
=> vi를 열면서 특정 라인을 열겠다는 뜻. systemctl restart tomcat.service 로 재시작하면 적용.
AJP란?
아파치 웹서버와 톰캣(자바 웹 애플리케이션 서버)이 서로 통신하는 프로토콜
( vi +95 /etc/tomcat/server.xml 에서 주석처리되어있지 않은지 확인. 기본값은 열려있다 )
'리눅스' 카테고리의 다른 글
rocky 리눅스로 싱글모드 패스워드 재설정하기 (0) | 2024.04.07 |
---|---|
소스 복사 붙여넣기 (0) | 2024.04.07 |
리눅스 수업 2 1차시 (0) | 2024.04.06 |
리눅스 수업 8차시 (0) | 2024.03.17 |
리눅스 수업 7차시 (0) | 2024.03.16 |