반응형

Security Group (보안 그룹) 설정을 내 IP로 하면

당연히 EC2 인스턴트에 무리없이 연결 될 줄 알았는데...

 

웹 상에서 인스턴스에 연결은 안되었다....

 

친절한 오류메시지 내역

We were unable to connect to your instance. Make sure that your instance’s network settings are configured correctly for EC2 Instance Connect. For more information, see Task 1: Configure network access to an instance.

 

당연하게도

 

Security Group에서 22(SSH)를 0.0.0.0/0 으로 설정하면 된다...

 

하지만 이것은 치명적인 보안 문제가 있기 때문에 권장하지 않습니다.

 

해결방법

 

1. 우선 보안 그룹(Security Group)에서 22포트에 대해 0.0.0.0/0으로 설정 뒤 웹으로 연결 한다.

2. 다음 명령어를 사용하여 내가 접속하는 웹의 접근 IP 대역을 체크한다. (서울 리전 기준!)
  curl -s https://ip-ranges.amazonaws.com/ip-ranges.json| jq -r '.prefixes[] | select(.region=="ap-northeast-2") | select(.service=="EC2_INSTANCE_CONNECT") | .ip_prefix'

13.209.1.56/29

 

  ※ Amazone Linux 2 AMI 설치 내역임 

  ※ 설치된 명령어(curl, jd )

      * 없을 경우 #> yum install jd 와 같은 명령어로 설치함.

 

3. 위의 설정 값을 기준으로 다시 보안 그룹 (Security Group)을 재 설정한다.

   * xxx.xxx.xxx.130 은 내 IP로 설정한 고정 IP 주소

   * 위의 웹 접근시 나온 정보 (13.209.1.26/29)를 SSH 접근하도록 설정하면 EC2를 웹에서 연결 가능함.

 

   

 

참고 URL : https://stackoverflow.com/questions/66884055/elastic-beanstalk-ec2-instance-connect-cant-connect

 

Elastic Beanstalk & EC2 Instance Connect: Can't connect

I created an Elastic Beanstalk environment from Visual Studio and need to login to service the underlying ec2 vm. I don't have an credentials for the server, so I wanted to use EC2 Instance Connect...

stackoverflow.com

참고 URL : https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-instance-connect-troubleshooting/

 

EC2 Instance Connect를 사용한 연결 문제 해결

Amazon EC2 Instance Connect를 사용하여 Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스에 연결하려고 할 때 다음 오류가 표시됩니다. “ 인스턴스 연결을 설정하는 동안 문제가 발생했습니다. 로그인하지 못

aws.amazon.com

 

반응형
반응형

 

https://github.com/scouter-project/scouter/blob/master/scouter.document/main/Stand-alone-Java-Batch-Agent_kr.md

 

scouter-project/scouter

Scouter is an open source APM (Application Performance Management) tool. - scouter-project/scouter

github.com

 

# class 명칭으로 등록

batch_id_type=class

 

# 클래스 명칭으로 사용

batch_id=0

 

#명시된 서비스만 후킹

hook_service_patterns=on.batch.*

반응형

'UTILITY' 카테고리의 다른 글

7-ZIP CPU 사용률 제한  (0) 2022.05.11
ghost 옵션  (0) 2019.11.27
POSTMAN Spring 에 Post 데이터 전송 예  (0) 2019.05.27
정규식 방법  (0) 2014.06.17
Process Hacker  (0) 2014.03.26
반응형

 

 

  웹서버 권고 파라미터 : https://waspro.tistory.com/406
WAS서버 권고 파라미터 : https://waspro.tistory.com/407
일반적인 권고 파라미터 : https://yoonroot.tistory.com/entry/Parameter-CentOS-Parameter-%EA%B3%84%EC%86%8D-%EC%B6%94%EA%B0%80-%EC%98%88%EC%A0%95

 

[WEB Server] TCP 권고 Parameter

본 포스팅은 WEB Server 설치 시 권고 파라미터에 대해 알아보겠습니다. WEB Server 설치 시 OS Kernel 권고 Parameter에 대해 살펴보겠습니다. 파라미터 설명 권고값 net.ipv4.tcp_keepalive_intvl TCP TIME_WAIT..

waspro.tistory.com

 

 

[WAS Server] TCP 권고 Parameter

본 포스팅은 WAS Server 설치 시 권고 파라미터에 대해 알아보겠습니다. WAS Server 설치 시 OS Kernel 권고 Parameter에 대해 살펴보겠습니다. 파라미터 설명 권고값 net.ipv4.tcp_keepalive_intvl TCP TIME_WAIT..

waspro.tistory.com

 

[Parameter] CentOS Parameter (계속 추가 예정)

1. 테스트 환경 - OS: CentOS 7.5 기준 2. 설정 방법 - parameter setting vi /etc/sysctl.conf - parameter apply sysctl -p >> growpart <하드디스크명> <파티션번호> - parameter check sysctl -a 3. parameter..

yoonroot.tistory.com

OS 전체 파라미터 설명 : https://chanchan-father.tistory.com/278

 

OS 최적 설정 가이드

1. sysctl 파라미터 1) sysctl 정의 - sysctl은 kernel parameter 값들을 조정하기 위한 utility입니다. - sysctl이 조절할 수 있는 값들은 /proc/sys/ 아래에 있는 리스트들입니다. - RHEL에서는 procps라는 패키..

chanchan-father.tistory.com

 

네트워크 capacity 관련 파라미터

 

1. 리눅스 전체 파일 개수 제한
  - 부족시 : too many open files 에러 발생
  - 정보조회 : sysctl fs.file-max
  ※ 현재 열린 개수 : sysctl fs.file-nr
 
  - 임시 적용 : ulimit -SHn 값
  - 영구 적용 : /etc/security/limits.conf 수정
     > https://sysops.tistory.com/99
 

