2020/05/31

Centos7 Iptables 사용하기

Centos7 Iptables 사용하기

안녕하세요.

JP-Hosting 입니다.

이번에는 Centos7에 적용된 firewalld 대신 기존 사용하던 iptables 를 사용하는 방법에 대한 글입니다.

  • 테스트환경은 Centos 7.8 버전입니다.

[root@localhost ~]# rpm -qa *-release centos-release-7-8.2003.0.el7.centos.x86_64

  • Centos7 기본 firewalld 서비스 삭제

  1. 서비스 상태 확인
  2. Firewalld 중지
  3. 서비스 상태 확인

[root@localhost ~]# systemctl status firewalld● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2020-05-30 15:01:15 JST; 1 day 7h agoDocs: man:firewalld(1)Main PID: 23280 (firewalld)CGroup: /system.slice/firewalld.service└─23280 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopidMay 30 15:01:15 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...May 30 15:01:15 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.May 30 15:01:15 localhost.localdomain firewalld[23280]: WARNING: AllowZoneDrifting is enabled. This is considered an insec... now.Hint: Some lines were ellipsized, use -l to show in full.You have new mail in /var/spool/mail/root[root@localhost ~]# systemctl stop firewalld[root@localhost ~]# systemctl mask firewalldCreated symlink from /etc/systemd/system/firewalld.service to /dev/null.[root@localhost ~]# systemctl status firewalld● firewalld.serviceLoaded: masked (/dev/null; bad)Active: inactive (dead) since Sun 2020-05-31 22:07:36 JST; 3s agoMain PID: 23280 (code=exited, status=0/SUCCESS)May 30 15:01:15 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...May 30 15:01:15 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.May 30 15:01:15 localhost.localdomain firewalld[23280]: WARNING: AllowZoneDrifting is enabled. This is considered an insec... now.May 31 22:07:35 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon...May 31 22:07:36 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon.Hint: Some lines were ellipsized, use -l to show in full.

  • Iptables 서비스 설치

  1. Iptables 서비스 설치
  2. 서비스 시작
  3. 서비스 상태 확인

[root@localhost ~]# yum -y install iptables-servicesLoaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfile* base: ty1.mirror.newmediaexpress.com* extras: ty1.mirror.newmediaexpress.com* updates: ty1.mirror.newmediaexpress.comResolving Dependencies--> Running transaction check---> Package iptables-services.x86_64 0:1.4.21-34.el7 will be installed--> Finished Dependency ResolutionDependencies Resolved==================================================================================================================================Package Arch Version Repository Size==================================================================================================================================Installing:iptables-services x86_64 1.4.21-34.el7 base 52 kTransaction Summary==================================================================================================================================Install 1 PackageTotal download size: 52 kInstalled size: 23 kDownloading packages:iptables-services-1.4.21-34.el7.x86_64.rpm | 52 kB 00:00:00Running transaction checkRunning transaction testTransaction test succeededRunning transactionInstalling : iptables-services-1.4.21-34.el7.x86_64 1/1Verifying : iptables-services-1.4.21-34.el7.x86_64 1/1Installed:iptables-services.x86_64 0:1.4.21-34.el7Complete!


[root@localhost ~]# systemctl enable iptablesCreated symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.[root@localhost ~]# systemctl start iptables


[root@localhost ~]# systemctl status iptables● iptables.service - IPv4 firewall with iptablesLoaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled)Active: active (exited) since Sun 2020-05-31 22:22:21 JST; 6s agoProcess: 26258 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS)Main PID: 26258 (code=exited, status=0/SUCCESS)May 31 22:22:21 localhost.localdomain systemd[1]: Starting IPv4 firewall with iptables...May 31 22:22:21 localhost.localdomain iptables.init[26258]: iptables: Applying firewall rules: [ OK ]May 31 22:22:21 localhost.localdomain systemd[1]: Started IPv4 firewall with iptables.

  • Iptables 룰 설정

[root@localhost ~]# vi /etc/sysconfig/iptables# sample configuration for iptables service# you can edit this manually or use system-config-firewall# please do not ask us to add additional ports/services to this default configuration*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT~

위 포스팅에 문제가 있을 시, 삭제하도록 하겠습니다.

 

