본문 바로가기

프로그래밍/서버관리66

CentOS 7 특정 횟수 이상 TCP 접속 차단하기 먼저, iptables 로그 파일을 생성하도록 rsyslog.conf 의 RULE 을 추가합니다. vi /etc/rsyslog.conf kern.* /var/log/iptables.log 80 포트와 443 포트에 10초 이내 20회 접근이 발생하는 경우에 대하여 로그 및 차단 처리하도록 RULE 을 추가합니다. IP 의 경우 보안의 이유로 일부 x 표기하였습니다. iptables -I INPUT -p tcp -s 0.0.0.0/0 -d 172.31.x.x --dport 80 -m recent --set --name flood_list iptables -I INPUT -p tcp -s 0.0.0.0/0 -d 172.31.x.x --dport 80 -m recent --update --seconds 10 .. 2020. 10. 4.
파워셀을 통해 오피스365 exchange online 접속하기 파워쉘을 관리자 권한으로 실행한 후, 실행 정책을 변경합니다. Set-ExecutionPolicy RemoteSigned Exchange Online 에 접속합니다. 이를 위해 먼저, 아이디와 비밀번호를 설정합니다. $Creds = Get-Credential 접속합니다. $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Creds -Authentication Basic -AllowRedirection 세션을 연결합니다. Import-PSSession $Session -DisableNameChecking 연결.. 2020. 3. 13.
zsh 사용하기 1. CentOS 7 yum install zsh 2. CentOS 8 dnf install zsh 3. MacOS X brew install zsh 기본 쉘을 zsh 로 변경합니다. chsh -s /bin/zsh 이후, 계정마다 oh my zsh 를 설치합니다. curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh 계정 루트 디렉토리에서 .zshrc 파일을 수정합니다. git 을 사용하다면, 테마로 agnoster 를 사용합니다. vi ./zshrc ZSH_THEME="agnoster" 그 외 유용한 플러그인으로 zsh-syntax-highlighting 을 설치합니다. yum install zsh-synta.. 2020. 3. 10.
CentOS 7 SELinux 사용 SELinux 사용에 필요한 패키지들을 설치합니다. yum install policycoreutils-python yum install setools setools-console setroubleshoot* yum install policycoreutils-devel 메뉴얼 페이지를 생성합니다. sepolicy manpage -a -p /usr/share/man/man8; mandb 현재 SELinux 의 상태를 확인하려면 다음 명령어를 실행합니다. sestatus SELinux 의 모드는 Enforcing, Permissive, Disabled 3가지가 있으며 각각 운영, 디버그, 중지 모드라고 생각하면 됩니다. 모드를 변경하려면 /etc/selinux/config 파일을 수정하면 됩니다. 임시로 모드.. 2020. 3. 4.
CentOS 7, fail2ban 설정 ssh, ftp, smtp 등 무작위로 로그인 시도를 할 경우 서비스를 보호하기 위하여 fail2ban 을 사용하여 접속을 차단합니다. #yum install fail2ban-firewalld fail2ban-systemd 설치 후 설정 파일을 생성합니다. #cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local jail.local 파일의 경우 jail.conf 설정의 내용 중 중복되는 부분을 overwrite 하는 역할을 합니다. 하지만 yum 등의 패키지 매니저를 통한 업데이트가 발생할 경우 conf 파일은 교체되니 복사하여 local 파일을 생성합니다. DEFAULT 에 기본 설정을 지정하고 적용하고자하는 서비스에 enabled = true 를 추가하면 됩니다... 2019. 6. 4.
CentOS 7 방화벽 설정 CentOS 7 의 경우 iptables 대신 netfilter 를 기본 방화벽으로 사용합니다. 이러한 netfilter 의 관리 프로그램이 firewalld 서비스 입니다. #systemctl start firewalld #systemctl enable firewalld 설치 후 기본적으로 존재하는 zone의 경우 다음과 같습니다. #firewall-cmd --get-zones block dmz drop external home internal public trusted work 여기서 zone은 AWS 의 보안그룹과 같은 역할을 한다고 볼 수 있습니다. 즉, 방화벽 설정 등을 묶어 놓은 후 상황에 따라 교체하며 설정을 일괄 적용할 수 있습니다. 현재 적용되고 있는 zone 은 아래와 같이 확인할 수 .. 2019. 6. 4.
간단한 보안 검사하기 #yum install lynis #lynis audit system #yum install rkhunter #rkhunter -c Lynis 를 통해 서버 설정과 관련한 확인하고, rkhunter 를 통해 백도어 등을 검사합니다. 현재 운영중인 서버에서 lynis 를 실행해보니 몇가지 권고사항들이 나오네요. 먼저, 메일서버에서 VRFY 명령어를 중지시켜 서버에 어떤 계정이 존재하는지 검색할 수 없게합니다. vi /etc/postfix/main.cf disable_vrfy_command = yes 재실행합니다. #service postfix restart 그리고 php 의 expose_php = Off 또한 리포팅에 나와 이를 반영하였습니다. 적용하면 웹서버의 헤더에서 PHP 관련한 정보를 노출하지 않습.. 2019. 5. 30.
CentOS7 Let's Encrypt 무료 인증서 사용하기 Let's Encrypt 를 사용하여 https 를 운영하기 위하여 아래 패키지를 설치합니다.(루트 권한) yum install python2-certbot-nginx 웹서버로 nginx 를 사용할 경우이며, 아래의 명령어를 실행하여 https 를 사용할 도메인을 지정합니다. certbot --nginx -m 메일주소 -d 도메인주소 관련 설정 파일들이 생성됩니다. nginx 의 설정을 테스트한 후, 이상이 없으면 재실행합니다. nginx -tsystemctl restart nginx 브라우저로 접속한 후, 정상적으로 동작하는지 확인합니다. 인증서는 3개월 마다 갱신되므로 cron 으로 매월 갱신되도록 합니다. crontab -e 0 0 1 * * certbot renew -q 2018. 6. 18.
macOS High Sierra 에서 PPTP VPN 설정하기 보안문제로 Sierra 버전부터 VPN 에서 PPTP 가 제거되었습니다. 아직은 VPN 관련 UI에서만 제거되었고 관련 실행파일들은 존재하는 것으로 보입니다. 우선, 서버 등의 설정은 과거 포스팅을 참고해주세요. 2013/04/15 - [프로그래밍/서버관리] - PPTP VPN 설정하기... (CentOS 5.9, Windows7) /etc/ppp 디렉토리 아래 peers 디렉토리를 생성한 후 설정 파일을 작성합니다. vi /etc/ppp/peers/vpnplugin PPTP.pppnoauth# logfile /tmp/ppp.logremoteaddress "서버주소"user "아이디"password "비밀번호"redialcount 1redialtimer 5idle 1800# mru 1368# mtu 13.. 2018. 6. 15.
CentOS7 nginx 에서 http/2 적용하기 nginx 를 컴파일하지 않고 패키지 설치하는 방식으로 http/2 를 적용하는 방법입니다. 먼저, 기존의 nginx 를 제거합니다. 그런 후, 아래의 명령어를 실행하여 nginx 를 설치합니다. yum install https://repo.aerisnetwork.com/stable/centos/7/x86_64/aeris-release-1.0-4.el7.noarch.rpmyum install nginx-moreyum --enablerepo=aeris-testing update nginx-more 설치 후, 기존 설정 경로 conf.d 에 있는 vhost 설정 파일들을 conf.d/vhosts 로 옮깁니다. 설정 파일 중 include 경로 및 http/2 관련 내용을 추가합니다. server { clie.. 2017. 8. 29.
cron hourly 오류 메일이 계속 수신될 경우... 어느날 갑자기 아래와 같은 메일이 계속적으로 오기 시작하였습니다. /etc/cron.hourly/0yum-hourly.cron: Not using downloaded repomd.xml because it is older than what we have: Current : Tue Aug 9 13:58:01 2016 Downloaded: Tue Aug 9 02:17:58 2016 검색해보니 yum 캐시 문제인 듯 하여 이를 정리하였습니다. 참고로 yum cache 의 용량 확인은... du -sh /var/cache/yum 전체 캐시의 삭제는 아래의 명령어를 사용하였습니다. yum clean all 효과가 있는지는 좀 더 살펴봐야겠네요. ^^ 2016. 8. 10.
RoundCube 웹메일 설치하기 - nginx, php-fpm, CentOS 7 먼저, 패키지 설치를 합니다. yum install roundcubemail mediawiki, phpmyadmin 등 아파치 기반의 패키지들을 nginx 로 사용하기 위하여, php-fpm 풀에서 www 의 경우 유저와 그룹을 apache 로 지정하여 사용합니다. RoundCube 웹메일도 마찬가지로 www 풀(파일소켓이 아닌 9000번 포트로 지정해뒀는데... 추후 바꿀 예정입니다.)을 사용하도록 nginx 설정 파일을 생성합니다. vi /etc/nginx/conf.d/roundcube.confserver { listen 80; server_name webmail.도메인주소; root /usr/share/roundcubemail; # Logs access_log /var/log/roundcubemai.. 2016. 5. 27.
xrdp 원격데스크탑 연결 - CentOS 7 리눅스 데스크탑을 원격으로 접속하여 사용할 경우, xlaunch 나 TeamViewer 를 사용해왔는데 새로운 놈이 보여 설치하고 사용해보았습니다. yum install xrdp tigervnc-server xrdp 서비스를 부팅시 실행하도록 설정한 후 실행합니다. systemctl enable xrdpsystemctl start xrdp 3350, 3380 tcp 포트가 열려있으면 정상적으로 실행된 것입니다. 방화벽이나 SELinux 를 사용한다면 관련 설정을 추가하여야합니다.(저는 내부 개발용 리눅스라 무시.....^^) 만약, CentOS 7 의 기본 언어가 한글로 설정되어있다면 아래와 같이 언어 관련 설정을 추가합니다. vi /etc/xrdp/startwm.shexport LANG=ko_KR.UT.. 2016. 5. 25.
Postfix + Amavisd-new + ClamAV + Spamassassin 설치하기 - Centos 7 본 포스팅은 아래 영문 포스팅의 내용을 그대로 따라해본 후기입니다. http://forums.sentora.org/showthread.php?tid=1132 Centos 7 는 sendmail 대신 postfix 를 사용합니다. 관련하여 이미 설치가되어있음을 가정하고 이후 패키지들을 설치합니다.(amavisd-new 설치와 함께 spamassassin 도 설치됩니다.) yum install amavisd-newyum install clamav clamav-update clamav 설정 파일을 수정합니다.(Example 을 주석처리하거나 삭제함) vi /etc/freshclam.conf#ExampleDatabaseDirectory /var/lib/clamavUpdateLogFile /var/log/fres.. 2016. 5. 23.
Docker 로 Gogs 설치하기 https://github.com/gogits/gogs/tree/master/docker https://gogs.io/docs 먼저, gogs 이미지를 가져옵니다. docker pull gogs/gogs Docker 볼륨을 생성한 후, gogs 컨테이너를 실행합니다. docker volume create --name gogs-datadocker run --name gogs -p 10022:22 -p 10080:3000 -v gogs-data:/data gogs/gogsdocker start gogs 웹브라우저를 실행하여 10080 포트로 접속합니다. Application Name, Domain, SSH Port, Application URL 의 값을 수정합니다.(데이터베이스의 경우, 볼륨에 모든 데이터를.. 2016. 2. 18.