2. backlogs (네트워크 패킷 처리 큐량) 

  - In-Bound Queue 길이 증가
    > net.core.netdev_max_backlog : 각 네트워크 장치 별로 커널이 처리하도록 쌓아두는 Queue의 크기를 설정   
    > net.core.netdev_max_backlog 이 미정의되면 값이 1000 기본
    > 적용
       /etc/sysctl.conf 파일내
       net.core.netdev_max_backlog=30000
      
   - listen 값 변경 (accept를 기다리는 ESTABLISHED 상태 소켓 큐)
     기본값은 128
     > 적용
       /etc/sysctl.conf 파일 내
       net.core.somaxconn=1024
      
    - listen 값 변경 (SYN-RECEIVE 상태의 소켓)  
     > 적용
       /etc/sysctl.conf 파일 내
       net.ipv4.tcp_max_syn_backlog=1024
      

3. 사용할 수 있는 포트 RANGE
   - 확인 명령
     > sysctl net.ipv4.ip_local_port_range

   - 적용     
     /etc/sysctl.conf 파일 내
      net.ipv4.ip_local_port_range=1024 65535
     
4. 서버 메시지 큐 관련    
    - 확인 명령
      >    sysctl kernel.msgmax
 
    /etc/sysctl.conf 파일 내   
    - 하나의 프로세스에서 다른 프로세스로 보내질 수 있는 최대 메시지 사이즈 지정  (아래는 기본 크기)
   
    # 최대 메시지 큐의 크기를 지정하며 bytes 단위로 지정 (최대 65,536보다 작게 설정함)
    kernel.msgmax = 8192   
    

 

    # kernel.msgmni (자동할당되는 최대 메시지 큐)


    # 기본 메시지 큐의 최대 크기 (최대 메시지 큐의 크기보다 작거나 같아야 함)
    kernel.msgmnb = 16384   

 

 


clear
echo ""
echo "1. TCP Time Wait 상태를 유지하는 시간 변수 조회(기본 : 7200초)"
echo " > WEB,WAS 서버 기준 : 15"
echo ""

sysctl -a | grep net.ipv4.tcp_keepalive_intvl

echo ""
echo "2. Keep Alive가 끊어졌다고 판단하고 세션을 정리하는 동안 보낼 Ping-Pong 패킷 수(기본 :9)"
echo " > WEB,WAS 서버 기준 : 5"
echo ""

sysctl -a | grep net.ipv4.tcp_keepalive_probes

echo ""
echo "3. 세션이 끊어지지 않게 Keep Alive Time 설정 (기본 : 7200)"
echo " > WEB, WAS 서버 기준 : 30 / 데몬 서버는 연결되어야할 초 시간 기준으로 설정함."
echo ""

sysctl -a | grep net.ipv4.tcp_keepalive_time

echo ""
echo "4. 사용할 수 있는 포트 범위를 설정 "
echo " > WEB, WAS 서버 기준 : 1024 - 65000"
echo ""

sysctl -a | grep net.ipv4.ip_local_port_range

echo ""
echo "5. 각 네트워크 장치 별로 커널이 처리하도록 쌓아두는 Queue의 크기 설정 (기본 1000)"
echo " > WEB, WAS 서버 기준 : 2,500"
echo " ※ 일부 소켓 accept라고 오역되는 사이트가 존재함"
echo ""

sysctl -a | grep net.core.netdev_max_backlog

echo ""
echo "6. Accept를 기다리는 ESTABLISHED 상태 소켓 큐 (기본 128)"
echo " > 5번의 큐 크기의 1/30 정도의 크기를 할당함"
echo ""

sysctl -a | grep net.core.somaxconn

echo ""
echo "7. SYN-RECEIVE 상태의 소켓 큐(기본 128)"
echo " > 5번의 큐 크기의 1/30 정도의 크기를 할당함"
echo ""

sysctl -a | grep net.ipv4.tcp_max_syn_backlog

echo ""
echo "8. TCP 연결 문제시 재시도하는 횟수"
echo " > WEB, WAS 서버 기준 : 3"
echo ""

sysctl -a | grep net.ipv4.tcp_retries1

echo ""
echo "9. TCP 연결 끊기전에 재시도하는 횟수 "
echo " > WEB, WAS 서버 기준 : 3"
echo ""

sysctl -a | grep net.ipv4.tcp_retries2

echo ""
echo "10. TCP 수신 버퍼의 최대값 설정 "
echo " > WEB, WAS 서버 기준 : 56777216"
echo ""

sysctl -a | grep net.core.rmem_max

echo ""
echo "11. TCP 수신 버퍼크기 기본값 설정"
echo " > WEB, WAS 서버 기준 : 16777216"
echo ""

sysctl -a | grep net.core.rmem_default

echo ""
echo "12. TCP 전송 버퍼크기 최대값 설정"
echo " > WEB, WAS 서버 기준 : 56777216"
echo ""

sysctl -a | grep net.core.wmem_max

echo ""
echo "13. TCP 전송 버퍼크기 기본값 설정"
echo " > WEB, WAS 서버 기준 : 16777216"
echo ""

sysctl -a | grep net.core.wmem_default

echo ""
echo "14. 65Kb 이상의 큰 TCP 윈도우 스케일링 사용"
echo " > WEB, WAS 서버 기준 : 1 "
echo ""

sysctl -a | grep net.ipv4.tcp_window_scaling

echo ""
echo "15. 서버 측에서 닫은 TCP 연결을 끊기 전에 확인하는 횟수(기본값 7 RTO)"
echo " > WEB, WAS 서버 기준 : 0"
echo ""

sysctl -a | grep net.ipv4.tcp_orphan_retries

echo ""
echo "16. SYNC 패킷을 전송 후 일부 ACK를 받지 못했을 때 선택적으로 ACK 패킷을 받도록 설정(0 : 받지않음, 1: 패킷유실 많은 사이트)"
echo " > WEB, WAS 서버 기준 : 0"
echo ""