2020/05/30

Crontab 스케줄러 다루기

Crontab 스케줄러 다루기

안녕하세요.

JP-Hosting입니다.

리눅스에서 일정한 시간마다

반복 작업을 해야 할 때, 사용하는 Crontab에 대해 알아보도록 하겠습니다.

윈도우에는 작업 스케줄러가 존재하듯, 리눅스에도 Crontab이 존재합니다.

특정한 시간마다 정해둔 명령어가 계속 실행되도록 도와주는 패키지인데요.

Crontab 설정에 대해 다루어보려고 합니다.


  • 테스트환경은 Centos 7.8 버전입니다.

[root@localhost ~]# rpm -qa *-release centos-release-7-8.2003.0.el7.centos.x86_64

  • Crond 서비스 확인

[root@localhost ~]# systemctl status crond● crond.service - Command SchedulerLoaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2020-05-30 15:01:43 JST; 29min agoMain PID: 31877 (crond)CGroup: /system.slice/crond.service└─31877 /usr/sbin/crond -nMay 30 15:01:43 localhost.localdomain systemd[1]: Started Command Scheduler.May 30 15:01:43 localhost.localdomain crond[31877]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 49% if used.)May 30 15:01:43 localhost.localdomain crond[31877]: (CRON) INFO (running with inotify support)May 30 15:01:43 localhost.localdomain crond[31877]: (CRON) INFO (@reboot jobs will be run at computer's startup.)

  • Crontab 설정

  • Crontab 설정의 경우 두가지 방법으로 설정이 가능합니다.

    1. /etc/crontab 파일을 직접 수정하는 방법

    [root@localhost ~]# vi /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root# For details see man 4 crontabs# Example of job definition:# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | | | | |# * * * * * user-name command to be executed

2. Crontab 명령어를 이용하는 방법

[root@localhost ~]# crontab -e # 내 crontab 수정[root@localhost ~]# crontab -l # 내가 설정한 crontab 확인[root@localhost ~]# crontab -e -u test # test란 이름의 사용자의 crontab 수정[root@localhost ~]# crontab -l -u test # test란 이름의 사용자의 crontab 확인

  •  Crontab 명령어 예시
*/1 * * * * echo "every 1 min" # 1분마다 실행*/30 * * * * echo "every 30 min" # 30분마다 실행30 */6 * * * echo "every 6hours at 30 mins" # 6시간마다 실행 (00:30, 06:30, 12:30, 18:30)30 1-18/2 * * * echo "every 2hours on 1am - 6pm" # (01 ~ 18)까지 매 2시간마다 실행 01:30, 03:30, ... 17:30)

  • 결과 예시 (cat /var/spool/mail/root)
  • 1분마다 "every 1 min" 문구가 실행된것을 확인
From [email protected] Sat May 30 16:19:01 2020Return-Path: <[email protected]>X-Original-To: rootDelivered-To: [email protected]: by localhost.localdomain (Postfix, from userid 0)id 417A51B6010A; Sat, 30 May 2020 16:19:01 +0900 (JST)From: "(Cron Daemon)" <[email protected]>To: [email protected]: Cron <root@localhost> echo "every 1 min"Content-Type: text/plain; charset=UTF-8Auto-Submitted: auto-generatedPrecedence: bulkX-Cron-Env: <XDG_SESSION_ID=33>X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>X-Cron-Env: <LANG=en_US.UTF-8>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <PATH=/usr/bin:/bin>X-Cron-Env: <LOGNAME=root>X-Cron-Env: <USER=root>Message-Id: <[email protected]>Date: Sat, 30 May 2020 16:19:01 +0900 (JST)every 1 minFrom [email protected] Sat May 30 16:20:01 2020Return-Path: <[email protected]>X-Original-To: rootDelivered-To: [email protected]: by localhost.localdomain (Postfix, from userid 0)id 539BA1B6010D; Sat, 30 May 2020 16:20:01 +0900 (JST)From: "(Cron Daemon)" <[email protected]>To: [email protected]: Cron <root@localhost> echo "every 1 min"Content-Type: text/plain; charset=UTF-8Auto-Submitted: auto-generatedPrecedence: bulkX-Cron-Env: <XDG_SESSION_ID=34>X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>X-Cron-Env: <LANG=en_US.UTF-8>X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <PATH=/usr/bin:/bin>X-Cron-Env: <LOGNAME=root>X-Cron-Env: <USER=root>Message-Id: <[email protected]>Date: Sat, 30 May 2020 16:20:01 +0900 (JST)every 1 min

