일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- minecraft
- 마인크래프트서버
- c
- 디스코드 봇 강좌
- 마인크래프트 리눅스 서버
- 우분투 마인크래프트 서버
- 마인크래프트
- 코드블록
- 마크 통합 버전 버킷
- 마인크래프트서버강좌
- 디코 봇
- 디코 봇 강좌
- 마크서버
- C++
- 마인크래프트 통합 버전 버킷
- 프로그래밍
- 방화벽설정
- 마크 통합 서버 버킷
- 디코봇강좌
- 강좌
- 우분투 서버
- 마크
- 마인크래프트 통합 서버 버킷
- 디스코드 봇
- 호스팅강좌
- 마크서버강좌
- 디스코드봇
- 디코봇
- 우분투
- 디스코드봇강좌
- 오늘
- 전체
코학의 개인 블로그
#2 Ubuntu 18.04 LTS 에서 방화벽 설정 및 실제 사용준비 본문
안녕하세요, 저는 여러분들께 Ubuntu 18.04 LTS 운영체제에서 방화벽 설정 및 실제 사용준비 방법에 대해 설명할 [개발자]DFR의 코학입니다.
구축 중 문의사항이 생기면 댓글로 알려주세요.
[해당 게시글 환경]
OS: Ubuntu 18.04 LTS
Host: Linode Tokyo
이 게시글은 관리자인 상태로 진행했습니다.
참고한 블로그 [클릭]
1-1) ipv6 끄기
ipv6 설정
# vi /etc/sysctl.conf
맨 아래 내용을 추가해주세요.
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
설정파일 적용
# sysctl -p
적용되었는지 검사
# cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1 이면 적용 된 상태이다.
1-2) 방화벽 설정
일단 시작하기전에는 나는 클라우드플레어를 사용중인데
이 게시글에서는 설정할 것은 클라우드플레어에서 오는 ip를 제외한 모든 ip를 접근거부하게 설정할 생각이다.
다운로드
# wget https://raw.githubusercontent.com/scriptzteam/CloudFlare-ONLY-IPs/master/install.sh
실행
# sh install.sh
loopback 허용
소프트웨어들이 localhost 어댑터와 통신이 되어야 하기때문에 필요합니다.
# iptables -A INPUT -i lo -j ACCEPT
PING 차단
솔직히 이거는 차단하든 안하든 상관은 없는데 저는 차단합니다.
# iptables -A INPUT -p icmp -j DROP
INPUT과 FORWARD 차단
위에서 이미 기본적으로 설정은 다했습니다.
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
확인
# iptables -nL
지금 상태로는 접속이 안될겁니다.
1-3)도메인 주소 준비하기
도메인을 준비하여 서버 IP랑 연결을 한다.
(지금 상태는 클라우드플레어만 접속허용이다.
2) 사용자 계정 생성
사용자 추가 - 보통 도메인의 앞단어를 사용합니다.
# adduser [도메인 앞주소]
비밀번호는 root랑 같게하면 편합니다.
디렉토리 생성
# su -l [유저이름]
# mkdir www
# exit
2-1) 무료 SSL 발급
dhparam.pem 파일 생성
# openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
시간이 조금 오래 걸립니다.
인증서 발급
# letsencrypt certonly --webroot --webroot-path=/home/[사이트 앞주소]/www -d [사이트주소.com] -d [www.사이트주소.com]
3) 웹사이트 Nginx 환경설정파일 작성
환경설정파일 생성기를 만드신 분이 계십니다.[이분]
그분꺼를 이용할 예정입니다.
Nginx 환경설정 생성기
webmaster.cafe/tools/nginx-conf-generator/my-example-site.com.php
자신의 환경에 맞추어 입력하시면 됩니다.
사용자 이름은 도메인 앞부분으로 해주시면 됩니다.
exsite.com이라면 exsite를 입력.
위치또한 도메인 앞부분을 해주세요.
그후 받은 내용을 저장해주세요.
# vi /etc/nginx/conf.d/[도메인주소].conf
4)php pool 파일 생성
PHP-FPM Pool 파일 생성
# vi /etc/php/7.4/fpm/pool.d/[도메인 앞부분].conf
밑부분을 수정하여 입력해주세요.
[[도메인 앞부분]]
user = [도메인 앞부분]
group = [도메인 앞부분]
listen = /run/php/[도메인 앞부분].sock
listen.owner = [도메인 앞부분]
listen.group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
php_admin_value[session.cookie_httponly] = 1
php_admin_value[session.use_strict_mode] = 1
; save std error to /var/log/php7.4-fpm.log
catch_workers_output = yes
; save slow process
slowlog = /var/log/php-fpm.[도메인 앞부분].slow.log
request_slowlog_timeout = 10
; php only timeout
php_admin_value[max_execution_time] = 30
; all timeout (php+mysql+exec+fopen+...) (use it carefully.)
;request_terminate_timeout = 90
;php_admin_value[post_max_size] = 25M
;php_admin_value[upload_max_filesize] = 25M
;php_admin_value[session.name] = "MY_SESSION_ID"
;php_value[session.save_path] = /home/[도메인 앞부분]/.php-session
;access.log = /var/log/php-fpm.[도메인 앞부분].access.log
;access.format = "%t %{REMOTE_ADDR}e \"%m %r%Q%q\" %s %f TIME:%{mili}dms MEM:%{kilo}MK CPU:%C%%"
;php_admin_flag[log_errors] = on
;php_admin_value[error_log] = /var/log/php-fpm.[도메인 앞부분].error.log
;php_admin_value[memory_limit] = 128M
;php_admin_value[max_input_time] = 90
;php_admin_value[max_input_vars] = 3000
nginx 및 php-fpm 재시작.
# service nginx reload
# service php7.4-fpm reload
이상 #2 방화벽 설정 및 실제 사용준비를 마침니다.
다음은 #3 여러가지 설치로 찾아 뵙겠습니다.
'[개발자]DFR-웹언어 > Ubunut 18.04' 카테고리의 다른 글
#1 Ubuntu 18.04 LTS 에서 웹서버(NGINX + PHP-FPM + MariaDB) 구성하기 (0) | 2020.11.30 |
---|