sysctl -a | grep net.ipv4.tcp_sack

echo ""
echo "17. TCP 연결 해제 시간 (기본 : 60초)"
echo " > WEB, WAS 서버 기준 : 15"
echo ""

sysctl -a | grep net.ipv4.tcp_fin_timeout

echo ""
반응형
반응형

1. Web.xml 파일 수정 내역 

<filter>
		<filter-name>monitoring</filter-name>
	    <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
		<init-param>
			<param-name>authorized-users</param-name>
			<param-value>id:password</param-value>
		</init-param>
	</filter>
	
	<filter-mapping>
		<filter-name>monitoring</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<listener>
	    <listener-class>net.bull.javamelody.SessionListener</listener-class>
	</listener>

	<login-config>
		<auth-method>BASIC</auth-method>
		<realm-name>Monitoring</realm-name>
	</login-config>
 
	<security-role>
		<role-name>monitoring</role-name>
	</security-role>
 
	<security-constraint>
		<web-resource-collection>
			<web-resource-name>Monitoring</web-resource-name>
			<url-pattern>/monitoring</url-pattern>
		</web-resource-collection>
		<auth-constraint>
			<role-name>monitoring</role-name>
		</auth-constraint>
	</security-constraint>

 

2. JEUSMain.xml  변경내역

 

<application>
      <name>javamelody</name>
      <path>/jeus/webapp</path>
      <deployment-type>COMPONENT</deployment-type>
      <web-component>
         <context-root>/</context-root>
      </web-component>
      <deployment-target>
         <target>
            <engine-container-name>eng2_monitoring</engine-container-name>
         </target>
      </deployment-target>
   </application>

 

반응형

'WAS > JEUS' 카테고리의 다른 글

제우스에서 log4sql 사용하기  (0) 2011.03.15
JEUS 5 세션 공유  (0) 2011.03.09
JEUSMain.xml Datasource 암호 설정  (0) 2011.01.13
IBM JVM 튜닝 - 3  (0) 2009.08.24
제우스 환경 설정 부분  (0) 2009.03.05
반응형

참고 사이트 : 
1. 설정값 들 정보
   https://www.lesstif.com/pages/viewpage.action?pageId=43843899
2. Centos 7 설치 관련
   https://idchowto.com/?p=43787

불러오는 중입니다...

 

Centos 7에 아무생각없이... (난 보안 담당자는 아님....)

 

서비스를 오픈하고 나니

 

불특정 다수에게 서비스를 제공해야 하는 상황이 발생하였습니다...

 

우리만 접근하면 참 좋은데

 

너무 많은 불법 접근 및 접속 요청이 있는 것을 알았고

 

이것을 능동적으로 대응하기 위해

 

fail2ban 패키지가 있다는 사실을 알게되어 글을 씁니다.

 

ssh, mariadb, http 불법 접근시 자동으로 ip ban이 되도록 하였습니다.

 



1. fail2ban 설치

 

다음 명령어를 통해 저장소를 설치할 수 있습니다.

 

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 

# yum install -y fail2ban fail2ban-systemd 


redhat 계열에서 접근로그파일은 /var/log/secure 입니다.  

centos 7 이전에는 secure 로그파일에 의존하여 동작했으나 centos 7 부터는 systemd에서 통합적으로 관리합니다.

※ 이 설정과 관련하여 별도의 파일로 설정할 때는 2가지 옵션을 추가해야 합니다.

 ( backend = polling
   banaction = iptables-multiport )

로그파일이 없으면 fail2ban동작불가하기 때문에 fail2ban-systemd를 같이 설치진행합니다

 

centos 시작시 fail2ban이 자동으로 시작하도록 설정

# systemctl enable fail2ban  

fail2ban 서비스 시작

# systemctl start fail2ban 




2. 설정

fail2ban 의 기본 설정은 /etc/fail2ban/jail.conf 에 있지만 설정을 수정할 필요가 있을 경우 

기본 설정 파일은 놔두고 개인화 설정 파일인 /etc/fail2ban/jail.local 을 사용하는 것이 좋습니다.

설정 파일은 Windows 의 ini 파일처럼 [항목명] 밑에 key=value 형식으로 기술하면 되며 

# 은 주석이며 주요 설정은 [DEFAULT] 항목 밑에 기술하며 여러 기능중에 주요 설정 항목을 알아 봅시다.

 

2019.04.30일 기준으로 기본 설치하면 /etc/fail2ban/jail.conf 파일만 존재하며 jail.local은 보이지 않습니다.

                  복사하여 사용하는 방식으로 보이나 아래 설정들은 그냥 사용하였습니다. (jail.conf은 백업 받아둠)

                  



2.1 ignoreip

ignoreip 에 설정된 IP 는 로그인을 실패해도 차단하지 않으며 기본 설정은 localhost 입니다. 

IP를 추가할 경우 jail.local 파일 의 [DEFAULT] 항목에 기술해 주면 되며 여러개를 기술할 경우 

공백이나 , 로 구분해 주면 되며 아래는 로컬호스트와 192.168.10.x 대역은 차단하지 않는 설정입니다.

ignoreip = 127.0.0.1/8 192.168.10.0/24 



2.2 bantime 

bantime 은 지정된 조건(아래에서 설명할 findtime, maxretry)에 따라 인증에 실패한 클라이언트를 차단할 

시간을 초 단위로 지정하며 기본 설정은 600초(10분)입니다.


2.3 findtime, maxretry

findtime 과 maxretry 는 클라이언트를 차단하기 위한 조건을 지정하며 findtime 에 

지정한 시간(초 단위)내에 maxretry 에 설정한 횟수만큼 인증을 실패하면 차단하게 됩니다.