이번 포스트에서는 간단하게 Crontab을 사용하는 방법에 대해 알아보았는데요.

이런 Crontab의 경우 주로 시간 동기화나 http 재시작, 주기적인 백업 스크립트 작동등

여러 방면에서 활용도가 높은 패키지입니다.

서버 문의는 텔레그램통해 연락 부탁드립니다.

좋은하루 되세요!

2020/05/16

server-status를 이용한 아파치 모니터링 방법

1.별도의 설치 없이httpd.conf 파일에 아래의 내용을 추가합니다.

==================

SetHandler server-status

order allow,deny

allow from all

allow from [.도메인주소]

==================

이 후 아파치 재시작

# /usr/local/apache2/bin/apachectl restart

  1. 웹페이지에서 정상적으로 상태가 나타나는지 확인

  : 아래와 같은 형식으로 웹 브라우저에 입력하면 아래 그림과 같은 화면을 볼 수 있습니다.

http://도메인/server-status

위의 내용을 주기적으로 갱신하려면 웹 브라우저에 아래와 같은 형식으로 입력하면 됩니다.

(단위는 “초” 입니다.)

http://도메인/server-status?refresh=5

추가적으로 위의 내용에 대한 설명은 아래와 같습니다.

 – Server Version : 아파치서버의 버전을 나타냄

 – Server Built : 아파치서버가 설치된 년, 월, 일, 시

 – Current Time : 현재 모니터링하는 년, 월, 일, 요일, 시간

 – Restart Time : 아파치서버가 재동작한 년, 월, 일, 요일, 시간

 – Parent Server Generation : 서버 부하방지을 위한 아파치서버 생성갯수 총서버 개수중 요구에 응하고 있는 서버의 개수와 놀고 있는 서버의 개수 Scoreboard Key 에 대한 정보

  – “-” : 응답을 하기 위해 대기중임을 나타냄

 – “S” : 시작되고 있음을 나타냄

 – “R” : 응답을 위해 요구사항을 해석하고 있음

 – “L” : 요구에 대한 응답을 하고 있음

 – “K” : 계속 연결 중

 – “D” : DNS서버에 요구도메인 검색 중

 – PID key : 프로세스정보를 보여줌

위와 같이 웹 브라우저에서 확인하는 방법이 아닌 유닉스 쉘에서 확인하려면 아래와 같은 명령어를 이용하면 쉘에서도 확인이 가능합니다.

#/usr/local/apache2/bin/apachectl fullstatus

참고 링크

https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=219

위 게시글에 문제가 있을 시, 삭제하겠습니다.

IIS 다운/업로드 용량 제한 방법

IIS 를 통해 웹 서비스를 구동할 경우 다운로드 및 업로드 시에 용량이 제한 되어
다양한 모듈 및 컴포넌트에서 오류가 발생할 수 있는 경우가 발생합니

경로도 일치하나 다운로드가 되지 않는 경우 다운로드 용량제한에 의해 발생했을 경우가 높습니다.
IIS 에서 용량 설정 확인 우선 해보시기 바랍니다.

Windows 2003 과 2008 에서의 설정 상태 확인 방법입니다.

  • 윈도우 2003
    -> metaBase.xml 파일 데이터 값 수정
    – 파일 경로 : C:\WINDOWS\system32\inetsrv
    – 파일 명 : MetaBase.xml
    – 데이터 값 :
    AspMaxRequestEntityAllowed=”307200000″ : 업로드 용량 제한 300MB로 설정

    AspBufferingLimit=”307200000″ : 다운로드 용량 제한 300MB로 설정
  • Windows 2008
    -> IIS 상에서 applicationHost.config 값 수정 -> GUI 화면으로 설정 가능
    IIS 다운/업로드 용량 제한 방법

참고 URL
http://faq.hostway.co.kr/Windows_Web/8273

위 게시글에 문제가 있을 시, 삭제하겠습니다.