CentOS 7.x vsftpd 보안설정 방법



TLS/SSL 을 설정하지 않고 사용하면 보안이 적용되지 않은 FTPS 가 아닌 FTP 접속 방식입니다.


Openssl 로 인증서를 생성해서 보안설정을 해보도록 하겠습니다.


그리고 implicit(990) 와 explicit(21) 두가지 옵션에 대해서 알아봅시다.


openssl 은 yum 으로 설치하면 됩니다.



▶ 인증서 생성 ( -keyout : rsa_private_key_file, -out : rsa_cert_file )


# openssl req -x509 -days 365 -newkey rsa:2048 -nodes -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

Generating a 2048 bit RSA private key

.........................................+++

...........................+++

writing new private key to '/etc/vsftpd/vsftpd.pem'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [XX]:KR

State or Province Name (full name) []:Seoul

Locality Name (eg, city) [Default City]:Seoul

Organization Name (eg, company) [Default Company Ltd]:myServer

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) []:ftp.ivps.kr

Email Address []:


인증서를 만들었습니다.



▶ TLS/SSL 활성화 ( vi /etc/vsftpd/vsftpd.conf )


pasv_enable=YES

pasv_min_port=50001

pasv_max_port=50040


ssl_enable=YES

allow_anon_ssl=NO

force_local_data_ssl=YES

force_local_logins_ssl=YES

ssl_tlsv1_2=YES

ssl_sslv2=NO

ssl_sslv3=NO

require_ssl_reuse=NO

ssl_ciphers=HIGH

rsa_cert_file=/etc/vsftpd/vsftpd.pem

rsa_private_key_file=/etc/vsftpd/vsftpd.pem



▶ 방화벽 설정


# firewall-cmd --permanent --zone=public --add-service=ftp

# firewall-cmd --permanent --zone=public --add-port=50001-51000/tcp

# firewall-cmd --reload


이제 접속하면 됩니다.


CentOS 7.x vsftpd 보안설정 방법


알드라이브 접속 설정입니다.


FileZilla 를 사용하여도 됩니다.




위의 설정이 explicit 옵션입니다.


implicit 로 접속하려면 아래의 설정을 추가하여야 합니다.


implicit_ssl=YES

listen_port=990


/etc/vsftpd/vsftpd.conf 파일에 위 두 옵션을 추가합니다.


그리고 방화벽에 990 포트를 설정합니다.


# firewall-cmd --permanent --zone=public --add-port=990/tcp

# firewall-cmd --reload


implicit 옵션으로 접속해보시면 됩니다.


반응형
블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x IPv6 비활성화 방법



ifconfig 로 정보를 보면 좀 복잡하게 나오지요~


리눅스에서 사용하지 않는 IPv6 를 disable 시키는 방법입니다.



▶ 방법 1


# vi /etc/sysconfig/network-scripts/ifcfg-eth0

IPV6INIT=no


# systemctl restart network


6.x 버전은 service network restart



▶ 방법 2


# vi /etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6 = 1


# sysctl -p


원하시는 방법을 사용하면 됩니다.



반응형
블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

리눅스 시스템 자동백업하기



리눅스 데이터와 시스템 전체를 매일 정해진 시간에 자동으로 백업을 하는 방법입니다.


먼저 tar로 압축백업하는 쉘스크립트를 만들어야 합니다.



▶ 스크립트 작성 ( vi /root/sys-backup.sh )


#!/bin/sh


TODAY=`date +%Y%m%d`

tar cvpzf /mnt/backup_$TODAY.tar.gz --exclude={/mnt,/media,/proc,/sys,/var/cache,/lost+found} /


증분백업을 하려면 -g backup.list 이렇게 옵션을 추가하면 됩니다.


그리고 제외하려는 폴더를 추가하려면 --exclude 옵션에 디렉토리를 추가하면 됩니다.



▶ 크론 등록


# echo "30 03 * * * root /root/sys-backup.sh" > /etc/cron.d/sys-backup

# chmod 600 /etc/cron.d/sys-backup


매일 새벽 3시 30분에 백업을 하도록 크론에 등록을 합니다.



▶ 압축푸는 방법


# tar xvpzf /mnt/backup_백업날짜.tar.gz -C /


-C / 옵션은 루트에 풀어라는 의미입니다.




▶ 증분 백업 스크립트 예제


위의 백업 스크립트에서 월요일은 풀백업하고 다른 요일은 증분백업하는 스크립트입니다.


#!/bin/sh


TODAY=`date +%Y%m%d`

DAY_OF_WEEK=`date +%u`