즉 위 설정은 600초(10분) 내에 5번을 인증 실패할 경우 bantime 만큼 차단합니다.

특정 IP에서 차단후에도 지속적으로 인증을 시도할 경우 bantime 을 점점 길게 해서 

시도 횟수를 줄이는 게 필요하지만 이 기능은 개발 버전(0.10.x)에만 반영되어 있고 0.9 버전에는 구현되어 있지 않습니다.

실제 운영 환경에서는 bantime 을 몇 시간 정도로 길게 주는 것이 보안상 유리합니다.



2.4 mail 알림

 

# 1 
destemail = sysadmin@example.com 
  
  
# 2 
sender = fail2ban@my-server.com 
  
# 3 
mta = sendmail 
  
# 4 
action = %(action_mw)s 


fail2ban 으로 차단한 정보를 메일로 전송할 경우 destemail 에 수신자 이메일 주소를  설정하고 sender 에는  "보낸 사람"의 정보를 설정합니다.

보낸 사람 이름은 전자 메일의 "보낸 사람"필드의 값을 설정하며 mta 매개 변수는 메일을 보내는 데 사용할 메일 서비스를 설정하며 기본은 sendmail 입니다.

중요한 부분은 action 항목으로 차단했을 때 실행할 액션을 의미하며 기본 설정은 아무 일도 안 하는 설정인 "action = %(action_)s" 입니다.

기본 설정으로는 차단 내용을 메일로 전송하지 않으므로 action_ 을 action_mw 나 action_mwl 로 지정해야 메일을 전송하며 차이는 아래와 같습니다.

action_mw : 메일을 전송하고 whois 로 IP 정보를 조회한 결과를 첨부
action_mwl : 메일을 전송하고 whois 로 IP 정보를 조회한 결과와 관련된 로그를 첨부


권장 설정은 다음과 같이 메일을 전송하고 whois 와 log 를 첨부하는 설정입니다.

action = %(action_mwl)s 

※ 위 설정으로 하는 경우 메일 송신시 해당 IP의 정보를 검색한 결과도 같이 송부됩니다.

 

   따라서 whois 명령을 통해 정보가 조회될 수 있어야 합니다.


whois 가 설치되지 않은 경우 

 

$ sudo yum install whois 를 실행합니다.


2.5 개별 jail 설정

기본적으로 fail2ban 은 차단하지 않으므로 차단할 서비스를 [sshd] 처럼 항목명에 서비스를 등록하고 enabled = true 를 추가해 주면 차단됩니다.

2.6 포트 번호 변경

ssh 를 다른 포트로 사용할 경우 port 항목에 해당 포트를 기술해 주면 됩니다. 만약 ssh 가 여러 포트를 사용한다면 

, 를 구분자로 해서 포트를 모두 기술하며 아래는 ssh 기본 포트와 10022 를 사용할 경우 설정입니다.

 

[sshd] 
enabled = true 
port = ssh,10022 
sshd jail 설정 


3. 최종 설정값

 이제 ssh 를 위한 최종 /etc/fail2ban/jail.local 파일을 완성해 보면 아래와 같습니다.

[DEFAULT] 
  
## 차단하지 않을 IP 
ignoreip = 127.0.0.1/8 192.168.10.0/24 
  
# 1시간 차단 (-1로 설정할 경우 영구 차단) 
bantime  = 3600 
  
# 아래 시간동안 maxretry 만큼 실패시 차단 
findtime  = 300 
  
# 최대 허용 횟수 
maxretry = 5 
  
# 메일 수신자, 다중 수신자는 지원 안 함 
destemail = sysadmin@example.com 
  
# 메일 보낸 사람 
sender = fail2ban@my-server.com 
  
# 메일 전송 프로그램 
mta = sendmail 
  
  
# 차단시 whois 정보와 관련 로그를 첨부하여 메일 전송 
action = %(action_mwl)s 
  
# sshd 서비스 차단 
[sshd] 
enabled = true 
port     = ssh, 10022 



4. 서비스 적용

설정을 마쳤으면 서비스를 재시작하여 변경 사항을 반영합니다. 

$ sudo systemctl restart fail2ban 


fail2ban 동작 로그는 /var/log/fail2ban.log 에 기록되므로 tail -f /var/log/fail2ban.log 명령어로 확인해 볼 수 있습니다.


5. firewall-cmd 커널 방화벽 설정 규칙 확인

이제 firewall-cmd 로 커널 방화벽 설정 규칙을 확인해 보겠습니다.

$ sudo firewall-cmd --direct --get-all-rules
ipv4 filter INPUT 0 -p tcp -m multiport --dports ssh -m set --match-set fail2ban-sshd src -j REJECT --reject-with icmp-port-unreachable
fail2ban이 추가한 firewall 설정 규칙
결과에 보이는 "--match-set fail2ban-sshd src" 는 ipset 그룹명이 fail2ban-sshd 인 source 에서 ssh 서비스로 전송한 패킷은 REJECT 하라는 의미입니다.


6. 차단 설정된 정보 조회

설정된 ipset 의 정보는 --list 옵션으로 확인할 수 있습니다.

 

$ sudo ipset --list    

  
Name: fail2ban-sshd 
Type: hash:ip 
Revision: 1 
Header: family inet hashsize 1024 maxelem 65536 timeout 10800 
Size in memory: 16592 
References: 1 
Members: 
192.168.58.1 timeout 89 

ipset 정책 목록
이제 fail2ban-sshd 규칙의 Header 항목에 있는 "timeout 3600"  에 따라 인증에 실패한 IP 는 1시간 동안 차단됩니다.


7. 전체 차단 정보 조회

이제 fail2ban-sshd 규칙의 Header 항목에 있는 "timeout 10800"  에 따라 인증에 실패한 IP 는 3시간 동안 차단됩니다.

전체 차단 정보는 fail2ban 의 클라이언트 유틸리티인 fail2ban-client 명령어를 통해서 확인해 볼 수 있습니다.

