Linux TCP 튜닝 Linux 2017.12.06 23:28

sysctl -w net.ipv4.tcp_window_scaling="1"

sysctl -w net.core.rmem_default="253952"

sysctl -w net.core.wmem_default="253952"

sysctl -w net.core.rmem_max="16777216"

sysctl -w net.core.wmem_max="16777216"

sysctl -w net.ipv4.tcp_rmem="253952 253952 16777216"

sysctl -w net.ipv4.tcp_wmem="253952 253952 16777216"

sysctl -w net.core.netdev_max_backlog="30000"

sysctl -w net.core.somaxconn="1024"

sysctl -w net.ipv4.tcp_max_syn_backlog="1024"

ulimit -SHn 65535

sysctl -w net.ipv4.tcp_max_tw_buckets="1800000"

sysctl -w net.ipv4.tcp_timestamps="1"

sysctl -w net.ipv4.tcp_tw_reuse="1"



========

http://meetup.toast.com/posts/53

http://meetup.toast.com/posts/54

http://meetup.toast.com/posts/55

출처: http://xmodulo.com/install-puppet-server-client-centos-rhel.html


방화벽상태확인

firewall-cmd --list-all


포트추가허용 sample

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

# firewall-cmd --reload



포트제거차단 sample

# firewall-cmd --permanent --zone=public --remove-port=8140/tcp

# firewall-cmd --reload



포트 포워딩 sample

# firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent

# firewall-cmd --reload



[CentOS] 7으로 버전업되면서 달라진 것

출처: https://www.certdepot.net/rhel7-rc-local-service/


1. 기본설정상태에서 rc.local이 자동 실행되지 않는다.

-- 해결법

# chmod u+x /etc/rc.d/rc.local

# systemctl start rc-local



2. 'ifconfig'가 없다T_T

--해결법(설치해도 되지만...)

'ip addr'로 대체


3. 'netstat'이 없다T_T

--해결법(설치해도 되지만...)

'ss'로 대체



firewalld 각종 명령어

출처: 

https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html


* 설정하고 나면 리로드해야 변경된 상태를 확인할 수 있다.

firewall-cmd --reload


* firewalld 데몬 시작하기

systemctl start firewalld.service


* firewalld 실행여부 확인하기

firewall-cmd --state


* 디펄트 존 확인하기

firewall-cmd --get-default-zone


* 활성화된 존과 연결된 인터페이스 확인하기

firewall-cmd --get-active-zones


* 디펄트 존의 환경설정 보기 

firewall-cmd --list-all


* 사용가능한 존 목록 확인하기

firewall-cmd --get-zones


* home존의 환경설정 보기

firewall-cmd --zone=home --list-all


* 인터페이스의 존을 변경하기

firewall-cmd --zone=home --change-interface=eth0

or "/etc/sysconfig/network-scripts/"에 있는 ifcfg-eth0와 같은  파일에 ZONE=home과 같이 설정을 추가하면 해당 존으로 인터페이스가 잡힌다.


* 디펄트 존 변경하기

firewall-cmd --set-default-zone=home


* 미리 정의된 서비스 포트 목록 확인하기(정의된 위치: /usr/lib/firewalld/services/) [해당 서비스정의 파일을 복사하여 내용수정하면 다른 정의 파일 생성가능]

firewall-cmd --get-services


* 사용자 존 생성하기

firewall-cmd --permanent --new-zone=publicweb


* 사용자 존 삭제하기

firewall-cmd --permanent --delete-zone=publicweb


***************************************************

Configuring IP Address Masquerading

***************************************************

* external존을 Masquerading 가능상태인지 확인하기

firewall-cmd --zone=external --query-masquerade


* external존을 Masquerading 가능상태로 만들기

firewall-cmd --zone=external --add-masquerade


* external존을 Masquerading 불가능상태로 만들기

firewall-cmd --zone=external --remove-masquerade


* 설정된 포워딩 포트(22)로 들어온 패킷을 특정 IP(192.0.2.55)의 같은 포트로 포워딩하기

firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.0.2.55


* 설정된 포워딩 포트(22)로 들어온 패킷을 특정 IP(192.0.2.55)의 다른 포트(2055)로 포워딩하기

firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.0.2.55