if [ $DAY_OF_WEEK -eq 1 ] ; then

rm /mnt/backup.list

fi

tar cvpzf /mnt/backup_$TODAY.tar.gz -g /mnt/backup.list --exclude={/mnt,/media,/proc,/sys,/var/cache,/lost+found} /


이렇게하면 백업용량을 줄일 수가 있습니다.


그리고 tar cvpzfg /mnt/backup.list ... 이렇게 해도 됩니다.


반응형
블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 6.x transmission 설치방법



6.x 버전과 7.x 버전에서 토렌트 transmission 설정이 조금 다릅니다.



▶ transmission 설치


# yum install transmission transmission-daemon



▶ transmission 데몬 시작


# chkconfig transmission-daemon on

# service transmission-daemon start



웹 브라우저에서 http://mydomain.com:9091/ 을 열어보면 아래처럼 에러가 나옵니다.


403: Forbidden


Unauthorized IP Address.


Either disable the IP address whitelist or add your address to it.


If you're editing settings.json, see the 'rpc-whitelist' and 'rpc-whitelist-enabled' entries.


If you're still using ACLs, use a whitelist instead. See the transmission-daemon manpage for details.


whitelist 설정을 풀어줍니다.



▶ transmission 데몬 중지


# service transmission-daemon stop



▶ vi /var/lib/transmission/.config/transmission/settings.json


"rpc-whitelist": "127.0.0.1",

"rpc-whitelist-enabled": false,


굵게 표시한 부분만 바꿔주고 저장합니다.


아이피를 지정해주어도 됩니다.



▶ transmission 데몬 시작


# service transmission-daemon start



방화벽이 막혀있다면 9091 (rpc-port), peer-port 를 열어주어야 합니다.


반응형
블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x 토렌트 유틸 transmission 설치



리눅스에도 gui 환경이 아닌 토렌트를 사용할 수가 있습니다.


transmission을 설치하고 간단한 설정 후 사용방법은 웹브라우저에서 컨트롤 하는 방식입니다.


토렌트머신이 되는거죠~



▶ transmission 설치


# yum install epel-release

# yum install transmission transmission-daemon


yum install epel-release : 저장소를 먼저 확장해야 합니다.


▶ transmission 설정파일 만들기


# systemctl start transmission-daemon

# systemctl stop transmission-daemon


일단 데몬이 먼저 실행되어야 설정파일이 생깁니다.



▶ 방화벽 설정


# firewall-cmd --permanent --zone=public --add-port=9091/tcp

# firewall-cmd --reload


rpc-port : 9091 ( 이 포트가 변경되면 방화벽에도 포트를 변경해 주어야 합니다. )

peer-port : 51413 ( peer 포트는 데몬에서 알아서 열어주는 것 같습니다. )



▶ transmission 시작


# systemctl start transmission-daemon



웹 브라우저에서 http://mydomain.com:9091/ 을 열어보면 아래처럼 에러가 나옵니다.


403: Forbidden


Unauthorized IP Address.


Either disable the IP address whitelist or add your address to it.


If you're editing settings.json, see the 'rpc-whitelist' and 'rpc-whitelist-enabled' entries.


If you're still using ACLs, use a whitelist instead. See the transmission-daemon manpage for details.


whitelist 설정을 풀어줍니다.



▶ vi /var/lib/transmission/.config/transmission-daemon/settings.json ( 데몬이 멈춘상태에서 편집하여야 합니다. )


"rpc-whitelist": "127.0.0.1",

"rpc-whitelist-enabled": false,


굵게 표시한 부분만 바꿔주고 저장합니다.



토렌트 데몬을 시작합니다.


# systemctl start transmission-daemon





웹 브라우저에서 토렌트 컨트롤 화면입니다.


http://mydomain:9091/ 로 접속하면 됩니다.



반응형
블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

리눅스 스트링을 날짜로 변환



date 명령어로 문자열을 날짜로 변환하는 방법은 -d 옵션을 사용하거나 --date 옵션을 사용하면 됩니다.


# date --date='20170417'

Mon Apr 17 00:00:00 KST 2017



특정날짜 기준으로 일주전 계산


# date +%Y%m%d --date='20170410 7 days ago'

20170403


이런씩으로 문자열을 날짜형태로 변환이 가능합니다.


반응형
블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

RSYNC SSH 포트가 22번이 아닐때



ssh 포트가 22 가 아니면 아래처럼 rsync 실행시 에러가 납니다.


# rsync -av -e ssh root@example.com:/var/www/html /var/www/html