$ sudo fail2ban-client status sshd 

Status for the jail: sshd 
|- Filter 
|  |- Currently failed: 1 
|  |- Total failed:     8 
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd 
`- Actions 
   |- Currently banned: 2 
   |- Total banned:     2 
   `- Banned IP list: 103.114.106.xxx 58.242.83.xxx 

 

8. mariadb 10 로그 파일 설정

8.1 로그 경로 생성

 

# mkdir /var/log/mariadb 

# chown mysql:mysql /var/log/mariadb 


8.2  로그 출력 경로 추가

/etc/my.cnf 파일에 다음 내역 추가

[mysqld] 항목 아래에

[mysqld]
log-error=/var/log/mariadb/mariadb.log 


8.3. mariadb 재시작

 

# systemctl restart mariadb 


9. fail2ban 에서 mariadb 설정

위의 8번 항목에 mairadb 설정 로그 출력까지 정상적으로 확인되면

다음 작업을 수행합니다.

/etc/fail2ban/jail.conf 파일

[mysqld-auth] 
# 설정 활성화 
enabled = true 

# 3306 포트 
port     = 3306 

# 로그 경로 
logpath  = /var/log/mariadb/mariadb.log 

# 최대 5회 실패시 적용 
maxretry = 5 

# 사용 필터 
filter   = mysqld-auth 
  
# 폴링 방식 적용 
backend = polling 

# ban 적용 
banaction = iptables-multiport 



9.1 재시작

위의 세팅 정보를 모두 설정하고

아래 명령을 통해 재시작 합니다.

 

# systemctl restart fail2ban 


10. apache tomcat 404 error 설정 추가 하기

10.1 tomcat 필터 파일 생성


404 에 대한 block 처리 방식입니다.

다만, 사전에 소스에 404 Not Found가 발생하는지 여부를 정확하게 확인이 필요합니다.
(아니면 모두 block 처리됨)

아래의 위치에 적용할 필터 명에 파일을 생성합니다.

- 위치 : /etc/fail2ban/filter.d
- 파일명 : tomcat.conf

[INCLUDES] 
before = common.conf 

[Definition] 
failregex =  ^.*\/.*\/.*404 
ignoreregex = 



10.2. jail.conf 정보 추가.

/etc/fail2ban/jail.conf 파일

[tomcat] 
# 설정 활성화 
enabled  = true 

# 적용 서비스 및 포트 
port     = http,https,80,443 

# block 설정 하지 않을 IP  대역대 
ignoreip = 127.0.0.1/8 192.168.10.0/24 

# ban (초) 시간 
bantime  = 3600 

# 최근 10분 동안 
findtime = 600 

# 설정 filter tomcat 
filter   = tomcat 

# 톰켓 로그 폴더 
logpath  = /var/log/tomcat8/localhost_access_log.*.txt 

# 재시도 회수 
maxretry = 5 

# 폴링 방식 적용 
backend = polling 

# ban 적용 
banaction = iptables-multiport 


10.3 재시작

위의 세팅 정보를 모두 설정하고

아래 명령을 통해 재시작 합니다.

# systemctl restart fail2ban 


11. php 파일 관련 설정 추가

11.1 필터 파일 생성

구축 사이트는 PHP 파일이 존재하지 않으므로

모든 php 파일의 404 not found의 경우에는 block 처리 함.


- 위치 : /etc/fail2ban/filter.d
- 파일명 : tomcat-php-404.conf

 

[INCLUDES] 
before = common.conf 

[Definition] 

failregex = ^ - - \[.*\] ".*\.php HTTP/1.1" 404 \d+$ 
            ^ - - \[.*\] ".*\.PHP HTTP/1.1" 404 \d+$ 

ignoreregex = 

 

11.2 필터 설정 적용

/etc/fail2ban/jail.conf 파일

[tomcat-php-404] 
# 설정 활성화 
enabled  = true 

# 적용 서비스 및 포트 
port     = http,https,80,443 

# block 설정 하지 않을 IP  대역대 
ignoreip = 127.0.0.1/8 192.168.10.0/24 

# ban (초) 시간 
bantime  = 3600 

# 최근 10분 동안 
findtime = 600 

# 설정 filter tomcat-php-404 
filter   = tomcat-php-404 

# 톰켓 로그 폴더 
logpath  = /var/log/tomcat8/localhost_access_log.*.txt 

# 재시도 회수 
maxretry = 5 

# 폴링 방식 적용 
backend = polling 

# ban 적용 
banaction = iptables-multiport 


11.3 재시작

위의 세팅 정보를 모두 설정하고

아래 명령을 통해 재시작 합니다.

 

# systemctl restart fail2ban 

============= 기타 ==========

1. jail.conf 설정 파일들에서 옵션들의 의미

ignoreip :이 매개 변수는 금지 시스템에서 무시해야하는 IP 주소를 식별합니다. 
          기본적으로 이것은 기계 자체에서 오는 트래픽을 무시하도록 설정되어 있습니다. 이는 꽤 좋은 설정입니다.
bantime :이 매개 변수는 금지의 길이를 초 단위로 설정합니다. 기본값은 600 초 또는 10 분입니다.
findtime :이 매개 변수는 fail2ban이 반복적으로 실패한 인증 시도를 찾을 때주의 할 창을 설정합니다. 
          기본값은 600 초 (다시 10 분)로 설정됩니다. 즉, 소프트웨어는 지난 10 분 동안 실패한 시도 횟수를 계산합니다.
maxretry : findtime금지가 설정되기 전에 창 에서 허용되는 실패한 시도 횟수를 설정합니다 .
backend :이 항목은 fail2ban이 로그 파일을 모니터하는 방법을 지정합니다. 
         이 설정은 autofail2ban이 시도한 pyinotify다음 gamin사용할 수있는 것을 
         기반으로 폴링 알고리즘을 시도한다는 것을 의미합니다 .
