티스토리 뷰
무엇을 처음 시작할땐 항상 무엇을 해야 할지 모릅니다. 최근 서버 세팅할일이 많이 생겨서
해당 기록을 남겨 봅니다. 운영체제 설치 부터 https, backend, frontend 설정까지 전가정을 기록하였습니다.
Ubuntu에서 처음 진행해야할 세팅 방법.
1. aaaa 사용자 추가:
sudo adduser aaaa
이 명령어를 실행하면 새 사용자의 비밀번호와 기타 정보를 입력하라는 메시지가 나타납니다.
2. root 로그인 차단:
sudo 편집기로 /etc/ssh/sshd_config 파일을 엽니다.
sudo nano /etc/ssh/sshd_config
파일에서 다음 줄을 찾아 수정하거나 추가합니다:
PermitRootLogin no
3. SSH 포트를 1111로 변경:
같은 /etc/ssh/sshd_config 파일에서 다음 줄을 찾아 수정하거나 추가합니다:
Port 1111
변경사항을 저장하고 편집기를 종료한 후, SSH 서비스를 재시작합니다:
sudo systemctl restart ssh
마지막으로, 방화벽이 활성화되어 있다면 새 SSH 포트를 허용해야 합니다:
sudo ufw allow 1988/tcp
이 작업들을 완료하면 요청하신 설정이 적용됩니다. 새로운 설정을 테스트하기 전에 현재 SSH 세션을 유지한 채로 새 터미널에서 변경된 포트로 접속을 시도해보는 것이 좋습니다.
Fail2ban 설치 (보안을 위함)
Fail2Ban은 서버의 보안을 강화하고, 반복적인 악의적인 접근 시도를 방지하기 위해 사용하는 도구입니다. 기본적으로 다양한 서비스에 대해 로그를 모니터링하고, 특정 패턴을 감지하여 자동으로 IP를 차단합니다. Ubuntu에서 Fail2Ban을 설치하고 설정하는 방법을 아래에 설명하겠습니다.
1. Fail2Ban 설치
1) 패키지 목록 업데이트
sudo apt update
2) Fail2Ban 설치
sudo apt install fail2ban
이 명령어는 Fail2Ban과 필요한 의존성 패키지를 설치합니다.
2. 기본 설정 파일 수정
Fail2Ban은 기본 설정 파일 `/etc/fail2ban/jail.conf`를 제공하지만, 이 파일을 직접 수정하는 대신 `/etc/fail2ban/jail.local` 파일을 만들어서 설정을 추가하거나 변경하는 것이 좋습니다. 이렇게 하면 Fail2Ban이 업데이트될 때 기본 설정 파일이 덮어쓰여지는 것을 방지할 수 있습니다.
1) 설정 파일 생성
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
2) 설정 파일 편집
sudo nano /etc/fail2ban/jail.local
주요 설정 항목은 다음과 같습니다:
- 로그 파일 위치: Fail2Ban은 로그 파일을 모니터링하여 차단을 결정합니다. 기본적으로 `/var/log/auth.log`를 모니터링합니다.
- 대상 서비스: SSH를 비롯한 다양한 서비스에 대한 설정을 추가할 수 있습니다.
- 설정 예시:
[DEFAULT]
bantime = 10m (6h) 접근시도가 너무 많다 6h 시간정도로 두고보고 더 해도될듯.
findtime = 10m
maxretry = 5
[sshd]
enabled = true
- bantime: 차단 기간 (예: `10m`은 10분)
- findtime: 반복적인 실패 시도를 감지하기 위한 시간
- maxretry: 차단 기준이 되는 최대 로그인 시도 횟수
3) 설정 변경 후 Fail2Ban 재시작
설정을 저장한 후, Fail2Ban을 재시작하여 변경 사항을 적용합니다.
sudo systemctl restart fail2ban
4) Fail2Ban 상태 확인
Fail2Ban의 상태를 확인하여 서비스가 제대로 동작하고 있는지 확인합니다.
sudo systemctl status fail2ban
5) 로그 확인
Fail2Ban의 로그를 확인하여 차단된 IP나 기타 로그 메시지를 확인할 수 있습니다.
sudo tail -f /var/log/fail2ban.log
3. 기본 규칙과 필터 확인
Fail2Ban의 기본 규칙과 필터는 `/etc/fail2ban/filter.d/`에 위치하고 있으며, 특정 서비스에 대한 필터를 정의하고 있습니다. 필요에 따라 이러한 필터를 커스터마이징하거나 새로운 필터를 추가할 수 있습니다.
이제 Fail2Ban이 설치되고 설정되었습니다. Fail2Ban은 자동으로 반복적인 악의적인 접근 시도를 차단하고, 서버의 보안을 강화하는 데 도움을 줄 것입니다.
NginX 설치
1. 설정파일 수정
2. options-ssl-nginx.conf 이파일 없다고 하는경우 만든다.
- sudo nano /etc/letsencrypt/options-ssl-nginx.conf ★ ★ ★
이파일 인터넷에 있는거 아무거나 긁어서 쓰면 안된다. 아래내용으로 작성해라. 삽질했다.ㅜㅜ
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
3. ssl-dhparams.pem 이파일 없는경우 만든다.
- sudo openssl dhparam -out /etc/letsencrypt/ssl-dhparams.pem 2048
*nginx 포트열기*
3. 포트 허용 범위
80 , 443 포트는 필수로 열어야 된다!! 443 https 사용
ufw allow 443/tcp
4. firewall 을 설정해놨따면 거기도 확인해서 허용을 해줘라.
certbot 설치 https 사용을 위해서..
1. 설치파일 설치하기 (certbot)
sudo apt-get install certbot
apt-get install python3-certbot-nginx
2. 설치 주소를 포함하여 설치 진행.
certbot certonly --manual --preferred-challenges=dns -d stock.miutree.com
1) 이부분 중에 _acme-challenge.subdomain.miutree.com 빨간부분을 입력
2) 값은 wTBhF6Kxxxxxxxxxxx 암호화된 키값 입력
위 1), 2)를 도메인할당 받은 사이트 에서 레코드를 추가하여 진행 하시면 됩니다.
저는 이것때문에 미친듯한 삽질을...
3. 제대로 통신이 되는지 확인하려면 dig 명령어로 확인
- dig TXT _acme-challenge.home.miutree.com
4. 여기가 제일중요 도메인에는 TXT랑 A 둘다 포함시켜야한다!!!
A는 subdomain.miutree.com 값에는 IP 주소 이것은 도메인 포워딩용
TXT는 인증받기 위함.
5. 인증서 갱신을 위한 crontab 추가
- crontab -e
FASTAPI 설치하고 개발항목 배포하기(이미 개발완료된걸로 가정함.)
1. 가상환경 세팅
apt install python3.12-venv
2. git을 다운로드 한다.
git clone <프로젝트명 주소> 다운후 폴더이동 후 가상환경 설정
3. python 가상환경 생성
python3 -m venv venv
4. 실행한다
uvicorn main:app
해당 파이썬 마일에 맞게 실행 하면된다.
Frontend 사용을 위한 SVELTE 설치과정
요약 : 프로젝트 생성 -> 필요 패키지 설치 -> tailwindcss 설치
1. npm create svelte@latest <폴더명>
2. cd 폴더명 // 폴더이동후
3. npm install // 설치
4. npm install -D tailwindcss postcss autoprefixer
5. npx tailwindcss init tailwind.config.cjs -p
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
'./src/**/*.{html,js,svelte,ts}',
'./node_modules/flowbite-svelte/**/*.{html,js,svelte,ts}',
],
theme: {
extend: {},
},
plugins: [
require('flowbite/plugin')
],
}
/* app.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
6. flowbite 설치
npm install flowbite-svelte flowbite
8. 추가 설치(아이콘들)
npm install svelte-fa
npm install @fortawesome/fontawesome-svg-core @fortawesome/free-solid-svg-icons @fortawesome/svelte-fontawesome
9. package.json 수정 "start" 부분 추가.
"start": "serve -s dist /etc/letsencrypt/live/home.miutree.com/fullchain.pem --ssl-key /etc/letsencrypt/live/home.miutree.com/privkey.pem"
10. 개발서버 실행
npm run dev -- --open
git 설정하기 (vscode git 설정)
1. vscode 프로젝트 터미널 에서 git init 초기화
2. git 연결
- git remote add origin https://github.com/oooo/test.git
3. git add 와 conmmit 최초등록시
git add . git commit -m "Initial commit"
4. push 최종 업로드
git push -u origin main <-- main은 branch 정보에 보면있다. git에 들어가서(보통 main임)
* error: failed to push some refs to 'https:// 이런에러가 발생하면 아래 내을 진행.
git pull origin main --rebase # 브랜치의 최신 변경 사항을 가져옴
여기 까지 하면 끝!! git까지 세팅끝!
'IT공부 > OS 세팅' 카테고리의 다른 글
FATAL ERROR: ... JavaScript heap out of memory (0) | 2024.08.12 |
---|