리눅스 서버는 살아 있는데,

특정 프로세스만 Down 되어 서비스가 먹통이 되는 때가 간혹 있다.

예를들어, 서버의 ICMP는 되나 nginx만 죽었다던지...그런 것이다.


방법을 찾던 중에 Monit 이라는 오픈소스를 알게 되었다.


- 설치

# On RedHat/CentOS(AMI)/Fedora/

yum install monit

# On Ubuntu/Debian/Linux Mint

apt-get install monit


# vi /etc/monit.conf   또는  vi /etc/monit/monitrc


주석 처리 된 내용 중 원하는 설정의 # 을 제거하여 활성화 한다.

set daemon  120           # check services at 2-minute intervals

 - 실행
service monit start
/etc/init.d/monit start

원하는 것을 골라서 실행 시키면 된다.

 - 사용자 설정 (모니터링)
vi /etc/monit/conf.d/httpd

check process httpd with pidfile /var/run/httpd.pid
    start program = "/etc/init.d/httpd start"
    stop program = "/etc/init.d/httpd stop"
    if failed host www.example.com port 80
      protocol HTTP request /alive.html then restart
    group httpd


vi /etc/monit/conf.d/nginx 

 check process nginx with pidfile /var/run/nginx.pid
   group nginx
   start program = "/etc/init.d/nginx start"
   stop program = "/etc/init.d/nginx stop"
   if failed 127.0.0.1 port 80 protocol http request "/check.html" then restart

 

vi /etc/monit/conf.d/mysql
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
group mysql
start program = "/etc/init.d/mysqld start"
stop program = "/etc/init.d/mysqld stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout

vi /etc/monit/conf.d/vsftpd

check process vsftpd with pidfile /var/run/vsftpd/vsftpd.pid
start program = "/etc/init.d/vsftpd start"
stop program = "/etc/init.d/vsftpd stop"
if failed host 127.0.0.1 port 21 then restart


stop start 프로그램이 없을 경우,

check process nginx with pidfile /var/run/nginx.pid
start program = "/opt/cac/sbin/nginx"
stop program = "/opt/cac/sbin/nginx -s stop"
if failed host 127.0.0.1 port 80 then restart

원하는 모니터링을 생성 후 설정 저장

- config 오류 확인
monit -t
Control file syntax OK

- monit 재실행
/etc/init.d/monit restart




 - 부팅시 monit 실행

vi /etc/rc.local

/usr/bin/monit cnrk







참고 url : https://mmonit.com/monit/documentation/monit.html

https://nolboo.kim/blog/2016/08/13/monitoring-linux-monit/



by 초보인척 2018. 10. 23. 11:27

Mikrotik Router SYN flood Protection


New Terminal

[Mikrotik]# 아래 내용 적용.


ip firewall filter add chain=input protocol=tcp connection-limit=0,32  action=add-src-to-address-list  address-list=blocked-addr address-list-timeout=1d

      

ip firewall filter add chain=input protocol=tcp src-address-list=blocked-addr connection-limit=3,32 action=tarpit  


ip firewall filter add chain=forward protocol=tcp tcp-flags=syn connection-state=new action=jump jump-target=SYN-Protect comment="SYN Flood protect" disabled=yes  


ip firewall filter add chain=SYN-Protect protocol=tcp tcp-flags=syn limit=400,5 connection-state=new action=accept comment="" disabled=no 


ip firewall filter add chain=SYN-Protect protocol=tcp tcp-flags=syn connection-state=new  action=drop comment="" disabled=no 



For v6.x (version 6.X 이상에 적용)

ip settings set tcp-syncookies=yes


For older version. (6.X 이하에 적용)

ip firewall connection tracking set tcp-syncookie=yes





참고url : https://wiki.mikrotik.com/wiki/DoS_attack_protection

by 초보인척 2018. 10. 5. 16:27

환경

우분투 16.04 LTS 


apt-get install keepalived

keepalived 설치



vi /etc/keepalived/keepalived.conf


! Configuration File for keepalived


global_defs {

   notification_email {

   }

}


vrrp_instance xdnpass {

    state MASTER              # keepalived 시작시 MASTER로서 시작할지 BACKUP으로 시작할지를 지정

#    state BACKUP

    interface eth1             # VRRP패킷을 송신하거나 수실할 인터페이스를 지정

    virtual_router_id 100    # 가상 라우터 ID.VRRP 인스턴스 마다 고유한 값을 지정. 지정할 수 있는 범위는 0~255

    priority 101                # VRRP의 우선순위값. 마스터를 선출할 때 이 값이 큰 것이 우선

#    priority 100

    advert_int 2               # VRRP패킷 송신 간격. 초단위로 지정

    garp_master_delay 2    # 마스터 상태로 변경된 후에 gratuitous ARP를 재송신하기까지 대기시간을 초단위로 지정

    authentication {

        auth_type PASS

        auth_pass xdnroute

    }

    virtual_ipaddress {

        121.126.223.193    # virtual_ipaddress  VIP(가상주소). 형식은 다음과 같고 여러 개 지정할 수 있음.

   # <IPADDR>/<MASK>dev<STRIng>

    }

}


vrrp_instance private6pass {

    state MASTER

    interface eth0

    virtual_router_id 101

    priority 101

    advert_int 2

    garp_master_delay 2

    authentication {

        auth_type PASS

        auth_pass xdnroute

    }

    virtual_ipaddress {

        10.1.6.241

    }

}

by 초보인척 2018. 6. 21. 13:17