usedns : 역방향 DNS가 금지 구현을 돕는 데 사용되는지 여부를 정의합니다. 
         이것을 "no"로 설정하면 호스트 이름 대신 IP 자체가 금지됩니다. 
         "warn"설정은 역방향 DNS를 사용하여 호스트 이름을 검색하고 그런 식으로 금지하려고 시도하지만 검토를 위해 활동을 기록합니다.
destemail :이 주소는 메일 알리미로 작업을 구성한 경우 알림 메일로 전송됩니다.
           보낸 사람 이름 : 생성 된 알림 전자 메일의 보낸 사람 전자 메일 필드에 사용됩니다.
banaction : 임계 값에 도달 할 때 사용할 조치를 설정합니다. 실제로 /etc/fail2ban/action.d/호출 된 
            파일의 이름이 있습니다 iptables-multiport.conf. 
            이것은 iptablesIP 주소를 금지하기위한 실제 조작을 처리합니다 .          
mta : 알림 이메일을 보내는 데 사용할 메일 전송 에이전트입니다.
protocol : IP 금지가 구현 될 때 삭제 될 트래픽 유형입니다. 
           이것은 새로운 iptables 체인으로 전송되는 트래픽 유형이기도합니다.
chain : 이것은 fail2ban 깔때기로 트래픽을 보내기위한 점프 규칙으로 구성되는 체인입니다.


2. fail2ban 자주 사용하는 명령목록

fail2ban-client status : ban 목록확인
cat /var/log/fail2ban.log : fail2ban 로그확인
cat /var/log/fail2ban.log | grep Ban : Ban 내역만 뽑아서 보기
* ban된 ip 해제하기
fail2ban-client set sshd unbanip 192.111.1.101 (해제IP)

위에 명령어의 sshd 체인네임이며 ftp 등 ban 내역의 해제정보를 적으면된다.

3. filter 적용 테스트

모든 필터는 작성한 후 정상 동작하는지 필터 체크를 해야 합니다.

아래는 예제...

# fail2ban-regex   

예)

# fail2ban-regex /var/log/tomcat8/localhost_access_log.*.txt  /etc/fail2ban/filter.d/tomcat-php-404.conf

 
예2 ) 변수로 정의하는 방식

$ line='0.0.0.0 - - [06/Apr/2017:07:45:42 +0000] "POST /xmlrpc.php'

$ ./fail2ban-regex "$line"  ' - - \[.*\].*POST /xmlrpc' |grep ^Lines
Lines: 1 lines, 0 ignored, 1 matched, 0 missed


4. 설정된 fail2ban 상태 확인

# fail2ban-client status sshd

정상 상태이면 Journal matches 정보나 file 정보가 보이나

비정상 상태이면 안보임... ㅜㅜ


Status for the jail: mysqld-auth
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- Journal matches:
`- Actions
   |- Currently banned: 0
   |- Total banned:     0
   `- Banned IP list:
[root@localhost fail2ban]# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     13
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 27
   |- Total banned:     27
   `- Banned IP list:   198.211

 

# fail2ban-client status mysqld-auth
Status for the jail: mysqld-auth
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     1
|  `- File list:        /var/log/mariadb/mariadb.log
`- Actions
   |- Currently banned: 0
   |- Total banned:     0
   `- Banned IP list:

 

 


 

윈도우즈 용도 존재함 (시간나면 정리를 할 예정)

Wail2Ban

관련 : http://cloudjoon.blogspot.com/2017/08/rdp-security-wail2ban.html

 

Beyond Cloud "IBM Cloud"

RDP( 원격데스크탑 ) 무차별 대입공격 관련 보안스크립트 적용 가이드 1. Wail2ban 소개 - Wail2ban 은 Windows 운영체제 대상으로 RDP( 원격데스크탑 ) 에 대하여 Brute-forc...

cloudjoon.blogspot.com

https://developer.ibm.com/kr/cloud/softlayer-bluemix-infra/security/2017/08/31/rdp-security-script/

 

RDP(원격데스크탑) 무차별 대입공격 관련 보안스크립트 적용 가이드 - IBM Developer

1. Wail2ban 소개 – Wail2ban 은 Windows 운영체제 대상으로 RDP(원격데스크탑)에 대하여 Brute-force Attack(패스워드 무차별 대입공격) 에 대한 방어를 위한 자동 보안설정 스크립트입니다. – 해당 스크립트는 파워쉘(PowerShell)로 작성되었으며, 원작자는 “Katie McLaughlin” 로써 해당 코드에 대한 재배포시에는 반드시 하기URL 의 “Copy Right Notice” 를 명시해야 됩니다.    htt

developer.ibm.com

 

https://github.com/glasnt/wail2ban

 

glasnt/wail2ban

fail2ban, for windows. . Contribute to glasnt/wail2ban development by creating an account on GitHub.

github.com

 

 

반응형
반응형



1. 커맨드 환경(CUI)에 화면 크기 1024*768로 설정

   - root 권한

   #> vi /etc/default/grub

   

   다음 라인 수정

   GRUB_CMDLINE_LINUX=" .....(중략)... vga=791"

   

   grub 업데이트

   #> grub2-mkconfig -o /boot/grub2/grub.cfg

   

   시스템 재시작

   #> sync

   #> reboot 





