반응형

1. 마운트 패키지 설치

sudo apt-get install cifs-utils

2. 마운트 하기 위한 폴더 생성

마운트 폴더로 지정하고 싶은 원하는 경로에 폴더를 생성한다. 예시의 경우 /mnt 폴더에 nas1이라는 폴더를 생성한 것이다. 보통 저장 장치를 마운트 할 때 /mnt 폴더에 많이 하고, 다른 유저도 볼 수 있어 보통   /mnt 폴더 안에 폴더를 만든다.

mkdir /mnt/nas1

3. 마운트 연결

이제 생성된 폴더에 nas를 마운트 해준다.

sudo mount -t cifs //{NAS IP}/{NAS directory path} {local path} -o user='NAS ID',password='NAS PW',rw,vers=2.0
    1. NAS IP : 나스 접근 IP: 111.11.11.111
    2. NAS ID: NAS 접근 아이디 : admin
    3. NAS PASSWORD: NAS 접근 비밀번호 : admin
    4. NAS directory path: 나스 디렉토리 경로 : /home
    5. local path : 마운트할 우분투 내 local 경로 : /mnt/nas1

예시)

sudo mount -t cifs //111.11.11.111/home /mnt/nas-drive -o user='admin',password='admin',rw,vers=1.0

4. 부팅시 마운트 자동 연결

sudo vi /etc/fstab

# 하단에 아래 코드 추가
//{NAS IP}/ {NAS directory path} /{local path} cifs user={NAS ID},password={NAS PASSWORD},rw,vers=2.0 0 0

 

  1. NAS IP : 나스 접근 IP: 111.11.11.111
  2. NAS ID: NAS 접근 아이디 : admin
  3. NAS PASSWORD: NAS 접근 비밀번호 : admin
  4. NAS directory path: 나스 디렉토리 경로 : /home
  5. local path : 마운트할 우분투 내 local 경로 : /mnt/nas1

예시)

//111.11.11.111/home /mnt/nas1 cifs user=admin,password=admin,rw,vers=2.0 0 0

 

참고

cifs 뒤와 0 0 사이에는 스페이스나 tab등의 공백이 있으면 안 된다. 예를들어 //111.11.11.111/home /mnt/nas1 cifs user=admin, password=admin,    rw, vers=2.0 0 0가 있다.

 

+ 자동 마운트 안 되는 오류

가끔씩 네트워크가 연결되기 전 나스가 연결을 시도해서 부팅 이후에도 자동으로 마운트가 되지 않는 경우가 있다. 아래의 코드를 실행시키고 비밀번호를 쳐도 마운트가 안 되어있다면, 자동 마운트가 안 되는 상태이다.

sudo mount -a

 이 경우엔 옵션으로 x-systemd.automount를 추가해준다.

예시)

//111.11.11.111/home /mnt/nas1 cifs user=admin,password=admin,rw,vers=2.0,x-systemd.automount 0 0
반응형
반응형

아나콘다 공식 홈페이지에서 리눅스용 .sh 형식의 anaconda 파일 설치한다.

 

*이전 버전 아나콘다 모음 링크

 

Index of /

Anaconda-1.5.0-Linux-x86.sh 238.8M 2013-05-08 09:18:43 ca7e356dc1b8c8ef27dfb74b32c77563df704c6ddb39e69cac65ec416ebfe8e5

repo.anaconda.com

 

💡우분투 Anaconda 설치 관련 내용을 검색해보면 wget을 이용하는 방법도 존재하는데요, 이 경우 최신 버전이 아닐 수 있어 공식 홈페이지에서 직접 설치하는 것을 권장합니다.

 

anaconda 파일 다운로드 후, 다운로드 경로로 이동해 아래의 코드를 실행시켜 아나콘다를 설치한다. (버전으로 들어가는 숫자는 다운 버전에 따라 달라질 수 있다.)

~/다운로드$ bash Anaconda3-2023.03-1-Linux-x86_64.sh

