'Server/CentOS'에 해당하는 글 73건

Swap memory(size)

Server/CentOS 2021. 7. 10. 17:57

시스템 메모리가 부족할 때 하드디스크의 공간을 메모리로 사용하는 가상 메모리를 Swap memory 라고 한다. 필요시 swap 메모리를 늘리거나 복구하는 상황에 아래를 참고한다.

 

 

1. swap memory 확인

 

# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        478M        159M        1.8G        7.0G        5.0G
Swap:          3.0G         14M        3.0G

7.6G 의 시스템 메모리와 3.0G 의 Swap 메모리를 확인할 수 있다.

 

 

2. swap memory 파일 생성

 

# dd if=/dev/zero of=/home/swapfile bs=1024 count=1000000
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 2.2715 s, 451 MB/s

swap 메모리 파일명은 /home/swapfile 이고, 크기는 1024(byte) * 1,000,000 = 1GB 크기의 파일이 생성되었다. 파일명은 무엇이든 상관없다.

 

 

3. 파일에 swap memory 영역 설정 (mkswap)

 

# mkswap /home/swapfile
Setting up swapspace version 1, size = 999996 KiB
no label, UUID=e355981c-ed51-4dde-b6c0-ae7a542ac40e

 

 

4. swap memory 활성화 (swapon)

 

# swapon /home/swapfile
swapon: /home/swapfile: insecure permissions 0644, 0600 suggested.
# chmod 644 /home/swapfile

 

 

5. swap memory 확인

 

# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        397M        4.2G        1.8G        3.0G        5.2G
Swap:          4.0G        101M        3.9G

Swap 메모리가 1.0G 추가되었다.

 

 

6. 재부팅 후에도 적용 (fstab)

 

# vi /etc/fstab
/home/swapfile    swap    swap defaults    1 1

 

 

7. 사용 후 swap memory 삭제 (swapoff)

 

# swapoff /home/swapfile
# rm -rf /home/swapfile

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

CentOS 의 수명

Server/CentOS 2021. 7. 4. 22:58

 

간만에 CentOS 를 한번 들여다봤다. 레드햇 엔터프라이즈 리눅스의 행보를 가장 잘 따르는 무료 기업용 컴퓨팅 플랫폼. download 한번 해보려고 했더니 아직도 버전 7이 대세? 버전 8보다 지원을 더 오래하네.(2024.6.30) 버전 8 이후로는 CentOS Stream 이란 이름으로 다시 선보이는 듯 한데, 아따 또 피바람이 한번 불것고만. 가만히 사용하게들 좀 놔두지 때되면 한번씩 이렇게 후벼 파냐. 대충 보아하니 CentOS 지원 종료일이 지날 때 쯔음 갈아타야 하는 RHL 계열의 선택지를 간추려 보면 3개 정도가 된다.

RHEL / Rocky Linux / Oracle Linux

Rocky Linux 가 CentOS 창시자의 프로젝트이니 만큼 자연스럽게 바톤 터치하고 커뮤니티의 전폭적인 지지를 받게 될 듯.


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

tomcat 80 port

Server/CentOS 2016. 6. 9. 00:49

톰캣의 8080 포트를 80 포트로 변경하는 방법들은 운영체제별로, 배포판 별로 조금씩 다르다.

레드햇 계열에서는 다음의 방법들이 있다.

  1. apache 연동
  2. authbind
  3. iptables


이 중에서 아무 설치없이 바로 사용할 수 있는 iptables 를 사용해 봤다.


# vi /etc/init.d/iptables
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
 
# /etc/init.d/iptables save
# /etc/init.d/iptables restart
# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:http redir ports 8080
cs


엄밀히 말하자면 tomcat 의 기본 포트를 변경한 것이 아니라,

서버로 들어오는 80 포트를 8080 포트로 리다이렉트 시킨 것이다. ^^




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Linux 에는 OpenJDK 가 기본적으로 깔려 있다.

일반적으로 개발PC 등에서 JAVA 개발을 할 경우 대부분(?) OracleJDK 를 사용할 것이다.

배포 서버에 Spring 작업물을 업로드 하고 나니, 역시나 오류가 발생했다.

처음엔 톰캣이 잘못된줄 알았다. 패키지로 새로 깔았다가 바이너리로 다시 깔았다가... 문제는 OpenJDK 버전이었다.


오픈소스 프로젝트라 그런가 리눅스 패키지에는 OpenJDK 만 사용하는 것 같다.

최신 OpenJDK 를 설치해도 되지만 로컬과 동일하게 OracleJDK 1.8.0 을 바이너리 설치하고 시스템에서 OpenJDK 대신 OracleJDK 를 사용하도록 설정하였다.

Tomcat 을 패키지 설치하면 디펜던시 패키지로 OpenJDK 1.7.0 을 설치하므로 버전체크도 해보고 OracleJDK 로 바꿀 필요가 있는 경우 변경 작업이 필요하다.



1. OracleJDK 바이너리 설치


# java -version
java version "1.7.0_101"
OpenJDK Runtime Environment (amzn-2.6.6.1.67.amzn1-x86_64 u101-b00)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
 