2. daum repository 설정 추가


   - root 권한

   

   #> cd /etc/yum.repos.d/


   #> vi daum.repo


   ###### 아래의 내용을 추가 #########


    [base]

    name=CentOS-$releasever - Base    

    baseurl=http://ftp.daum.net/centos/7/os/$basearch/    

    gpgcheck=1    

    gpgkey=http://ftp.daum.net/centos/RPM-GPG-KEY-CentOS-7         

    

    [updates]    

    name=CentOS-$releasever - Updates    

    baseurl=http://ftp.daum.net/centos/7/updates/$basearch/    

    gpgcheck=1    

    gpgkey=http://ftp.daum.net/centos/RPM-GPG-KEY-CentOS-7         

    

    [extras]    

    name=CentOS-$releasever - Extras    

    baseurl=http://ftp.daum.net/centos/7/extras/$basearch/    

    gpgcheck=1    

    gpgkey=http://ftp.daum.net/centos/RPM-GPG-KEY-CentOS-7

    

    [centosplus]    

    name=CentOS-$releasever - Plus    

    baseurl=http://ftp.daum.net/centos/7/centosplus/$basearch/    

    gpgcheck=1    

    gpgkey=http://ftp.daum.net/centos/RPM-GPG-KEY-CentOS-7    .

    

    - repo clear 후 재로딩

    #> yum clean all

    

    - repo 목록 조회

    #> yum repolist all

    

    


3. virtual box 자동 화면 해상도 관련

   - root 권한 

    yum install -y make kernel-devel gcc perl bzip2

    yum update -y kernel*



  # 재기동(reboot)   


   Virtual Box -> 장치 -> 게스트 확장 CD 이미지 삽입    

반응형

'OS > Centos' 카테고리의 다른 글

Centos 7 Firewall-cmd 관련 정보들  (0) 2019.05.08
Centos 7 서버 설정 하기  (0) 2019.04.17
Centos 6.3 에서 SAMBA 설정하기  (4) 2013.01.22
Centos 6.3 에서 VNC 설치 하기  (0) 2013.01.21
CENTOS 5 버전의 SSH 관련 버그 오류  (0) 2010.10.05
반응형







1. 파일시스템 장치명

   - 파티션들의 위치를 의미함


2. 마운트 포인트

   - 파일시스템 장치명을 리눅스 파일 시스템 내에 연결할 디렉토리 경로를 설정


3. File System Type (파일시스템 종류)

ext         - 초기 리눅스에서 사용하였던 종류, 현재는 사용하지 않습니다.

ext2       - 현재도 사용하며, 긴~파일시스템이름을 지원하는것이 특징입니다.

ext3       - 저널링 파일시스템, ext2보다 파일시스템의 복수/보안기능을 크게향상됨               

ext4       - 16TB까지만 지원하던 ext3과 달리 더큰 용량을 지원하며, 삭제된 파일 복구, 

               파일 시스템 점검속도가 빠른 파일시스템입니다.

               현재 기본 파일시스템으로 쓰이고 있습니다.(Centos 6.5 기준)

iso9660   - DVD/CD-ROM을 위한 표준 파일시스템으로 읽기만 가능합니다.

nfs         - 원격서버에서 파일시스템 마운트할때 사용하는 시스템(Network File System)

swap     - 스왑파일시스템, 스왑공간으로 사용되는 파일시스템에 사용합니다.

ufs         - Unix system에서 표준 파일시스템으로 사용합니다.(Unix File System)

vfat        - 윈도우95/98등등 ntfs를 지원하기위한 파일시스템에 사용합니다.

msdos    - MS-DOS파티션을 사용하기위한 파일시스템에 사용합니다.

ntfs        - 윈도우NT/2000의 nfts를 지원하기위한 파일시스템에 사용합니다.

hfs         - MAC컴퓨터의 hfs를 지원하기위한 파일시스템에 사용합니다.

hpfs       - hpfs를 지원하기위한 파일시스템에 사용합니다.

sysv      - Unix system v를 지원하기위한 파일시스템에 사용합니다.

ramdisk   - RAM을 지원하기위한 파일시스템에 사용합니다.


4. 마운트 옵션

default     -    rw, nouser, auto, exec, suid속성을 모두 설정

auto        -    부팅시 자동마운트

noauto     -    부팅시 자동마운트를 하지않음

exec        -    실행파일이 실행되는것을 허용

noexec    -    실행파일이 실행되는것을 불허용

suid        -    SetUID, SetGID 사용을 허용

nosuid    -    SetUID, SetGID 사용을 불허용

ro           -    읽기전용의 파일시스템으로 설정

rw          -    읽시/쓰기전용의 파일시스템으로 설정

user       -    일반사용자 마운트 가능

nouser   -    일반사용자 마운트불가능, root만 가능

quota     -    Quota설정이 가능

noquota -    Quota설정이 불가능


5. 덤프

- 백업이 가능한지 설정하는 옵션입니다.

0    -    덤프가 불가능하게 설정

1    -    덤프가 가능하게 설정



6. 무결성 검사 체크 옵션

0    -    무결성 검사를 하지 않습니다.

1    -    우선순위 1위를 뜻하며, 대부분 루트부분에 설정을 해놓습니다.

2    -    우선순위 2위를 뜻하며, 1위를 검사한후 2위를 검사합니다.


루트 파일시스템은 1이기때문에 루트부분 검사후 검사합니다.


참고사이트 : http://movenpick.tistory.com/34


반응형
반응형


hp ux 장비에서 ndd 설정하기



- 값 조회

ndd -get /dev/sockets socket_udp_rcvbuf_default

ndd -get /dev/tcp tcp_smallest_anon_port

ndd -get /dev/udp udp_smallest_anon_port

ndd -get /dev/tcp tcp_conn_request_max

ndd -get /dev/tcp tcp_syn_rcvd_max


- 값 설정

ndd -set /dev/sockets socket_udp_rcvbuf_default 1310720

ndd -set /dev/tcp tcp_smallest_anon_port        9000

ndd -set /dev/udp udp_smallest_anon_port        9000

ndd -set /dev/tcp tcp_conn_request_max          10240

ndd -set /dev/tcp tcp_syn_rcvd_max              1024



- 리부팅 후에도 적용하도록 환경 파일 설정(100 ~ 104 번은 중복되지 않도록)

