반응형

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
반응형
반응형

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

반응형
반응형

우분투는 24.04 가쥰 자동 화면 잠금이 기본적으로 5분으로 되어있습니다. 이걸 해제하기 위해선 아래와 같은 설정하면 됩니다.

 

1. 화면 잠금 페이지로 이동

 

한글 기준: 설정 => 사생활 보호 및 보안 => 화면 잠금

영어 기준: Settings => Privacy => Screen Lock

2. 화면 잠금 해제 설정

 

빈 화면 지연 시간: 안 함

자동 화면 잠금: 해제

 

반응형
반응형

실행중인 백그라운드 프로세스 확인 코드

ps -ef : 모든 프로세스를 풀 포멧으로 보여줌

# 다른 기타 코드
ps -e : 모든 프로세스를 출력해줌
ps -f : 풀 포맷으로 보여줌. (UID, PID 등도 포함)
ps -l : 긴 포맷으로 보여줌
ps -p : 특정 PID(프로세스 ID)의 프로세스를 보여줌
ps -u : 특정 사용자의 프로세스를 보여줌

 

실행중인 프로세스 종료 코드

# pid 부분에 pid에 해당하는 숫자를 입력하면 된다.
kill -9 pid
반응형
반응형

 ssh 환경에서 작업을 하다 보면 인공지능 모델 학습과 같은 오랜 시간이 걸리는 작업이 있다. 해당 작업을 지속하기 위해서 ssh 접속 툴을 지속적으로 켜놓고 있어야 된다. 이를 해결하기 위해 ssh 접속 툴을 켜놓지 않고 백그라운드에서 동작시키는 방법이 있다.

nohup 명령어 &

 위와 같이 명령어를 치면 해당 명령어를 친 디렉토리에 nohup.out이라는 파일이 생성되는데, 이 파일에서 명령어를 실행시키며 생성되는 print문을 볼 수 있다.


 

▼ 위에서 생성된 백그라운드 프로세스를 삭제하는 법

 

[우분투] 동작하는 프로세스 종료

실행중인 프로세스 확인 코드 ps -ef 실행중인 프로세스 종료 코드 # pid 부분에 pid에 해당하는 숫자를 입력하면 된다. kill -9 pid

darkenergy.tistory.com

 

반응형
반응형

드라이버 제거

기존 driver가 있는 상태에서 다른 버전에 드라이버를 설치할 경우 오류가 발생할 수 있다. 따라서, 기존의 드라이버를 삭제해 주는 작업이 필요하다.

# 설정과 파일 까지 모두 제거
sudo apt-get --purge remove *nvidia*

 

설치 방법 1: 우분투 드라이버

# 현재 시스템에 설치 가능한 드라이버 확인
sudo ubuntu-drivers list

# 현재 하드웨어 설치 가능한 드라이버 리스트
sudo ubuntu-drivers devices

# 추천으로 설치
sudo ubuntu-drivers install

 

설치 방법 2: apt-get

# 사용 가능 드라이버 확인
sudo apt search nvidia-driver
# 특정 드라이버 설치, 별표 부분에 숫자로 버전 입력 (예시: sudo apt-get install nvidia-driver-535)
sudo apt-get install nvidia-driver-*

 

cuda toolkit 과 cudnn 설치 확인

nvcc --version
# CUDA 설치 확인
dpkg -l | grep CUDA
# cuDNN 설치 확인
dpkg -l | grep cuDNN

 

cuda toolkit 이 설치되어 있지 않다면

# cuda toolkit 설치
sudo apt install nvidia-cuda-toolkit

 

그래픽 카드 사용량 확인

nvidia-smi

 

 

참고

참고 사이트 1

참고 사이트 2

반응형

+ Recent posts