ssh: connect to host example.com port 22: Connection refused

rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]

rsync error: unexplained error (code 255) at io.c(605) [Receiver=3.0.9]


이럴때는 ssh -p포트번호를 따옴표로 묶어주면 됩니다.


# rsync -av -e "ssh -p10022" root@example.com:/var/www/html /var/www/html

receiving incremental file list


sent 23 bytes  received 734 bytes  302.80 bytes/sec

total size is 24688  speedup is 32.61


그리고 아래 처럼 해도 됩니다.


# rsync -av --rsh="ssh -p10022" root@example.com:/var/www/html /var/www/html

receiving incremental file list


sent 23 bytes  received 734 bytes  302.80 bytes/sec

total size is 24688  speedup is 32.61


반응형
블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

tar 특정 폴더 제외하고 압축하기



압축할 때 특정 폴더를 제외하는 옵션은 --exclude 입니다.


/mnt, 와 /media 폴더를 제외하려면 --exclude=/mnt --exclude=/media 이렇게 적어주거나 --exclude={/mnt, /media} 이렇게도 사용이 가능합니다.


그리고 asterisk * 를 사용할 수도 있습니다.


예) --exclude=/home/*/public_html



아래 예제는 리눅스 시스템을 통째로 압축하는 방법입니다.


tar cvpzf /mnt/os.tar.gz --exclude={/mnt,/media,/proc,/sys,/var/cache,/lost+found} /



압축해제는 


tar xvpzf /mnt/os.tar.gz -C /



반응형
블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 6.x yum repository 문제로 동작이 안될때



yum update 했더니 아래 처럼 에러메시지가 나오는 경우가 있습니다.


# yum update

... 생략

http://ftp.daum.net/centos/6/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"

Trying other mirror.

To address this issue please refer to the below knowledge base article


https://access.redhat.com/articles/1320623


If above article doesn't help to resolve this issue please open a ticket with Red Hat Support.


Error: Cannot retrieve repository metadata (repomd.xml) for repository: daum_base. Please verify its path and try again


daum 쪽 레포가 문제가 생긴거 같네요. Daum.repo 를 삭제합니다.


# ls -l /etc/yum.repos.d

-rw-r--r-- 1 root root 1991 Mar 28 19:25 CentOS-Base.repo

-rw-r--r-- 1 root root  647 Mar 28 19:25 CentOS-Debuginfo.repo

-rw-r--r-- 1 root root  289 Mar 28 19:25 CentOS-fasttrack.repo

-rw-r--r-- 1 root root  630 Mar 28 19:25 CentOS-Media.repo

-rw-r--r-- 1 root root 7989 Mar 28 19:25 CentOS-Vault.repo

-rw-r--r-- 1 root root  365 Jun 19  2014 Daum.repo

-rw-r--r-- 1 root root  957 Nov  5  2012 epel.repo

-rw-r--r-- 1 root root 1056 Nov  5  2012 epel-testing.repo

-rw-r--r-- 1 root root  739 Mar 20  2013 mirrors-rpmforge

-rw-r--r-- 1 root root  717 Mar 20  2013 mirrors-rpmforge-extras

-rw-r--r-- 1 root root  728 Mar 20  2013 mirrors-rpmforge-testing

-rw-r--r-- 1 root root 1128 Mar 20  2013 rpmforge.repo


# rm -rf Daum.repo


그리고 yum 캐시폴더도 삭제합니다.


# rm -rf /var/cache/yum/x86_64


# yum clean all


# yum update


이제 잘 됩니다.


반응형
블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 6.x letsencrypt install



7.x 버전에서는 yum install 로 설치가 됩니다.


그런데 6.x 버전에서는 python 이 2.7 버전대가 아닌 2.6 버전이라서 설치가 안되는 것 같습니다.


아래 처럼 메시지가 뜨면서 진행이 안되네요.


# yum install letsencrypt

...

No package letsencrypt available.

Error: Nothing to do


그래도 구글링해보니 방법은 있더군요.


# yum update


# yum install epel-release


# rpm -ivh https://rhel6.iuscommunity.org/ius-release.rpm


# yum --enablerepo=ius install python27 python27-devel python27-pip python27-setuptools python27-virtualenv


# yum install git


# cd /root


# git clone https://github.com/letsencrypt/letsencrypt


# cd letsencrypt


# ./letsencrypt-auto


7.x 버전에서는 /usr/bin/letsencrypt 파일로 실행되지만


위 처럼 git 로 가져오면 /root/letsencrypt-auto 파일을 실행하면 됩니다.


반응형
블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,