/etc/rc.config.d/nddconf 


TRANSPORT_NAME[100]=sockets

NDD_NAME[100]=socket_udp_rcvbuf_default

NDD_VALUE[100]=1310720


TRANSPORT_NAME[101]=tcp

NDD_NAME[101]=tcp_smallest_anon_port

NDD_VALUE[101]=9000


TRANSPORT_NAME[102]=udp

NDD_NAME[102]=udp_smallest_anon_port

NDD_VALUE[102]=9000


TRANSPORT_NAME[103]=tcp

NDD_NAME[103]=tcp_conn_request_max

NDD_VALUE[103]=10240


TRANSPORT_NAME[104]=tcp

NDD_NAME[104]=tcp_syn_rcvd_max

NDD_VALUE[104]=1024

반응형
반응형




MobaLiveCD_v2.1.exe



부팅 용 이미지  or CD or USB 를


테스트 해 볼수 있는 프로그램 !


다른사람 작업할 때 완전 필요 ~


부트 메뉴 설정 및 확인할 때 ~~



반응형
반응형


후암..


간만에 설정하려고 하니 뭐가 이리 복잡 -_-...


정확한 자료도 없고...


다음과 같이 정리함.


참고 :http://www.tecmint.com/setup-samba-server-using-tdbsam-backend-on-rhel-centos-6-3-5-8-and-fedora-17-12/


1 단계 준비 노트

 서버의 호스트 명 tecmint 이며 IP는 172.16.25.126 임


2. SELinux 설정을 끔

 다음과 같은 명령으로 설정/비설정 확인 가능함

 ※ 강화된 보안설정으로 작업시 불편이 많다... 대외적(공용망 등 서비스 상태가 아닌 내부용이라면 끄고 설정하는것이 편하다)


 아래는 설정된 상태

 # selinuxenabled && echo enabled || echo disabled
enabled


RHEL 계열은 /CentOS/Fedora 이며 /etc/selinux/config를 에디터로 연다.

vi /etc/selinux/config


SELINUX=enabled 설정을 SELINUX=disabled 설정으로 바꾸고 리부팅한다.



# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted 


3 단계 재부팅

# init 6


4 단계 삼바 설치

# yum install samba samba-common cups-libs samba-client


5 단계 tdbsam Backend 로 삼바 설정하기

# vi /etc/samba/smb.conf


global 설정 부분

 [global] 

# 워크그룹이름은 맘대로 정한다.

workgroup = WORKGROUP


# 윈도우에서 보이는 서버 이름

netbios name = FILEServer


# 접근을 허락할 아이피 범위 (B Class 까지는 층의 변화가 없음)

hosts allow = 172.16.


# 언어셋 설정

unix charset = UTF-8

dos charset = 949

smb port = 139

server string = Public Sector Business 3 Team


# 특정 이더넷 카드만 지원

# interfaces = eth0


## 특정 계정만 접근시키고 싶을 때

# 1. smbpasswd 를 통한 계정 추가 방식

security = user

passdb backend = tdbsam



6 단계 공유 디렉토리 생성

# mkdir -p /share/20130121

# chown -R root:users /share/20130121

# chmod -R 775 /share/20130121


7 단계 공유 디렉토리 지정

공유 폴더 지정 부분

# vi /etc/samba/smb.conf

project 명으로 공유 

* 네트워크 상에서 폴더 정보가 보일수 있도록 browseable 를 yes로 함.

 [tecmintusers]

        comment = Testproject

        path = /share/20130121

        valid users=@users

        force group=users

        create mask = 0660

        directory mask = 0771

        writable = yes

        browseable = yes


        

8 단계 재부팅시 삼바가 기동 되도록 설정
# chkconfig --list 235 smb on

9 단계 삼바 재시작
# /etc/init.d/smb restart


or

# service smb restart

10 단계 삼바 사용자 생성
# useradd project -G users (users 그룹에 project 사용자 생성)
# passwd project (project 계정의 비밀번호 설정 -> 로그인 비밀번호 이며 삼바 비번과는 다름)

삼바 비밀번호 설정
# smbpasswd -a project (project의 삼바 비밀번호를 입력하여 확인한다)

*** 참고
사용자 추가 / 삭제 / 중지
# smbpasswd -a 계정 : 계정 추가
# smbpasswd -x 계정 : 계정 삭제
# smbpasswd -d 계정 : 계정 중지
-> 위 작업후 삼바 재시작 필요함.

11 단계 삼바 공유 검증
# smbclient -L tecmint (즉 서버 명으로 접근되는지 확인 명령)
  비밀번호 입력하라고 하면 엔터 땅!

- 공유 폴더 접근 되는지 확인
# smbclinet -L //tecmint/project -U project (위의 생성 계정)
비밀번호 입력(smbpasswd 를 통해 입력한 비밀번호 입력)
정보 좌악..

12 단계 윈도우즈에서 삼바서버로 로그인하기
\\172.16.25.126\project 자신의 local 폴더와
\\172.16.25.126\tecmintusers 의 공유 폴더 접근이 가능하다.

** 참고로 \\172.16.25.126을 접근했을 때 파일이 아닌 브라우져 상에 보여지고 싶다면
/etc/samba/smb.conf 파일에 공유 옵션에 (7단계 참고) browseable 를 yes로 함.

더 자세한 정보는 www.samba.org 를 통해 확인 가능함.



반응형

'OS > Centos' 카테고리의 다른 글

Centos 7 서버 설정 하기  (0) 2019.04.17
VirtualBox 에서 Centos 7 초기 설치 후 설정하기  (0) 2019.03.07
Centos 6.3 에서 VNC 설치 하기  (0) 2013.01.21
CENTOS 5 버전의 SSH 관련 버그 오류  (0) 2010.10.05
TAR 절대 경로  (0) 2009.07.03

+ Recent posts