이후 수많은 enter키를 누르고(가급적 엔터말고 page down 또는 ctrl + c로 한 번에 넘어가자) yes를 누르면 설치가 진행된다.(terminal의 안내를 따르면 된다.)

  - 최신 아나콘다 설치 시 “~~automatically initialize conda?” 라는 질문과 여러 말들과 함께 한 번 더 [yes/no]를 묻는 질문이 나올경우 yes를 누른다.

 

가상환경 설정

source ~/.bashrc를 실행하면

(base) 사용자명@user:~$ 가 된다.

base가 떠야만 정상적으로 설치가 된 것이므로 확인해보고 뜨지 않는다면 검색해서 해결한다. 도저히 안되면 재설치한다.(확인을 위해 터미널을 껐다가 다시 켜보자)

이후 terminal에 접속하면 곧바로 (base) 사용자명@user:~$로 시작될 수 있다. 이는 기본 설정이 가상환경 activated된 상태이므로 이를 해제해준 상태로 사용해야한다.

$ conda config --set auto_activate_base false

이후 다시 터미널 껐다가 켜면 이젠 (base)가 뜨지 않는다.(deactivate 완료)

 

conda 가상환경 생성 관련 참고 링크

 

Anaconda에서 가상환경 만들기(초심자용)

※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다. 가상환경 1. 환경이란? 환경이란 python 버전, 설치되어 있는 라

engineer-mole.tistory.com

 

반응형
반응형

우분투 USB 설치

 

우분투(Ubuntu) 설치 USB 만들기

Ubuntu 22.04 Jammy Jellyfish 가 배포되었습니다. Ubuntu 20.04를 사용중인데 22.04로 업그레이드 하려면 어떻게 할까요? 첫번째는 사용하면서 최신 버전으로 업그레이드 하는 방법이 있을 테고, 하나는 설

dulidungsil.tistory.com

 

최초 설치 시 언어는 반드시 English로 한다.

초기 설치 완료 후 설정에서 언어를 Korean으로 변경한 후 나오는 창이 있다.

“현재 언어로 표준 폴더의 이름을 업데이트 하시겠습니까?”

여기에서 예전 이름 유지를 누르면 된다.

이 방식으로 진행해야 폴더명이 한글로 바뀌지 않는다.

우분투 버전 확인