# cd /usr/local/src
# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u92-b14/jdk-8u92-linux-x64.tar.gz
# tar zxvf jdk-8u92-linux-x64.tar.gz
# mv jdk1.8.0_92 /usr/local/
# ln -s /usr/local/jdk1.8.0_92 /usr/local/java
cs



2. 환경 변수 설정


# vi /etc/profile
JAVA_HOME=/usr/local/java
PATH=$PATH:/usr/local/java/bin:/usr/local/java/jre/bin
export PATH
 
# source /etc/profile
cs



3. 시스템에서 사용할 java 지정


# alternatives --install /usr/bin/java java /usr/local/java/bin/java 100
# alternatives --config java
 
There are 2 programs which provide 'java'.
 
  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/local/java/bin/java
 
Enter to keep the current selection[+], or type selection number: 2
 
# java -version
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)
cs



4. 톰캣 설치


# yum install tomcat8
# /etc/init.d/tomcat8 start
cs



5. 브라우저 확인


http://ip:8080




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

fail2ban

Server/CentOS 2014. 5. 29. 13:01

# secure log
May 28 11:18:28 oops4u saslauthd[31802]: pam_unix(smtp:auth): check pass; user unknown
May 28 11:18:28 oops4u saslauthd[31802]: pam_unix(smtp:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
May 28 11:18:28 oops4u saslauthd[31802]: pam_succeed_if(smtp:auth): error retrieving information about user library

 

# message log
May 28 13:03:11 oops4u saslauthd[31804]: do_auth         : auth failure: [user=sale] [service=smtp] [realm=] [mech=pam] [reason=PAM auth error]
May 28 13:03:16 oops4u saslauthd[31802]: do_auth         : auth failure: [user=sale] [service=smtp] [realm=] [mech=pam] [reason=PAM auth error]
May 28 13:03:21 oops4u saslauthd[31801]: do_auth         : auth failure: [user=sale] [service=smtp] [realm=] [mech=pam] [reason=PAM auth error]

 

# mail log
May 28 12:04:50 oops4u sendmail[4749]: s4P34kTF004749: wvps46-163-109-6.dedicated.hosteurope.de [46.163.109.6] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
May 28 12:05:34 oops4u sendmail[4827]: s4P35UXD004827: www.igbce-og-agv.de [46.163.109.83] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
May 28 12:06:14 oops4u sendmail[4836]: s4P36B47004836: wvps46-163-109-86.dedicated.hosteurope.de [46.163.109.86] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA

 

정말 지긋지긋하게 보아온 로그.
맘고생했던 기간에 비해 아주 간단하게 해결됐습니다.

 

 

fail2ban

 

username/password 무차별 침입 시도(Brute-force, dictionary attack)를 방지하기 위한 툴.
log 파일에서 흔히 볼 수 있는 패턴들에 대하여 방화벽에 새로운 규칙(ip 차단 등)을 추가할 수 있습니다.
상세한 설치 메뉴얼은 fail2ban 홈페이지를 참조합니다.
site : http://www.fail2ban.org/

 

 

설치

 

# wget https://codeload.github.com/fail2ban/fail2ban/tar.gz/0.8.13
# tar zxvf 0.8.13
# cd fail2ban-0.8.13
# ./setup.py install

 

 

자신의 배포판에 맞는 스크립트 복사 & 모드(755) 확인 & 부팅시 자동 실행 설정

 

# cd files
# cp redhat-initd /etc/init.d/fail2ban
# chkconfig --add fail2ban

 

 

logrotate 추가

 

# vi /etc/logrotate.d/fail2ban
/var/log/fail2ban.log {
     weekly
     rotate 4
     missingok
     compress
     postrotate
       /usr/local/bin/fail2ban-client set logtarget /var/log/fail2ban.log >/dev/null
     endscript
}

 

 

설정 (Sendmail)

 

# cd /etc/fail2ban
# vi filter.d/sendmail.conf

 

# Fail2Ban configuration file
#
# Source: http://www.the-art-of-web.com/system/fail2ban-sendmail/
# Contibutors: Gutza, the SASL regex
#
# $Revision: 0 $
#

 

[Definition]

 

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#

 

failregex = \[<HOST>\] .*to MTA
            \[<HOST>\] \(may be forged\)
            \[<HOST>\], reject.*\.\.\. Relaying denied
            (User unknown)\n* \[<HOST>\]
            badlogin: .* \[<HOST>\] plaintext .* SASL

 

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

 

# vi jail.conf

 

[sendmail]
enabled  = true
filter   = sendmail
action   = iptables-multiport[name=sendmail, port="pop3,imap,smtp,pop3s,imaps,smtps", protocol=tcp]
           sendmail-whois[name=sendmail, dest=you@example.com]
logpath  = /var/log/maillog

 

dest 부분에는 내용을 전달받을 내 이메일 주소를 입력합니다.

 

이 같은 설정 방식으로 다른 서비스들도(ssh, smtp...) 필요하다면 fail2ban 홈페이지를 참조하여 추가합니다.
jail.conf 파일에서 bantime도 설정합니다. (기본 10분 차단으로 되어 있습니다.)
차단된 로그는 /var/log/fail2ban.log 나 전달된 메일에서 확인할 수 있습니다.

 

 

데몬 시작

 

# /etc/init.d/fail2ban start

 

 

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,