$ lsb_release -a
$ hostnamectl(root 계정 아니어도 사용가능)
$ uname -m && cat /etc/*release (가장 자세함)

우분투 기본 설정

>한글/영어 설정

처음 계정을 만들면 한글이 안 쳐진다. 우측 상단의 한/영을 눌러 다른 ‘한글’을 선택하면 한/영 전환이 가능해진다.

 

[Linux][VMware] 우분투 20.04 LTS 한글 입력기 설치

1. 우분투 업데이트 다음 명령어를 순서대로 터미널에 입력 합니다. sudo apt-get update sudo apt-get upgrade 2. 영어 -> 한글 변경 / 한글 설치 방법 왼쪽 하단의 메뉴를 클릭한 뒤 "setting"을 검색해서 실행

lonaru-burnout.tistory.com

 

Ubuntu 22.04 기준 설명

설정-키보드-입력소스-한국어(Hangul)-기본설정-한영전환키-추가-’우측 Alt 키’ 누르고 등록-’한국어(Hangul)’을 ‘한국어’ 위로 올림-테스트 해보기

(반드시 Hangul이 적혀 있는 한국어를 사용해야 한다.)

만약 ‘한국어(Hangul)’ 이 보이지 않는다면 세팅에서 ‘지역 및 언어’를 들어가 Korean으로 다시 바꾸고 reboot하면 ‘한국어(Hangul)’이 보일 것이다.

 

 

반응형
반응형

limits.conf 수정

sudo vi /etc/security/limits.conf

 

아래와 같이 작성해준다.

모든 유저에 대해 최대 로그인수 4

 

ssh 다시 시작

sudo service sshd restart

 

반응형
반응형

우분투 ssh 서비스를 사용하다보면 해외에서 여러번 접속을 시도하면서 서버 해킹을 시도하는 것을 어렵지 않게 볼 수 있습니다. 이를 막기 위해선 몇가지 보안 세팅이 필수입니다. 단순히 접속 시도 로고만 들어가도 많은 시도가 있는 걸 알 수 있습니다.

 

 

보안 세팅에는 해외 ip 차단, 연속접속시도 차단이 있습니다.

 

해외 ip 차단 - GeoIP Country Database

 

[우분투] ssh 보안 세팅: 해외 ip 차단 (+::ffff: 오류 수정)

최근 관련 게시글 중 /usr/local/bin/sshfilter.sh의 코드 문제로 인해 해외 ip 차단 및 정상적인 ssh 접속이 작동하지 않는  경우가 있습니다./var/log/syslog에서 아래 로그와 같이 문제가 생겨 ssh 원격 접속

darkenergy.tistory.com

연속접속시도 차단 - fail2ban

 

[우분투] fail2ban 설정

ssh를 사용하다보면 외부에서 무작위로 접근해 공격하는 일이 생긴다. 따라서, 연속적인 접속 시도를 막아 서버의 보안을 강화할 수 있는 fail2ban을 설정이 필요하다. 오늘은 fail2ban을 세팅해보자.

darkenergy.tistory.com

 

반응형
반응형

fail2ban 상태 확인

sudo fail2ban-client status

 

Ban 풀기

- 단일 ip

sudo fail2ban-client set unbanip <IP 주소>

 

- 다중 ip

sudo fail2ban-client unban <IP 주소> ... <IP 주소>

 

- 전부

sudo fail2ban-client unban --all

로그 확인

sudo vi /var/log/fail2ban.log

 

반응형
반응형

ssh를 사용하다보면 외부에서 무작위로 접근해 공격하는 일이 생긴다. 따라서, 연속적인 접속 시도를 막아 서버의 보안을 강화할 수 있는 fail2ban을 설정이 필요하다. 오늘은 fail2ban을 세팅해보자.

 

목차

1. 시스템 페키지 업데이트

2. fail2ban 패키지 설치

3. config 세팅

4. fail2ban 재시동 및 동작 여부 확인

 

 

1. 시스템 페키지 업데이트

fail2ban 패키지를 설치하기 전 시스템 패키지를 업데이트해준다.

sudo apt update && sudo apt upgrade

 

2. fail2ban 패키지 설치

sudo apt install fail2ban

 

3. config 세팅

패키지가 업데이트될 때 덮어 쓸 수 있으니 설정 파일을 복사하고 다른 파일을 사용한다.

sudo cp /etc/fail2ban/jail.{conf,local}
sudo vi /etc/fail2ban/jail.local

아래로 쭉 내리다보면 아래 내용이 나온다.  #(주석)을 지워주고 내용을 추가해주자.

bantime = -1: 영구 차단

findtime = 10m: 반복적인 접속시도 간격, 10동안 연속 접속하면 차단

maxretry = 5: 최대 연속 접속 횟수

 

4. fail2ban 재시동 및 동작 여부 확인

sudo systemctl restart fail2ban.service
sudo systemctl status fil2ban.service

이렇게 나오면 fail2ban 세팅은 끝이다.

 

+ fail2ban을 사용하다보면 잠긴 계정을 풀거나 로그를 확인할 일이 필요하다. 관련 명령어는 아래 게시글을 참고하기 바랍니다.

 

[우분투] fail2ban 관련 간단 명령어

fail2ban 상태 확인sudo fail2ban-client status Ban 풀기- 단일 ipsudo fail2ban-client set unbanip  - 다중 ipsudo fail2ban-client unban ...  - 전부sudo fail2ban-client unban --all로그 확인sudo vi /var/log/fail2ban.log

darkenergy.tistory.com

 

반응형
반응형

최근 관련 게시글 중 /usr/local/bin/sshfilter.sh의 코드 문제로 인해 해외 ip 차단 및 정상적인 ssh 접속이 작동하지 않는  경우가 있습니다.

/var/log/syslog에서 아래 로그와 같이 문제가 생겨 ssh 원격 접속이 되지 않는 분들은 바로 2번으로 넘어가 shell script만변경하면 됩니다.


 

ssh를 세팅하다 보면 보안 세팅으로 해외 ip 차단이 필요하다. 하루에도 수십번씩 해외에서 무작위로 ip에 접근을 시도하고 있기 때문이다. 마침 Ubuntu 24.04 버전을 서버에 새로 설치한 터라 새로운 버전을 체험할 겸 ssh 보안 세팅을 헤주기로 했다.

 

목차

1. GeoIP Country Database 설치

2. Shell Script 작성 !인터넷에 올라와있는 코드 오류 수정!

3. SSH 잠금 설정

4. 정상 작동 테스트

5. GEOIP의 주기적 UPDATE

 

1. GeoIP Country Database 설치

ip 구분을 위해 geoiplookup 명령어와 GeoIP country database를 설치한다.

sudo apt-get install geoip-bin geoip-database

 

명령어를 입력하여 작동하는지 테스트

geoiplookup 8.8.8.8

GeoIP Country Edition: US, United States가 나오면 정상 작동하는 것이다.

 

2. Shell Script 작성

sudo vi /usr/local/bin/sshfilter.sh

/usr/local/bin/sshfilter.sh 에 아래 내용을 입력하고 저장한다.

#!/bin/bash

ALLOW_COUNTRIES="KR"

if [ $# -ne 1 ]; then
  echo "Usage: `basename $0` <ip>" 1>&2
  exit 1
fi

IP=$1

# IPv6 주소 IPv4 주소로 변환
if [[ $IP =~ ^::ffff: ]]; then
  IP=$(echo $IP | sed 's/^::ffff://')
fi

COUNTRY=$(/usr/bin/geoiplookup $IP | awk -F ": " '{ print $2 }' | awk -F "," '{ print $1 }' | head -n 1)

if [ "$COUNTRY" = "IP Address not found" ] || [[ $ALLOW_COUNTRIES =~ $COUNTRY ]]; then
  exit 0
else
  logger "DENY sshd connection from $IP ($COUNTRY)"
  exit 1
fi


!! 기존의 코드는 ipv6에선 정상작동하지 않는 오류가 있어서

ipv6에서 ipv4로 변경해주는 코드를 추가하였다 !!

 

 

 

 


소유권과 실행 권한을 변경해준다.

sudo chown root:root /usr/local/bin/sshfilter.sh
sudo chmod 775 /usr/local/bin/sshfilter.sh

 

3. SSH 잠금 설정

sudo vi /etc/hosts.deny

아래 내용 새로 추가

sshd: ALL
sudo vi /etc/hosts.allow
sshd: ALL: aclexec /usr/local/bin/sshfilter.sh %a

간단하게 설명을 하자면 hosts.deny로 기본적으로 모든 접속을 허용하지 않도록 하되, hosts.allow를 통해 원하는 ip만 접속을 허용시켜줬다. 이 때 접속을 허용 ip는 sshfilter.sh를 통해 구분해줬다.

 4. 정상 작동 테스트

/usr/local/bin/sshfilter.sh 8.8.8.8
sudo vi /var/log/syslog

ctrl+End를 통해 맨 아래 DENY sshd connection from 8.8.8.8 (US)가 있으면 정상 작동 중인 것이다.

 

5. GEOIP의 주기적 UPDATE

주기적으로 ip를 업데이트 해주는 파일 생성한다.

sudo vi /etc/cron.monthly/updatingGeoIP

 

아래대로 내용을 작성한다.

#!/bin/bash



cd /tmp

wget -q http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

if [ -f GeoIP.dat.gz ]

then

    gzip -d GeoIP.dat.gz

    rm -f /usr/share/GeoIP/GeoIP.dat

    mv -f GeoIP.dat /usr/share/GeoIP/GeoIP.dat

else

    echo "The GeoIP library could not be downloaded and updated"

fi

여기까지 문제가 없다면 ssh 보안 세팅인 해외 ip 차단은 끝이다.

 

reference

[1]

 

우분투 해외ip ssh차단

우분투에서 해외ip ssh접속을 차단하기. 1. GEOIP DATABASE 설치 geoiplookup 명령어와 GeoIP country (free) database를 설치합니다. $ sudo apt-get install geoip-bin geoip-database 잘 설치 되었는지 다음과 같이 테스트를

shutcoding.tistory.com

반응형

+ Recent posts